libresolv does not provide __ns_initparse, resulting in LD undefined reference

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Nov 4 10:24:41 GMT 2024


On Oct 29 22:35, Named T. Relay via Cygwin wrote:
> 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?

They have never been implemented in Cygwin itself. Cygwin only has a
piece of source called minires, a simple resolver lib depending on
the underlying Windows resolver, providing the res_FOO symbols from
resolv.h.  The nameserver symbols from nameser.h are not part of the
Cywin core lib.  Maybe you have more luck with the (unmaintained)
bind libs?


Corinna


More information about the Cygwin mailing list