Loading...
 

shimpsblog [en]

Compiling GnuPG X: Libraries I

fmg Monday March 24, 2025

Situation

Last time we compiled GnuPG in a different and more portable way. However, the library path problem isn't resolved completely. Let's see which libraries are used by the compiled binaries (some irrelevant hex numbers are removed from the output):

Classic Compiled - Wrong Way
Copy to clipboard
$ ldd /tmp/canary/install/bin/gpg linux-vdso.so.1 (...) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (...) libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (...) libassuan.so.9 => not found libnpth.so.0 => /usr/lib/x86_64-linux-gnu/libnpth.so.0 (...) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (...) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (...) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (...) /lib64/ld-linux-x86-64.so.2 (...)

Oups...

Classic Compiled LD_LIBRARY_PATH
Copy to clipboard
$ LD_LIBRARY_PATH="/tmp/canary/install/lib" ldd /tmp/canary/install/bin/gpg linux-vdso.so.1 (...) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (...) libgcrypt.so.20 => /tmp/canary/install/lib/libgcrypt.so.20 (...) libassuan.so.9 => /tmp/canary/install/lib/libassuan.so.9 (...) libnpth.so.0 => /tmp/canary/install/lib/libnpth.so.0 (...) libgpg-error.so.0 => /tmp/canary/install/lib/libgpg-error.so.0 (...) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (...) /lib64/ld-linux-x86-64.so.2 (...)

Good...

Native Compiled
Copy to clipboard
$ ldd /tmp/canary/native/bin/gpg linux-vdso.so.1 (...) libz.so.1 => /tmp/canary/native/bin/../lib/libz.so.1 (...) libgcrypt.so.20 => /tmp/canary/native/bin/../lib/libgcrypt.so.20 (...) libassuan.so.9 => /tmp/canary/native/bin/../lib/libassuan.so.9 (...) libnpth.so.0 => /tmp/canary/native/bin/../lib/libnpth.so.0 (...) libgpg-error.so.0 => /tmp/canary/native/bin/../lib/libgpg-error.so.0 (...) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (...) /lib64/ld-linux-x86-64.so.2 (...)

Even better...

Remarks

As we can see, the libraries are found as intended. This is just a snapshot of the work done so far. I'll come back to this and keep it this time short.

To be continued...