pbiering / ipv6calc

ipv6calc
https://www.deepspace6.net/projects/ipv6calc.html
Other
45 stars 15 forks source link

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

Open pbiering opened 3 years ago

pbiering commented 3 years ago

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
paravoid commented 11 months ago

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.

pbiering commented 11 months ago

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.

paravoid commented 11 months ago

Awesome :)