libresolv does not provide __ns_initparse, resulting in LD undefined reference

Named T. Relay namedrelay@protonmail.com
Tue Oct 29 22:35:00 GMT 2024


Hello,

Today i installed cygwin to compile a windows .exe out of a Linux source program.
While G++ on Linux compiles it correctly into a binary, on cygwin i got an issue during linking:

$ g++ -O2 -Wall -Isrc -o bin/sealtool <SNIP> src/sign-verify.cpp -lcrypto -lssl -lcurl -lresolv
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: /tmp/ccA3GExv.o:sign-verify.cp:(.text+0x437): undefined reference to `__ns_initparse'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: /tmp/ccA3GExv.o:sign-verify.cp:(.text+0x49a): undefined reference to `__ns_parserr'
collect2: error: ld returned 1 exit status

>From looking at the nm results, the provided libresolv library does not include these symbols.
(But my linux distro's version of libresolv DOES have them!)

Does anyone know why these symbols are missing?
(and more importantly, how do i get them?)
The internet didn't yield me any answers.

libresolv.a is included with cygwin-devel-3.5.4-1, so i can't really check or change it's version. (md5sum is 5fa4735707cec921f81feb2c86c5b87a)
The source file i try to compile can be found at https://github.com/hackerfactor/SEAL-C/blob/main/src/sign-verify.cpp , project has other issues which i already had resolv. ;)

At the very least, thanks for reading!

Have a nice day,
Named Relay


More information about the Cygwin mailing list