[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