http://sourceware.org/bugzilla/show_bug.cgi?id=14249
Bug #: 14249 Summary: Full path to shared object put into binary when it contains no SONAME Product: binutils Version: pre-2.12 Status: NEW Severity: minor Priority: P2 Component: ld AssignedTo: unassig...@sourceware.org ReportedBy: gerhard.pobin...@kapsch.net Classification: Unclassified Assume a shared libraries “foo.so” doesn’t contain the linker tag SONAME (nor DT_SONAME) such that ~$ readelf -Wa libfoo.so | grep SONAME is empty If this is the case, this prevents ld/gcc to correctly link this shared library in via direct reference to the shared object file (see line (***1***)), e.g. calling ld via g++: /usr/bin/c++ -fPIC -Wno-long-long -Wall -Wextra -O0 -g -g -Wl,--unresolved-symbols=ignore-in-shared-libs -shared\ -Wl,-soname,libmylib.so -o ../../BIN/libmylib.so\ … object-files … -L/lib/paths … -llibs … /full/path/to/so's .. /path/to/libfoo.so \ (***1***) -Wl,rpath, rpath stuff This yields a binary with the full path to the so-name for foo, which is only valid on the build machine: ~$ ldd libmylib.so | grep foo /path/to/libfoo.so (0xf53bc000) If we instead link with “-l” and “-L” flags like this /usr/bin/c++ -fPIC -Wno-long-long -Wall -Wextra -O0 -g -g -Wl,--unresolved-symbols=ignore-in-shared-libs -shared\ -Wl,-soname,libmylib.so -o ../../BIN/libmylib.so\ … object-files … -L/lib/paths … -llibs … /full/path/to/so -lfoo\ (***2***) -Wl,rpath, rpath stuff the soname is correctly entered in the resulting binary: ~$ ldd libmylib.so | grep foo libfoo.so => /path/to/libfoo.so (0xf5462000) So for the moment we are using the latter approach as a workaround, but for the future it would be preferable if ld could take only the filename-part (i.e. "libfoo.so") from the full so-path "/path/to/libfoo.so" and enter this into the binary "libmylib.so". -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils