Linker script and dependency search path

Ludovic Courtès ludo@gnu.org
Wed May 19 07:15:00 GMT 2010


Hello,

I’m in the process of building a GNU/Linux -> GNU (aka. GNU/Hurd) cross
toolchain.

On GNU, libc.so.0* depends on libhurduser.so and libmachuser.so, which
it lists as NEEDED.  libc.so itself is a linker script similar to that
found on GNU/Linux, and it doesn’t mention libhurduser.so and
libmachuser.so.

While building the final cross-GCC, linking fails because the cross ld
cannot find libhurduser.so and libmachuser.so, leading to undefined
references in libc.so.0*.

Adding -L/path/to/libc, or LIBRARY_PATH=/path/to/libc, or adding
/path/to/libc to the RUNPATH of libc.so.0* doesn’t solve the problem
(libhurduser and libmachuser are in the same directory as libc.so.)

So, is ld supposed to honor RUNPATH from libc.so.0*, given that this
shared library is only referenced from a ‘GROUP’ command in libc.so?
What are the search paths used for dependencies of shared libraries
mentioned in a ‘GROUP’ command?

Thanks,
Ludo’.



More information about the Binutils mailing list