bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

$ORIGIN substitution in RPATH


From: Bruno Haible
Subject: $ORIGIN substitution in RPATH
Date: Wed, 20 Feb 2019 01:25:06 +0100
User-agent: KMail/5.1.3 (Linux/4.4.0-141-generic; KDE/5.18.0; x86_64; ; )

Hi,

After reading http://lists.gnu.org/archive/html/bug-hurd/2011-08/msg00047.html
I was under the impression that $ORIGIN in -rpath arguments passed to the
linker would have the same effect under Hurd as on Linux/glibc. But it does
not work for me.

This is on Hurd 0.9 (using the image from
https://people.debian.org/~sthibault/hurd-i386/debian-hurd-20170115.img.gz ).

How to reproduce:

$ wget https://haible.de/bruno/gnu/libiconv-20190219.tar.gz
$ tar xfz libiconv-20190219.tar.gz
$ cd libiconv-20190219
$ ./configure --prefix=/tmp/inst1 --enable-relocatable
$ make
$ make install
$ cd /tmp
$ mv inst1 inst2
$ inst2/bin/iconv --help
inst2/bin/iconv: error while loading shared libraries: libiconv.so.2: cannot 
open shared object file: No such file or directory
$ readelf -d inst2/bin/iconv

Dynamic section at offset 0x6404 contains 26 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libiconv.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.0.3]
 0x000000000000001d (RUNPATH)            Library runpath: 
[$ORIGIN/../lib:/tmp/inst1/lib]
...
$ ld --version
GNU ld (GNU Binutils for Debian) 2.27.90.20170114


For comparison, the same procedure works on Linux. There it produces
$ readelf -d inst2/bin/iconv

Dynamic section at offset 0x6e08 contains 26 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libiconv.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: 
[$ORIGIN/../lib:/tmp/inst1/lib]
...

Is the difference due to the use of RUNPATH instead of RPATH (must be a
difference in the linker, I guess)? Or is $ORIGIN support in RUNPATH
not meant to work like the the one in RPATH?

Bruno




reply via email to

[Prev in Thread] Current Thread [Next in Thread]