Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Static linking does not work with bootstrap script #373

Open
00ssh opened this issue Mar 7, 2022 · 1 comment
Open

Static linking does not work with bootstrap script #373

00ssh opened this issue Mar 7, 2022 · 1 comment

Comments

@00ssh
Copy link

00ssh commented Mar 7, 2022

Hello! I am trying to statically build kcat using the bootstrap.sh script on RHEL7 and RHEL8.
While the build is successful, I am not able to get it statically built (I need to port the resulted binary on multiple versions of RHEL and Centos). Dependent libraries are still needed when porting the binary from one OS version to another. Please notice the output of ldd on the RHEL 8 build VM below.

kcat-master]# ldd kcat
	linux-vdso.so.1 (0x00007ffd86d9a000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f8368c0f000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f8368a0b000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f83687eb000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f83685e3000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f83683cc000)
	libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f8367ee3000)
	libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f8367c4f000)
	libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f8367a31000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f836781a000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f83675f1000)
	libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f836739c000)
	libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f83670b3000)
	libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f8366e9c000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f8366c98000)
	libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f8366a0a000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f8366645000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f8368f91000)
	libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f8366434000)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f8366230000)
	libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f8366009500)
	libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f8365deb000)
	libssh.so.4 => /lib64/libssh.so.4 (0x00007f8365b7c000)
	libpsl.so.5 => /lib64/libpsl.so.5 (0x00007f836596b000)
	libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007f836571d000)
	liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f836550d000)
	libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f8365300000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f83650d6000)
	libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f8364d55000)
	libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f8364b34000)
	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f83648b0000)

On RHEL 7, the binary build on RHEL 8, has the following output for ldd:

rhel7-test ~]$ ldd kcat
./kcat: /lib64/libpthread.so.0: version `GLIBC_2.28' not found (required by ./kcat)
./kcat: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by ./kcat)
	linux-vdso.so.1 =>  (0x00007ffcb11b6000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f548c5fd000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f548c3f9500)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f548c1dd000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f548bfd5000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f548bdbf000)
	libcrypto.so.1.1 => not found
	libssl.so.1.1 => not found
	libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f548bba2000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f548b988000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f548b751000)
	libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f548b504000)
	libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f548b21b000)
	libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f548afe8000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f548ade4000)
	libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f548ab7a000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f548a7ac000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f548c8ff000)
	libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f548a59c000)
	libfreebl3.so => /lib64/libfreebl3.so (0x00007f548a399500)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f548a195000)
	libidn.so.11 => /lib64/libidn.so.11 (0x00007f5489f62000)
	libssh2.so.1 => /lib64/libssh2.so.1 (0x00007f5489d35000)
	libssl3.so => /lib64/libssl3.so (0x00007f5489adc000)
	libsmime3.so => /lib64/libsmime3.so (0x00007f54898b4000)
	libnss3.so => /lib64/libnss3.so (0x00007f5489585000)
	libnssutil3.so => /lib64/libnssutil3.so (0x00007f5489355000)
	libplds4.so => /lib64/libplds4.so (0x00007f5489151000)
	libplc4.so => /lib64/libplc4.so (0x00007f5488f4c000)
	libnspr4.so => /lib64/libnspr4.so (0x00007f5488d0e000)
	liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f5488aff000)
	libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007f54888aa000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f5488683000)
	libssl.so.10 => /lib64/libssl.so.10 (0x00007f5488411000)
	libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f5487fae000)
	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f5487d4c000)

Are there any other options for statically building kcat?

Thanks!

@edenhill
Copy link
Owner

I'll revisit the bootstrap script in a while to create truly static builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants