[Pdns-users] Compile issue with 2.9.12

Daniel Ceregatti daniel at omnis.com
Fri Oct 3 23:04:23 UTC 2003


Hi,

I have a redhat 7.1 box with all the latest and greatest redhat gcc,
glibc, and libstdc++ updates.

The compile problem stems from ios_base being undefined in my libstdc++.
Seems that ios_base is a gcc 3 libstdc++ function. It's ifdef'd on line
390 in binbbackend2.cc but not lines 779 and 820. The configure script
detects gcc 2.96. If I understood c++ better I would attempt to patch it
myself, but being more of a sysadmin than a program, I've decided to
defer this issue to more qualified personnel.

My configure command line:

./configure --enable-recursor --with-modules=gpgsql
--with-pgsql-lib=/usr/lib --with-pgsql-includes=/usr/include/pgsql/libpq++

Here is the output from make:

Making all in bind
make[4]: Entering directory `/stuff/usr/src/pdns-2.9.12/pdns/backends/bind'
source='bindbackend2.cc' object='bindbackend2.lo' libtool=yes \
depfile='.deps/bindbackend2.Plo' tmpdepfile='.deps/bindbackend2.TPlo' \
depmode=gcc3 /bin/sh ../../../depcomp \
/bin/sh ../../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
-I../../.. -I../..    -D_GNU_SOURCE  -Wall -O2 -c -o bindbackend2.lo
`test -f bindbackend2.cc || echo './'`bindbackend2.cc
 g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../.. -D_GNU_SOURCE -Wall -O2
-c bindbackend2.cc -MT bindbackend2.lo -MD -MP -MF
.deps/bindbackend2.TPlo  -fPIC -DPIC -o .libs/bindbackend2.o
bindbackend2.cc: In method `bool Bind2Backend::superMasterBackend
(const string &, const string &, const vector<DNSResourceRecord,
allocator<DNSResourceRecord> > &, string *, DNSBackend **)':
bindbackend2.cc:779: `ios_base' undeclared (first use this function)
bindbackend2.cc:779: (Each undeclared identifier is reported only once
for each function it appears in.)
bindbackend2.cc:779: parse error before `::'
bindbackend2.cc:780: warning: the address of `c_if (...)', will always
be `true'
bindbackend2.cc:788: no matching function for call to `getline
(ifstream (&) (...), string &)'
/usr/include/g++-3/std/bastring.h:658: candidates are: istream &getline
(istream &, basic_string<charT, traits, Allocator> &, charT = '\n')
[with charT = char, traits = string_char_traits<char>, Allocator =
__default_alloc_template<true, 0>]
/usr/include/bits/stdio.h:103:                 __ssize_t getline (char
**, size_t *, FILE *)
bindbackend2.cc:796: request for member `close' in `c_if', which is of
non-aggregate type `ifstream () (...)'
bindbackend2.cc: In method `bool Bind2Backend::createSlaveDomain (const
string &, const string &, const string &)':
bindbackend2.cc:820: parse error before `::'
bindbackend2.cc:821: warning: the address of `c_of (...)', will always
be `true'
bindbackend2.cc:826: invalid operands of types `ofstream () (...)' and
`ostream &() (ostream &)' to binary `operator<<'
bindbackend2.cc:827: invalid operands of types `ofstream () (...)' and
`const char[19]' to binary `operator<<'
bindbackend2.cc:828: invalid operands of types `ofstream () (...)' and
`const char[7]' to binary `operator<<'
bindbackend2.cc:829: invalid operands of types `ofstream () (...)' and
`const char[13]' to binary `operator<<'
bindbackend2.cc:830: invalid operands of types `ofstream () (...)' and
`const char[8]' to binary `operator<<'
bindbackend2.cc:831: invalid operands of types `ofstream () (...)' and
`const char[12]' to binary `operator<<'
bindbackend2.cc:832: invalid operands of types `ofstream () (...)' and
`const char[3]' to binary `operator<<'
bindbackend2.cc:833: request for member `close' in `c_of', which is of
non-aggregate type `ofstream () (...)'
make[4]: *** [bindbackend2.lo] Error 1
make[4]: Leaving directory `/stuff/usr/src/pdns-2.9.12/pdns/backends/bind'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/stuff/usr/src/pdns-2.9.12/pdns/backends'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/stuff/usr/src/pdns-2.9.12/pdns'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/stuff/usr/src/pdns-2.9.12'
make: *** [all] Error 2

Here are my libstdc++.so's:

for i in /usr/lib/libstdc++*; do ls $i; nm $i | grep ios_base; done

/usr/lib/libstdc++-2-libc6.1-1-2.9.0.a
/usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
/usr/lib/libstdc++-3-libc6.2-2-2.10.0.a
/usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
/usr/lib/libstdc++-libc6.1-1.a.2
/usr/lib/libstdc++-libc6.1-1.so.2
/usr/lib/libstdc++-libc6.2-2.a.3
/usr/lib/libstdc++-libc6.2-2.so.3
/usr/lib/libstdc++.so.2.10
nm: /usr/lib/libstdc++.so.2.10: no symbols
/usr/lib/libstdc++.so.2.10.0
nm: /usr/lib/libstdc++.so.2.10.0: no symbols
/usr/lib/libstdc++.so.2.7.2
/usr/lib/libstdc++.so.2.7.2.8
/usr/lib/libstdc++.so.2.8
/usr/lib/libstdc++.so.2.8.0
/usr/lib/libstdc++.so.2.9
/usr/lib/libstdc++.so.2.9.dummy

I've also noticed that my existing 2.9.11 and my previous 2.9.10 seems
to seg fault a lot. The traces look like this: (Including a link to keep
this already long email from getting even longer)

http://www.sh.nu/pdns_trace.txt

Please note that this machine has been very stable for about 2 years and
no other programs exhibit any abnormal crashing, so I've ruled out hardware.

Any thoughts?

Thank you,

Daniel Ceregatti



-- 

Daniel Ceregatti - Programmer
Omnis Network, LLC

One of the worst of my many faults is that I'm too critical of myself.



More information about the Pdns-users mailing list