Skip to content

ubi8 images: Use LIBDIR instead of hard-coded /usr/lib

Stan Hu requested to merge sh-use-libdir-ubi8 into master

The UBI8 builder defines LIBDIR to /usr/lib64, so we should use that constant to be consistent.

This may be a prerequisite to compile jemalloc with Ruby. Since jemalloc uses LIBDIR by default, jemalloc libraries are installed in /usr/lib64. jemalloc does not compile properly with /usr/lib; the configure process isn't able to determine the length of a long long.

Ruby also does not compile properly if jemalloc is in /usr/lib64 and Ruby is using /usr/lib.

Before

$ ldd /usr/bin/ruby
        linux-vdso.so.1 (0x00007fff0cbfc000)
        libruby.so.2.7 => /usr/lib/libruby.so.2.7 (0x00007f6c00640000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f6c00429000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6c00209000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f6c00000000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f6bffdfc000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f6bffbd3000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f6bff851000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f6bff48f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f6c00be8000)

After

Notice libruby.so.2.7 is an outlier; it should be in /usr/lib64:

$ ldd /usr/bin/ruby
        linux-vdso.so.1 (0x00007ffe1cc9c000)
        libruby.so.2.7 => /usr/lib64/libruby.so.2.7 (0x00007fea38793000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x00007fea3857c000)
        libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fea3835c000)
        librt.so.1 => /usr/lib64/librt.so.1 (0x00007fea38153000)
        libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fea37f4f000)
        libcrypt.so.1 => /usr/lib64/libcrypt.so.1 (0x00007fea37d26000)
        libm.so.6 => /usr/lib64/libm.so.6 (0x00007fea379a4000)
        libc.so.6 => /usr/lib64/libc.so.6 (0x00007fea375e2000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fea38d3b000)
Edited by Stan Hu

Merge request reports