Building libperl-5.8.2 (gcc version 3.3.2 20031022 (3.3.2-r2)) fails: ... CCCMD = gcc -DPERL_CORE -c -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -pipe -march=pentium4 -fforce-addr -fomit-frame-pointer -ffast-math -fprefetch-loop-arrays -falign-functions=4 -Wall pp_sys.c: In function `Perl_pp_shostent': pp_sys.c:5050: warning: implicit declaration of function `sethostent_r' pp_sys.c:5050: error: structure has no member named `_hostent_data' pp_sys.c: In function `Perl_pp_sprotoent': pp_sys.c:5072: warning: implicit declaration of function `setprotoent_r' pp_sys.c:5072: error: structure has no member named `_protoent_data' pp_sys.c: In function `Perl_pp_sservent': pp_sys.c:5083: warning: implicit declaration of function `setservent_r' pp_sys.c:5083: error: structure has no member named `_servent_data' pp_sys.c: In function `Perl_pp_ehostent': pp_sys.c:5094: warning: implicit declaration of function `endhostent_r' pp_sys.c:5094: error: structure has no member named `_hostent_data' pp_sys.c: In function `Perl_pp_eprotoent': pp_sys.c:5118: warning: implicit declaration of function `endprotoent_r' pp_sys.c:5118: error: structure has no member named `_protoent_data' pp_sys.c: In function `Perl_pp_eservent': pp_sys.c:5130: warning: implicit declaration of function `endservent_r' pp_sys.c:5130: error: structure has no member named `_servent_data' make: *** [pp_sys.o] Error 1 make: *** Waiting for unfinished jobs.... !!! ERROR: sys-devel/libperl-5.8.2 failed. !!! Function src_compile, Line 206, Exitcode 2 !!! Unable to make libperl.so Reproducible: Always Steps to Reproduce: 1.emerge sys-devel/libperl 2. 3. Actual Results: !!! ERROR: sys-devel/libperl-5.8.2 failed. !!! Function src_compile, Line 206, Exitcode 2 !!! Unable to make libperl.so Expected Results: Take a guess... Portage 2.0.49-r15 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r8, 2.4.22-xfs) ================================================================= System uname: 2.4.22-xfs i686 Intel(R) Pentium(R) 4 CPU 2.60GHz Gentoo Base System version 1.4.3.11 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -pipe -march=pentium4 -fforce-addr -fomit-frame-pointer -ffast-math -fprefetch-loop-arrays -falign-functions=4" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /var/bind /usr/X11R6/lib/X11/xkb /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O3 -pipe -march=pentium4 -fforce-addr -fomit-frame-pointer -ffast-math -fprefetch-loop-arrays -falign-functions=4" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox ccache autoaddcvs" GENTOO_MIRRORS="ftp://ftp.uninett.no/pub/linux/Gentoo http://gentoo.linux.no/ ftp://gentoo.linux.no/pub/gentoo/ http://mirror.pudas.net/gentoo" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 oss apm avi crypt foomaticdb gif jpeg libg++ mad mikmod mpeg ncurses png truetype xml2 xmms xv zlib gtkhtml gdbm berkdb slang readline tetex bonobo svga guile sdl tcpd pam libwww ssl perl python esd imlib motif snmp cdr X gtk gtk2 opengl threads qt xml acl md5sum alsa cups mozilla wmf mmx sse encode oggvorbis quicktime usb spell java pdflib acpi xfs -arts -gpm -gnome -kde -3dnow -nls"
On this system, sethostent_r does not exist, and is not found in the Configure stage, so Configure says: sethostent() found. sethostent_r() NOT found. On your system, is sethostent_r being found at this point? If so, can you figure out what header file on your system is declaring it?
sethostent_r is found. I cannot definitively determine where it gets set, just that it is related to the fact that threading is enabled. With USE="-threads" libperl compiles OK.
Got the same error here. Configure says: sethostent() found. sethostent_r() found. *** WHOA THERE!!! *** The recommended value for $d_sethostent_r_proto on this machine was "define"! Keep the recommended value? [y] sethostent_r is defined in /usr/include/lwres/netdb.h which belongs to net-dns/bind-9.2.3
Agreed, removing bind solves the problem in my case.
I get the same problems, and I have bind installed, but I cannot remove bind because it is being used. Can anyone work out a different fix?
OK, I have built a clean stage 1 x86 chroot, installed BIND, and tried to emerge libperl 5.8.2. No problem. sethostent_r is not picked up, compilation proceeds fine. Tried with and without USE="threads". Can somebody affected by this problem explain how BIND is corrupting things? I see a /usr/include/lwres/netdb.h provided by BIND that defines sethostent_r, but /usr/include/netdb.h provided by glibc does not, and that one appears to be winning here. How is BIND's header file shadowing the glibc one for you people?
This must have been an intermittent condition. I cannot reproduce this behaviour any more either. Can anyone else confirm this?
libperl came up in my list of things to emerge after an rsync today. Calculating world dependencies ...done! [ebuild U ] sys-devel/libperl-5.8.2 [5.8.0] [ebuild U ] dev-lang/perl-5.8.2-r1 [5.8.0-r12] [ebuild U ] media-libs/libvorbis-1.0.1-r2 [1.0.1-r1] [ebuild U ] media-libs/libgphoto2-2.1.3-r1 [2.1.2-r1] [ebuild U ] media-gfx/gphoto2-2.1.3 [2.1.2] when I try to emerge it starts with libperl-5.8.2 gets to unpacking then freezes up the machine except for the mouse can still move, nothing else works on exiting ctrl-alt-backspace fails, can't start or get to an open terminal to kill emerge. Have to reboot. I've tried it twice now same result. Bind is not installed. laptop root # emerge --info Portage 2.0.49-r20 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r9, 2.4.20-gentoo-r9) ================================================================= System uname: 2.4.20-gentoo-r9 i686 Intel(R) Pentium(R) III Mobile CPU 1133MHz Gentoo Base System version 1.4.3.10p1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=pentium3 -O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo ftp://gentoo.mirrors.pair.com/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo http://gentoo.noved.org/ http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="X aalib apm arts avi berkdb bonobo cdr crypt cups directfb encode esd foomaticdb gdbm gif gnome gphoto2 gpm gtk gtk2 gtkhtml guile imlib java jpeg kde libg++ libwww mad mikmod motif mozilla mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcltk tcpd tetex truetype x86 xml2 xmms xv zlib" help!
I have exactly the same problem with sethostent_r. Compiling fails for perl & libperl, version 5.8.3. I have bind-9.2.3 installed, and /usr/include/lwres/netdb.h is present with sethostent_r defined. There's also /usr/bind/include/netdh.h, which is exactly the same file as in /usr/include/lwres/. The strange thing is, that if I move both files elsewhere, perl's Configure _still_ claims to find sethostent_r somewhere :S I grep'ed my whole /usr/include for sethostent_r and these two files are the only ones which contain that symbol. Unmerging bind is no option, because it's in use. The problem only appeared when I added "threads" to my USE. For the sake of fixing this problem I'm ready to give shell-access to a gentoo-developer. Just drop me a mail if you want...
I downgraded bind-9.2.3 to bind-9.2.2-r3, which solved the problem for me. The problem, so it seems, lies in bind, not in perl...
Closing for age. Please reopen if this is persisting in 5.8.4 and current bind.
same here bind 9.2.3 libperl 5.8.4-r1 and perl 5.8.4-r1 fails with USE="threads" when i try USE="-threads" it compiles fine