[Pdns-dev] building pdns-recursor 3.1.1 on OpenBSD 3.9
Matthijs Mohlmann
matthijs at cacholong.nl
Tue Jun 6 18:04:18 CEST 2006
Eric Sproul wrote:
> Hi,
> I asked about this on IRC yesterday, but then my connection was
> interrupted so I might have missed a response. I'm trying to build the
> latest pdns-recursor (3.1.1) on OpenBSD 3.9, and getting nowhere. I
> would like to run pdns, but I think there may be a required header that
> OpenBSD lacks, namely ucontext.h. I googled a bit yesterday and it
> seems that OpenBSD and MacOS X are the two platforms that do not include
> this thing, and pdns needs it. The FAQ entry about OpenBSD refers to
> problems that are several years old, so I had hoped I could get it to
> build.
>
> I get the following result, culminating in the error about ucontext.
> Hopefully I haven't missed something obvious in my build environment. :)
>
> Any advice or assistance would be appreciated. If I can't make this
> work, that's OK. I'd just prefer to use pdns if possible.
> Thanks,
> Eric
>
>
> :~$ uname -srmv
> OpenBSD 3.9 GENERIC.MP#598 i386
>
> :~$ gcc --version
> gcc (GCC) 3.3.5 (propolice)
>
> :pdns-recursor-3.1.1$ CXXFLAGS=-I/home/esproul/src/boost_1_33_1 gmake
> g++ -I/home/esproul/src/boost_1_33_1 -Wall -O3 -MM -MG *.cc *.hh > dep
> g++: ahuexception.hh: linker input file unused because linking not done
> g++: arguments.hh: linker input file unused because linking not done
> g++: base64.hh: linker input file unused because linking not done
> g++: dns.hh: linker input file unused because linking not done
> g++: dnsparser.hh: linker input file unused because linking not done
> g++: dnsrecords.hh: linker input file unused because linking not done
> g++: dnswriter.hh: linker input file unused because linking not done
> g++: iputils.hh: linker input file unused because linking not done
> g++: lock.hh: linker input file unused because linking not done
> g++: logger.hh: linker input file unused because linking not done
> g++: lwres.hh: linker input file unused because linking not done
> g++: misc.hh: linker input file unused because linking not done
> g++: mplexer.hh: linker input file unused because linking not done
> g++: mtasker.hh: linker input file unused because linking not done
> g++: ntservice.hh: linker input file unused because linking not done
> g++: qtype.hh: linker input file unused because linking not done
> g++: rcpgenerator.hh: linker input file unused because linking not done
> g++: rec_channel.hh: linker input file unused because linking not done
> g++: recursor_cache.hh: linker input file unused because linking not done
> g++: recursorservice.hh: linker input file unused because linking not done
> g++: singleton.hh: linker input file unused because linking not done
> g++: sstuff.hh: linker input file unused because linking not done
> g++: syncres.hh: linker input file unused because linking not done
> g++: utility.hh: linker input file unused because linking not done
> g++: win32_mtasker.hh: linker input file unused because linking not done
> g++: zoneparser-tng.hh: linker input file unused because linking not done
>
> PLEASE READ: If you get an error mentioning #include
> <boost/something.hpp>, please read README
> PLEASE READ: for an easy fix!
>
> g++ -I/home/esproul/src/boost_1_33_1 -Wall -O3 -c -o syncres.o
> syncres.cc
> In file included from syncres.hh:4,
> from syncres.cc:20:
> dns.hh:179:1: warning: "LITTLE_ENDIAN" redefined
> In file included from /usr/include/machine/endian.h:68,
> from /usr/include/sys/types.h:45,
> from /usr/include/sys/param.h:56,
> from /usr/include/arpa/inet.h:64,
> from utility.hh:42,
> from syncres.cc:19:
> /usr/include/sys/endian.h:46:1: warning: this is the location of the
> previous definition
> In file included from syncres.hh:4,
> from syncres.cc:20:
> dns.hh:180:1: warning: "BIG_ENDIAN" redefined
> In file included from /usr/include/machine/endian.h:68,
> from /usr/include/sys/types.h:45,
> from /usr/include/sys/param.h:56,
> from /usr/include/arpa/inet.h:64,
> from utility.hh:42,
> from syncres.cc:19:
> /usr/include/sys/endian.h:47:1: warning: this is the location of the
> previous definition
> In file included from syncres.hh:4,
> from syncres.cc:20:
> dns.hh:181:1: warning: "PDP_ENDIAN" redefined
> In file included from /usr/include/machine/endian.h:68,
> from /usr/include/sys/types.h:45,
> from /usr/include/sys/param.h:56,
> from /usr/include/arpa/inet.h:64,
> from utility.hh:42,
> from syncres.cc:19:
> /usr/include/sys/endian.h:48:1: warning: this is the location of the
> previous definition
> In file included from syncres.hh:4,
> from syncres.cc:20:
> dns.hh:188:1: warning: "BYTE_ORDER" redefined
> In file included from /usr/include/machine/endian.h:68,
> from /usr/include/sys/types.h:45,
> from /usr/include/sys/param.h:56,
> from /usr/include/arpa/inet.h:64,
> from utility.hh:42,
> from syncres.cc:19:
> /usr/include/sys/endian.h:49:1: warning: this is the location of the
> previous definition
> In file included from syncres.hh:20,
> from syncres.cc:20:
> mtasker.hh:27:22: ucontext.h: No such file or directory
> gmake: *** [syncres.o] Error 1
Hi,
As far as I know, OpenBSD and FreeBSD 4.x still have not implemented the
functions swapcontext and getcontext in libc. These functions are
required for mtasker. Same goes for a few other architectures on the
Linux platform.
Regards,
Matthijs Mohlmann
More information about the Pdns-dev
mailing list