[Pdns-dev] pdns IPv6 compilation failure on OSX (svn head)

Justin Clift justin at salasaga.org
Sun Oct 7 03:59:34 CEST 2012

Hi guys,

Just tried to compile pdns auth server from svn head on OSX 10.7,
but it's barfing with IPv6 stuff:


g++ -DHAVE_CONFIG_H -I. -I..  -Ibackends/bind      -DSYSCONFDIR=\"/tmp/foo/etc\" -DLIBDIR=\"/tmp/foo/lib\" -DLOCALSTATEDIR=\"/var/run\" -Ibackends/bind  -I/usr/local/include -I/usr/local/Cellar/sqlite/3.7.13/include   -Iext/polarssl-1.1.2/include -pthread -Wall -O2 -MT pdns_server-logger.o -MD -MP -MF .deps/pdns_server-logger.Tpo -c -o pdns_server-logger.o `test -f 'logger.cc' || echo './'`logger.cc
nameserver.cc:83:1: warning: "GEN_IP_PKTINFO" redefined
nameserver.cc:80:1: warning: this is the location of the previous definition
mv -f .deps/nsecrecords.Tpo .deps/nsecrecords.Po
g++ -DHAVE_CONFIG_H -I. -I..  -Ibackends/bind      -DSYSCONFDIR=\"/tmp/foo/etc\" -DLIBDIR=\"/tmp/foo/lib\" -DLOCALSTATEDIR=\"/var/run\" -Ibackends/bind  -I/usr/local/include -I/usr/local/Cellar/sqlite/3.7.13/include   -Iext/polarssl-1.1.2/include -pthread -Wall -O2 -MT pdns_server-arguments.o -MD -MP -MF .deps/pdns_server-arguments.Tpo -c -o pdns_server-arguments.o `test -f 'arguments.cc' || echo './'`arguments.cc
mv -f .deps/pdns_server-qtype.Tpo .deps/pdns_server-qtype.Po
g++ -DHAVE_CONFIG_H -I. -I..  -Ibackends/bind      -DSYSCONFDIR=\"/tmp/foo/etc\" -DLIBDIR=\"/tmp/foo/lib\" -DLOCALSTATEDIR=\"/var/run\" -Ibackends/bind  -I/usr/local/include -I/usr/local/Cellar/sqlite/3.7.13/include   -Iext/polarssl-1.1.2/include -pthread -Wall -O2 -MT pdns_server-packethandler.o -MD -MP -MF .deps/pdns_server-packethandler.Tpo -c -o pdns_server-packethandler.o `test -f 'packethandler.cc' || echo './'`packethandler.cc
nameserver.cc: In member function ‘void UDPNameserver::bindIPv6()’:
nameserver.cc:178: error: ‘IPV6_RECVPKTINFO’ was not declared in this scope
nameserver.cc: In static member function ‘static void UDPNameserver::send(DNSPacket*)’:
nameserver.cc:236: error: ‘IPV6_PKTINFO’ was not declared in this scope
nameserver.cc: In function ‘bool HarvestDestinationAddress(msghdr*, ComboAddress*)’:
nameserver.cc:307: error: ‘IPV6_PKTINFO’ was not declared in this scope
make[4]: *** [pdns_server-nameserver.o] Error 1
make[4]: *** Waiting for unfinished jobs....
mv -f .deps/pdns_server-logger.Tpo .deps/pdns_server-logger.Po
mv -f .deps/pdns_server-dnspacket.Tpo .deps/pdns_server-dnspacket.Po
mv -f .deps/pdns_server-arguments.Tpo .deps/pdns_server-arguments.Po
mv -f .deps/pdns_server-packethandler.Tpo .deps/pdns_server-packethandler.Po
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


Configuration was done using:

  ./configure --prefix=/tmp/foo --with-modules=gsqlite3 --with-lua --with-sqlite3 --with-sqlite=/usr/local

Those defines themselves do seem to be on OSX:

  $ egrep -r "IPV6_RECVPKTINFO|IPV6_PKTINFO|IPV6_PKTINFO" /usr/include/*
  /usr/include/netinet6/in6.h: *   IPV6_PKTINFO
  /usr/include/netinet6/in6.h:#define IPV6_PKTINFO        IPV6_2292PKTINFO
  /usr/include/netinet6/in6.h:#define IPV6_RECVPKTINFO	61 /* bool; recv if, dst addr 
  /usr/include/netinet6/in6.h:#define IPV6_PKTINFO        IPV6_3542PKTINFO

Tried adding "#include <netinet/in.h>" to pdns/nameserver.cc, but that
make no difference. :(

Guessing it's a scoping problem of some sort?  Anyone have suggestions
for a quick fix to test with? (note that I'm not a c++ guy at all)

Regards and best wishes,

Justin Clift

More information about the Pdns-dev mailing list