pbiering/ipv6calc

static build of "ipv6calc" is not working in case of OpenSSL EVP or libmd MD5 is used

Opened this issue · 3 comments

current "master" contains now support for OpenSSL 3 which deprecated the really old MD5 functions.

But after switching to new EVP MD5 functions, static build reports a warning, don't know how to solve this proper.

$ gcc -o ipv6calc-static ipv6calc.o showinfo.o ipv6calchelp_local.o  -L../lib/ -L../databases/lib/ -lipv6calc_db_wrapper -lipv6calc    -lm -lpthread -lc -lcrypto -ldl -lz  -static
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/libcrypto.a(fips.o): in function `verify_checksums':
(.text+0x4e6): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/libcrypto.a(b_addr.o): in function `BIO_lookup_ex':
(.text+0xd35): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/libcrypto.a(b_sock.o): in function `BIO_gethostbyname':
(.text+0x75): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

A tiny bit off-topic, but have you considered just using libmd?
https://www.hadrons.org/software/libmd/

The API is really similar to OpenSSL's (basically, s/MD5_/MD5/', e.g. MD5_Init->MD5Init`). It's a dependency of dpkg's (and written by the same author) so guaranteed to be present in Debian/Ubuntu systems.

It's a port of code found in the BSDs. On those systems it'd be unnecessary, as the base system already supports these functions.

Honestly if I were you, I'd just switch to it and remove all OpenSSL support + both embedded copies.

Thank you for the hint using libmd, for now optional support implemented by cf02e4d

Found that at least on Fedora Linux 39 also libmd misses support for static build.

Awesome :)