aws-lambda-cpp icon indicating copy to clipboard operation
aws-lambda-cpp copied to clipboard

canonicalize ldd symlinks for build on al2023 to work

Open aautushka opened this issue 4 months ago • 0 comments

I encountered a packaging problem when migrating my lambdas from al2 to al2023

[100%] Built target query
Failed to identify, locate or package the loader. Please file an issue on Github!
make[3]: *** [query/CMakeFiles/aws-lambda-package-query.dir/build.make:70: query/CMakeFiles/aws-lambda-package-query] Error 1

Here is my ldd

        linux-vdso.so.1 (0x0000ffffa2292000)
        libcurl.so.4 => /lib64/libcurl.so.4 (0x0000ffffa2192000)
        libz.so.1 => /lib64/libz.so.1 (0x0000ffffa2151000)
        libcrypto.so.3 => /lib64/libcrypto.so.3 (0x0000ffffa1c00000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000ffffa1800000)
        libm.so.6 => /lib64/libm.so.6 (0x0000ffffa20a0000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000ffffa1baf000)
        libc.so.6 => /lib64/libc.so.6 (0x0000ffffa1632000)
        libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x0000ffffa1b5e000)
        libidn2.so.0 => /lib64/libidn2.so.0 (0x0000ffffa1b0d000)
        libpsl.so.5 => /lib64/libpsl.so.5 (0x0000ffffa1acc000)
        libssl.so.3 => /lib64/libssl.so.3 (0x0000ffffa152e000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x0000ffffa14bd000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffffa2245000)
        libunistring.so.2 => /lib64/libunistring.so.2 (0x0000ffffa130c000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000ffffa120a000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000ffffa1a8b000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000ffffa11c9000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000ffffa1188000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000ffffa1147000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x0000ffffa1104000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x0000ffffa10b1000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x0000ffffa1000000)

on al2023 /lib64 is a symlink

sh-5.2# readlink -f /lib64
/usr/lib64

and this is what rpm returns

sh-5.2# rpm -ql glibc.$(uname -m) | grep so
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/usr/lib/ld-linux-aarch64.so.1
/usr/lib64/audit/sotruss-lib.so
/usr/lib64/gconv/ANSI_X3.110.so
/usr/lib64/gconv/CP1252.so
/usr/lib64/gconv/ISO8859-1.so
/usr/lib64/gconv/ISO8859-15.so
/usr/lib64/gconv/UNICODE.so
/usr/lib64/gconv/UTF-16.so
/usr/lib64/gconv/UTF-32.so
/usr/lib64/gconv/UTF-7.so
/usr/lib64/libBrokenLocale.so.1
/usr/lib64/libSegFault.so
/usr/lib64/libanl.so.1
/usr/lib64/libc.so.6
/usr/lib64/libc_malloc_debug.so.0
/usr/lib64/libdl.so.2
/usr/lib64/libm.so.6
/usr/lib64/libmemusage.so
/usr/lib64/libnss_compat.so.2
/usr/lib64/libnss_dns.so.2
/usr/lib64/libnss_files.so.2
/usr/lib64/libpcprofile.so
/usr/lib64/libpthread.so.0
/usr/lib64/libresolv.so.2
/usr/lib64/librt.so.1
/usr/lib64/libthread_db.so.1
/usr/lib64/libutil.so.1

So, here is a one-liner that works for me, tested only with al2023-arm64.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

aautushka avatar Sep 05 '25 18:09 aautushka