Skip to content

resolve symlinks for all binaries

Created by: tlahdekorpi

If a binary depends on libraries from rpath/runpath $ORIGIN and the binary is a symlink, ldd fails to resolve dependencies because it uses the symlink as origin.

$ ldd /usr/bin/java
	linux-vdso.so.1 (0x00007fff18d6c000)
	libjli.so => not found
	libc.so.6 => /usr/lib/libc.so.6 (0x00007fc8bd867000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fc8bda61000)
$ ldd $(realpath /usr/bin/java)
	linux-vdso.so.1 (0x00007fff6fff3000)
	libjli.so => /usr/lib/jvm/java-8-openjdk/jre/bin/../lib/amd64/jli/libjli.so (0x00007fbf42591000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007fbf4239e000)
	libz.so.1 => /usr/lib/libz.so.1 (0x00007fbf42384000)
	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fbf4237e000)
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fbf4235c000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fbf425a9000)

Merge request reports