Думаю, я понимаю, зачем мне нужен LD_PRELOAD set при загрузке многопоточного приложения, которое загружает однопоточную библиотеку, которая загружает libcl.2, но мне было интересно, могу ли я использовать некоторые настройки компоновщика, чтобы избежать этого. Любая помощь приветствуется.
Обновление:
Perl загружает динамический /usr/lib/libc.2 Perl загружает DB2.sl DB2 пытается загрузить динамический /usr/lib/libcl.2
Возможно, что-то с таким именем общего объекта уже загружено, а затем происходит сбой.
/usr/lib>пароль
/USR/библиотека
/usr/lib>ls -lt | grep libcl.2
-r-xr-xr-x 1 bin bin 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
Может быть настройки чата одной из библиотек подправить?
Обновление: почему бы просто не использовать одно и то же имя для библиотеки.