[Pdns-users] Problems compiling pdns using uClibc

Dennis Roos dennis.roos at gmail.com
Wed Aug 2 13:01:59 UTC 2006


I'm trying to create an embedded version of pdns, but have run into
problems during compile. I am unsure if pdns is supposed to support
uclibc environments - it does not at the moment.

Debug info:
OS: Gentoo linux
GCC: i686-gentoo-linux-uclibc-3.4.4
UCLIBC: 0.9.27

cat /usr/include/linux/version.h
#define UTS_RELEASE "2.6.11"
#define LINUX_VERSION_CODE 132619
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

For the Gentoo guru's among us:
emerge -pv pdns

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] dev-libs/boost-1.33.1  -bcp -bjam -debug -doc -pyste
-static -threads -threadsonly 11,237 kB
[ebuild  N    ] net-dns/pdns-2.9.20-r1 -debug -doc -ldap +mysql*
-postgres -sqlite -static -tdb 0 kB

*** I also had problems installating boost (on the uclibc host anyway,
did not try it yet on a regular glibc host), therefor I reverted to
the 'old' pdns version that was available in portage:
# In order to keep the compile time to a minimum, removed the
mysqlbackend support
USE="-mysql" emerge -pv =net-dns/pdns-2.9.18

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] net-dns/pdns-2.9.18  -debug -doc -ldap +mysql*
-postgres -recursor -sqlite -static -tdb 0 kB

When emerging the pdns-2.9.18 package:
>>> Unpacking source...
>>> Unpacking pdns-2.9.18.tar.gz to /var/tmp/portage/pdns-2.9.18/work
 * Applying 2.9.18-default-mysql-options.patch ...                        [ ok ]
 * Applying 2.9.18-ldap-fix.patch ...                                     [ ok ]
>>> Source unpacked.
 * econf: updating pdns-2.9.18/pdns/config.guess with
 * econf: updating pdns-2.9.18/pdns/config.sub with
 * econf: updating pdns-2.9.18/config.guess with
 * econf: updating pdns-2.9.18/config.sub with /usr/share/gnuconfig/config.sub
./configure --prefix=/usr --host=i686-gentoo-linux-uclibc
--mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
--sysconfdir=/etc --localstatedir=/var/lib --with-modules=
--with-dynmodules=pipe geo --with-pgsql-includes=/usr/include
--disable-static-binaries --disable-recursor
if i686-gentoo-linux-uclibc-g++ -DHAVE_CONFIG_H -I. -I. -I..
-Ibackends/bind -pthread  -DSYSCONFDIR=\"/etc\" -DLIBDIR=\"/usr/lib\"
-DLOCALSTATEDIR=\"/var/run\" -Ibackends/bind  -D_GNU_SOURCE -mcpu=i686
-Os -pipe -Wall -O2 -MT receiver.o -MD -MP -MF ".deps/receiver.Tpo" -c
-o receiver.o receiver.cc; \
then mv -f ".deps/receiver.Tpo" ".deps/receiver.Po"; else rm -f
".deps/receiver.Tpo"; exit 1; fi
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
receiver.cc:364:22: execinfo.h: No such file or directory
receiver.cc: In function `void tbhandler(int)':
receiver.cc:373: error: `backtrace' undeclared (first use this function)
receiver.cc:373: error: (Each undeclared identifier is reported only
once for each function it appears in.)
receiver.cc:374: error: `backtrace_symbols' undeclared (first use this function)
make[3]: *** [receiver.o] Error 1
make[3]: Leaving directory `/var/tmp/portage/pdns-2.9.18/work/pdns-2.9.18/pdns'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/pdns-2.9.18/work/pdns-2.9.18/pdns'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/pdns-2.9.18/work/pdns-2.9.18'
make: *** [all] Error 2

!!! ERROR: net-dns/pdns-2.9.18 failed.
!!! Function src_compile, Line 54, Exitcode 2
!!! emake failed
!!! If you need support, post the topmost build error, NOT this status message.

execinfo.h is missing from uclibc... Has to do something with logging,
but how to fix it is beyond me ;)

If more info is needed let me know what else to provide...


Dennis Roos

More information about the Pdns-users mailing list