Currently libpqxx 2.5.5 tries to build with -Werror enabled, unfortunately this makes the test for strerror_r fail because it's called with a NULL parameter, that throws an a warning that get escalated to error by -Werror. The attached patch disables -Werror so that the build is done without it and users aren't bothered by new warnings of recent gcc versions. The patch also changes another thing: it disables -fvisibility-inlines-hidden support, so we're safe that it doesn't build PIC-incompatible libraries (see bug #78720). After applying the patch, an eautoreconf call is needed (from autotools eclass). If you get me the okay, I can commit this myself. Thanks, Diego
Compilation of libpqxx-2.5.1 with gcc-4.1.1 fails here: if /bin/sh ../libtool --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT transaction_base.lo -MD -MP -MF ".deps/transaction_base.Tpo" -c -o transaction_base.lo transaction_base.cxx; \ then mv -f ".deps/transaction_base.Tpo" ".deps/transaction_base.Plo"; else rm -f ".deps/transaction_base.Tpo"; exit 1; fi i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT transaction_base.lo -MD -MP -MF .deps/transaction_base.Tpo -c transaction_base.cxx -fPIC -DPIC -o .libs/transaction_base.o i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT transaction_base.lo -MD -MP -MF .deps/transaction_base.Tpo -c transaction_base.cxx -o transaction_base.o >/dev/null 2>&1 if /bin/sh ../libtool --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT util.lo -MD -MP -MF ".deps/util.Tpo" -c -o util.lo util.cxx; \ then mv -f ".deps/util.Tpo" ".deps/util.Plo"; else rm -f ".deps/util.Tpo"; exit 1; fi i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT util.lo -MD -MP -MF .deps/util.Tpo -c util.cxx -fPIC -DPIC -o .libs/util.o util.cxx:576: error: specialization of
Compilation of libpqxx-2.5.1 with gcc-4.1.1 fails here: if /bin/sh ../libtool --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT transaction_base.lo -MD -MP -MF ".deps/transaction_base.Tpo" -c -o transaction_base.lo transaction_base.cxx; \ then mv -f ".deps/transaction_base.Tpo" ".deps/transaction_base.Plo"; else rm -f ".deps/transaction_base.Tpo"; exit 1; fi i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT transaction_base.lo -MD -MP -MF .deps/transaction_base.Tpo -c transaction_base.cxx -fPIC -DPIC -o .libs/transaction_base.o i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT transaction_base.lo -MD -MP -MF .deps/transaction_base.Tpo -c transaction_base.cxx -o transaction_base.o >/dev/null 2>&1 if /bin/sh ../libtool --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT util.lo -MD -MP -MF ".deps/util.Tpo" -c -o util.lo util.cxx; \ then mv -f ".deps/util.Tpo" ".deps/util.Plo"; else rm -f ".deps/util.Tpo"; exit 1; fi i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../include/pqxx -I../include -I../include -I/usr/include/postgresql -O2 -march=athlon-xp -fomit-frame-pointer -pipe -MT util.lo -MD -MP -MF .deps/util.Tpo -c util.cxx -fPIC -DPIC -o .libs/util.o util.cxx:576: error: specialization of void pqxx::internal::PQAlloc<T>::freemem() [with T = pg_result] in different namespace util.cxx:576: error: from definition of void pqxx::internal::PQAlloc<T>::freemem() [with T = pg_result] util.cxx:583: error: specialization of void pqxx::internal::PQAlloc<T>::freemem() [with T = pgNotify] in different namespace util.cxx:583: error: from definition of void pqxx::internal::PQAlloc<T>::freemem() [with T = pgNotify] make[1]: *** [util.lo] Error 1 make[1]: Leaving directory `/var/tmp/portage/libpqxx-2.5.1/work/libpqxx-2.5.1/src' make: *** [all-recursive] Error 1 !!! ERROR: dev-libs/libpqxx-2.5.1 failed. Call stack: ebuild.sh, line 1539: Called dyn_compile ebuild.sh, line 939: Called src_compile libpqxx-2.5.1.ebuild, line 21: Called die emerge --info: Portage 2.1_rc4 (default-linux/x86/2006.0, gcc-4.1.1, glibc-2.3.6-r3, 2.6.16-gentoo-r9 i686) ================================================================= System uname: 2.6.16-gentoo-r9 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.6.14 ccache version 2.4 [enabled] dev-lang/python: 2.3.5-r2, 2.4.2 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r1 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1-r2 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/ http://cudlug.cudenver.edu/gentoo/ http://gentoo.mirrors.pair.com/ http://mirror.datapipe.net/gentoo http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://ftp.ntua.gr/pub/linux/gentoo/ http://gentoo.math.bme.hu http://ftp.heanet.ie/pub/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://mirror.gentoo.no/ http://mirror.isp.net.au/pub/gentoo/ http://gentoo.osuosl.org/ http://adelie.polymtl.ca/" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowext X a52 acl acpi alsa apache2 apm arts artswrappersuid asf avi bash-completion berkdb bitmap-fonts bluetooth bzip2 bzlib cairo caps cdr chm cli crypt css ctype cups curl dba dbus dlloader dmi doc dri dts dvd dvdr dvdread eds effects emboss encode esd examples exif expat fam fbcon ffmpeg firefox flac flatfile foomaticdb fortran ftp gd gdbm gif gimp gimpprint glx gmp gnome gnomedb gnutls gphoto2 gpm gstreamer gtk gtk2 hal hddtemp howl iconv imagemagick imap imlib innodb isdnlog jabber java javascript jpeg jpeg2k kde kdeenablefinal ldap libg++ libsamplerate libwww lm_sensors mad maildir mailwrapper mhash mikmod mime mmx mmxext motif mozdevelop mozilla mozsvg mp3 mpeg mplayer mpm-worker mysql mysqli ncurses nls nodrm nomalloccheck nptl nptlonly nsplugin nvidia objc odbc offensive ogg opengl pam pcntl pcre pdf pdflib pear perl php pic plugin png posix postgres postgresi ppds pppd python qt quicktime rar rdesktop readline recode reflection ruby samba sasl scanner sdl server session slang sndfile soap sockets speex spell spl spreadsheet sqlite sse ssl subtitles subversion svga symlink tcltk tcpd tetex threads tidy tiff tokenizer truetype truetype-fonts type1-fonts udev unicode usb userlocales utf8 vda visualization vorbis win32codecs wmf wv wxgtk1 xine xml xmlreader xmlrpc xmlwriter xmms xorg xpm xprint xscreensaver xsl xv xvid xvmc zip zlib elibc_glibc input_devices_keyboard input_devices_mouse kernel_linux userland_GNU video_cards_nvidia" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS
Version 2.5.5 was compiled fine with gcc-4.1.1 for me.
(In reply to comment #1) Same error here. Luckily libpqxx-2.5.5 works fine.
*** This bug has been marked as a duplicate of 146453 ***
Stupid bugzilla... Should block the other bug, not dupe.
Fixed for version 2.6.8.