Мне кажется, я понимаю, почему мне нужно LD_PRELOAD установить при загрузке многопоточного приложения, которое загружает однопотоковую библиотеку, которая загружает libcl.2, но мне было интересно, могу ли я использовать некоторые настройки компоновщика, чтобы избежать этого. Любая помощь приветствуется.
Обновление:
Perl загружает
динамический /usr/lib/libc.2
Perl загружает DB2.sl
DB2 пытается загрузить
динамический /usr/lib/libcl.2
Может ли это быть фактом , что что-то с этим общим именем объекта уже загружено, а затем завершается ошибкой.
/ usr / lib> pwd
/ usr / lib
/ usr / lib> ls -lt | grep libcl.2
-r-xr-xr-x 1 бункер 1261568 14 февраля 2003 г. libcl.2
lrwxr-xr-x 1 root sys 9 ноября 21 2002 г. libcl.sl -> ./libcl.2
Теперь причина отказа искать что-то с таким же именем может быть объяснена выводом chattr:
Оба поля имеют отключенные поля, поэтому они не будут смотреться в окружении и не будут использовать альтернативное имя
чатр на Perl
Perl:
shared executable
shared library dynamic path search:
SHLIB_PATH disabled second
embedded path disabled first Not Defined
shared library list:
dynamic /usr/lib/libnsl.1
dynamic /usr/lib/libnm.sl
dynamic /usr/lib/libdld.2
dynamic /usr/lib/libm.2
dynamic /usr/lib/libsec.2
dynamic /usr/lib/libpthread.1
dynamic /usr/lib/libc.2
чатр на DB2.sl
DB2.sl:
shared library
shared library dynamic path search:
SHLIB_PATH disabled second
embedded path disabled first Not Defined
shared library list:
dynamic /opt/IBM/db2/V8.1/lib/libdb2.sl
dynamic /usr/lib/libcl.2
Может быть, настройки чата одной из библиотек могут быть изменены?
Обновление: почему бы просто не заставить их использовать одно и то же имя для библиотеки.