[devel] verify-elf
Anton Farygin
=?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Чт Сен 21 10:09:06 MSD 2006
Dmitry V. Levin wrote:
> On Thu, Sep 14, 2006 at 09:49:23AM +0400, Anton Farygin wrote:
>> Dmitry V. Levin wrote:
>>> On Wed, Sep 13, 2006 at 07:11:30PM +0400, Anton Farygin wrote:
>>> [...]
>>>> /lib64/ld-linux-x86-64.so.2 --library-path
>>>> /home/rider/git.alt/curl/TMP/curl-buildroot/usr/lib64:/home/rider/git.alt/curl/TMP/curl-buildroot/lib64:/home/rider/git.alt/curl/TMP/curl-buildroot/usr/lib64:/home/rider/git.alt/curl/TMP/curl-buildroot/usr/X11R6/lib64
>>>> ./usr/bin/curl
>>>> libcurl.so.3 => /usr/lib64/libcurl.so.3 (0x00002b5081dc3000)
>>>> libz.so.1 => /lib64/libz.so.1 (0x00002b5081f16000)
>>>> libc.so.6 => /lib64/libc.so.6 (0x00002b508202b000)
>>>> libidn.so.11 => /usr/lib64/libidn.so.11 (0x00002b5082251000)
>>>> libssl.so.4 => /lib64/libssl.so.4 (0x00002b5082483000)
>>>> libcrypto.so.4 => /lib64/libcrypto.so.4 (0x00002b50826ba000)
>>>> libdl.so.2 => /lib64/libdl.so.2 (0x00002b50829fc000)
>>>> /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>>>> undefined symbol: curl_easy_escape (./usr/bin/curl)
>>>>
>>>>
>>>> Т.е. - он то знает, а вот
>>>> /lib64/ld-linux-x86-64.so.2 почему-то это всё игнорирует ;(
>>> Причина, скорее всего, внутри ./usr/bin/curl; покажи мне, пожалуйста,
>>> вывод от
>>> readelf -d /home/rider/git.alt/curl/TMP/curl-buildroot/usr/bin/curl
>>> ?
>> $ readelf -d /home/rider/git.alt/curl/TMP/curl-buildroot/usr/bin/curl
>>
>> Dynamic section at offset 0x16458 contains 23 entries:
>> Tag Type Name/Value
>> 0x0000000000000001 (NEEDED) Shared library: [libcurl.so.3]
>> 0x0000000000000001 (NEEDED) Shared library: [libz.so.1]
>> 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
>> 0x000000000000000f (RPATH) Library rpath: [/usr/lib64]
>
> Вот и причина. Убери этот RPATH, пожалуйста.
> А я добавлю параметр --inhibit-rpath в команду вызова ld.so.
>
> /lib64/ld-linux-x86-64.so.2 --inhibit-rpath --library-path то_что_у_тебя_было /home/rider/git.alt/curl/TMP/curl-buildroot/usr/bin/curl будет работать.
Параметр ты пока ещё похоже не добавил, а с rpath тут не всё так просто ;(
насколько я понял - rpath вылезает из aclocal.m4 Но вот по какой причине
и как с этим бороться - я не понимаю.
Вижу в aclocal.m4:
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
Соответственно это попадает в configure.in а уже оттуда - в Makefile.
перегенерация aclocal не помогает ;(
Подробная информация о списке рассылки Devel