[devel] Коллизия символов разных динамических библиотек

Roman Savochenko rom_as на diyaorg.dp.ua
Пн Сен 13 06:05:23 UTC 2010


13.09.2010 08:59, Roman Savochenko пишет:
>> Порядок вызова динамических конструкторов глобальных объектов в C++
>> определен только внутри одной единицы компиляции. Порядок выполнения
>> инициализации между единицами компиляции неопределен, он может быть
>> разным для разных запусков одной и той же программы. То же самое с
>> деструкторами.
>      Не оно. В моём случае нет ни статических объектов в модуле ни 
> кода выполняющегося в момент dlopen() и dlclose(). И подключение 
> подразумевает только разрешение зависимостей внешних библиотек 
> линкером, опять же в моём случае это QTCore, QTGui и всё что они 
> тянут. Возможно, конечно, что-то есть из статики в этих библиотеках, 
> но независимый тест на прототипчике этой проблемы в QTCore, QTGui не 
> выявил. Эта проблема воспроизводится только в рабочем окружении 
> программы.
Кроме всего прочего dlopen вызывается с флагами RTLD_LAZY|RTLD_LOCAL, 
что по идеи исключает немедленный резолвинг всех символов, а так-же то, 
что на ранних версиях дистрибутива это прекрасно работает.

С уважением, Роман
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : rom_as.vcf
Тип     : text/x-vcard
Размер  : 301 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20100913/0b5f2dd0/attachment.vcf>


Подробная информация о списке рассылки Devel