ipv6calc icon indicating copy to clipboard operation
ipv6calc copied to clipboard

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

Open pbiering opened this issue 4 years ago • 3 comments
trafficstars

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

pbiering avatar Sep 16 '21 19:09 pbiering

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.

paravoid avatar Dec 02 '23 21:12 paravoid

Thank you for the hint using libmd, for now optional support implemented by https://github.com/pbiering/ipv6calc/commit/cf02e4d075b1269b85aae9391a6e5d98358a1a87

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

pbiering avatar Dec 05 '23 07:12 pbiering

Awesome :)

paravoid avatar Dec 05 '23 16:12 paravoid