Perl is broken today after emerge -up world updated gcc-config, glibc, and autoconf-wrapper. Retried recompile of perl and libperl, compile fails with: Let me guess what the preprocessor flags are... Any additional ld flags (NOT including libraries)? [ -L/usr/local/lib] Checking your choice of C compiler and flags for coherency... Configure: line 4995: 30466 Floating point exception$sh -c "$run ./try" >>try.msg 2>&1 I've tried to compile and run the following simple program: #include <stdio.h> int main() { printf("Ok\n"); return(0); } I used the command: i686-pc-linux-gnu-gcc -o try -march=pentium4 -O3 -pipe -funroll-loops -fprefetch-loop-arrays -fno-strict-aliasing -pipe -L/usr/local/lib try.c -lpthread -lbind -lnsl -lndbm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc ./try and I got the following output: The program compiled OK, but exited with status 136. You have a problem. Shall I abort Configure [y] Ok. Stopping Configure. !!! ERROR: dev-lang/perl-5.8.6-r5 failed. !!! Function src_configure, Line 244, Exitcode 1 !!! Unable to configure !!! If you need support, post the topmost build error, NOT this status message. Reproducible: Always Steps to Reproduce: 1. perl -v Actual Results: #> perl -v Floating exception Portage 2.0.51.22-r2 (default-linux/x86/2005.0/2.4, gcc-3.3.5-20050130, glibc-2.3.5-r0, 2.4.20-gentoo-r9 i686) ================================================================= System uname: 2.4.20-gentoo-r9 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz Gentoo Base System version 1.6.12 dev-lang/python: 2.2.3-r5, 2.3.5 sys-apps/sandbox: 1.2.10 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.4.22-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O3 -pipe -funroll-loops -fprefetch-loop-arrays" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium4 -O3 -pipe -funroll-loops -fprefetch-loop-arrays" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 apache apache1 apm arts avi berkdb bitmap-fonts crypt cups curl emboss encode esd foomaticdb fortran gd gdbm gif gpm gtk2 imagemagick imap imlib innodb java jpeg kde libg++ libwww mad mikmod motif mp3 mpeg mysql ncurses nls oggvorbis opengl oss pam pam-mysql pdflib perl png python qt quicktime readline sasl sdl slang spell ssl svga tcpd tiff truetype truetype-fonts type1-fonts xml xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTDIR_OVERLAY 1121785918: Started emerge on: Jul 19, 2005 11:11:58 1121785918: *** emerge --update gcc-config glibc autoconf-wrapper 1121785918: >>> emerge (1 of 3) sys-devel/gcc-config-1.3.11-r4 to / 1121785918: === (1 of 3) Cleaning (sys-devel/gcc-config-1.3.11-r4::/usr/portage/sys-devel/gcc-config/gcc-config-1.3.11-r4.ebuild) 1121785919: === (1 of 3) Compiling/Merging (sys-devel/gcc-config-1.3.11-r4::/usr/portage/sys-devel/gcc-config/gcc-config-1.3.11-r4.ebuild) 1121785952: === (1 of 3) Updating world file (sys-devel/gcc-config-1.3.11-r4) 1121785952: === (1 of 3) Post-Build Cleaning (sys-devel/gcc-config-1.3.11-r4::/usr/portage/sys-devel/gcc-config/gcc-config-1.3.11-r4.ebuild) 1121785953: >>> AUTOCLEAN: sys-devel/gcc-config 1121785958: === Unmerging... (sys-devel/gcc-config-1.3.10-r2) 1121785962: >>> unmerge success: sys-devel/gcc-config-1.3.10-r2 1121785962: ::: completed emerge (1 of 3) sys-devel/gcc-config-1.3.11-r4 to / 1121785962: >>> emerge (2 of 3) sys-libs/glibc-2.3.5 to / 1121785962: === (2 of 3) Cleaning (sys-libs/glibc-2.3.5::/usr/portage/sys-libs/glibc/glibc-2.3.5.ebuild) 1121785963: === (2 of 3) Compiling/Merging (sys-libs/glibc-2.3.5::/usr/portage/sys-libs/glibc/glibc-2.3.5.ebuild) 1121789550: === (2 of 3) Updating world file (sys-libs/glibc-2.3.5) 1121789550: === (2 of 3) Post-Build Cleaning (sys-libs/glibc-2.3.5::/usr/portage/sys-libs/glibc/glibc-2.3.5.ebuild) 1121789579: >>> AUTOCLEAN: sys-libs/glibc 1121789584: === Unmerging... (sys-libs/glibc-2.3.4.20041102-r1) 1121789617: >>> unmerge success: sys-libs/glibc-2.3.4.20041102-r1 1121789619: ::: completed emerge (2 of 3) sys-libs/glibc-2.3.5 to / 1121789619: >>> emerge (3 of 3) sys-devel/autoconf-wrapper-3-r1 to / 1121789619: === (3 of 3) Cleaning (sys-devel/autoconf-wrapper-3-r1::/usr/portage/sys-devel/autoconf-wrapper/autoconf-wrapper-3-r1.ebuild) 1121789621: === (3 of 3) Compiling/Merging (sys-devel/autoconf-wrapper-3-r1::/usr/portage/sys-devel/autoconf-wrapper/autoconf-wrapper-3-r1.ebuild) 1121789637: === (3 of 3) Post-Build Cleaning (sys-devel/autoconf-wrapper-3-r1::/usr/portage/sys-devel/autoconf-wrapper/autoconf-wrapper-3-r1.ebuild) 1121789638: >>> AUTOCLEAN: sys-devel/autoconf-wrapper 1121789643: === Unmerging... (sys-devel/autoconf-wrapper-2-r1) 1121789645: >>> unmerge success: sys-devel/autoconf-wrapper-2-r1 1121789645: ::: completed emerge (3 of 3) sys-devel/autoconf-wrapper-3-r1 to / 1121789645: *** Finished. Cleaning up... 1121789648: *** exiting successfully. 1121789657: *** terminating.
What's your current installed perl (with -r#)? Does perl -v really segfault?? What does ldd /usr/bin/perl5(whateveryourinstalledversionis) say? You upgraded gcc...did you etc-update and run revdep-rebuild (not sure it was necessary, just checking :).
Michael, Thanks for the quick response. Perl's Latest version installed: 5.8.6-r5 etc-update is all current, and I did a revdep-rebuild first thing after the upgrade with nothing to report. > ldd /usr/bin/perl5.8.6 libpthread.so.0 => /lib/libpthread.so.0 (0x40022000) libbind.so.2 => /usr/lib/libbind.so.2 (0x40074000) libnsl.so.1 => /lib/libnsl.so.1 (0x400bf000) libdl.so.2 => /lib/libdl.so.2 (0x400d4000) libm.so.6 => /lib/libm.so.6 (0x400d8000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x400fa000) libutil.so.1 => /lib/libutil.so.1 (0x40127000) libc.so.6 => /lib/libc.so.6 (0x4012c000) /lib/ld-linux.so.2 (0x40000000) # perl -v Floating point exception # perl -V Floating point exception # perl --help Floating point exception # perl -D Floating point exception # perl -MCPAN -eshell Floating point exception The frustrating thing is that perl and libperl will not recompile (see error from details). I've reinstalled glibc, gcc, autoconf-wrapper, and gcc-config to no avail. I love perl, and can't live without it. Is there an issue with Perl threads and the new glibc? I've been searching all afternoon and can not find a dupe of this error. Thanks, Dave
Ok, I broke down the try.c test in the Perl compile and experimented with the preset flags, as below: #try.c: #include <stdio.h> int main() { printf("Ok\n"); return(0); } # perl's compile test step > i686-pc-linux-gnu-gcc -o try -march=pentium4 -O2 -pipe -funroll-loops -fprefetch-loop-arrays -fno-strict-aliasing -pipe -L/usr/local/lib try.c -lpthread -lbind -lnsl -lndbm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc > ./try Floating exception I was suspicious about the -lpthread, but turns out that the -lbind flag is the culprit. revdep-rebuild did not report any outdated dependencies. I want to do a 'emerge bind bind-tools' to see if that is the 'bind' issue, but a remerge of the existing package net-dns/bind-9.2.5-r4 also fails with: >>> Unpacking bind-9.2.5.tar.gz to /var/tmp/portage/bind-9.2.5-r4/work * Applying named.rc6-smart_pid_fix ... [ ok ]/usr/portage/net-dns/bind/bind-9.2.5-r4.ebuild: line 27: 5664 Floating point exceptionWANT_AUTOCONF=2.5 autoconf !!! ERROR: net-dns/bind-9.2.5-r4 failed. !!! Function src_unpack, Line 77, Exitcode 136 !!! autoconf failed !!! If you need support, post the topmost build error, NOT this status message.
unless your manually passing ithreads in a use variable (I don't see it in your make.conf output) perl threading shouldn't be the problem (and I haven't heard of any other folks having problems -yea, i know i'm always the last to updates like that :) (pthreads != perl threads; pthreads is posix threading, whole different beast alltogether) one thing comes to mind, not sure if it would help - fix_libtool_files.sh - I know, name doesn't suggest much, but its helped me out of bizarre bugs after upgrading gcc versions (Really, REALLY not thinking its perl's Configure script, since that's just a shell type script, and the test its failing on is an invokation of gcc, not perl). yes, i am grasping already, which is why i'm off to sleep land - but i just spent the last hour tossing and turning trying to remember the name of fix_libtool_files, wanted to at least pass it along in case your in a better timezone :)
sorry, reading my mail and answering in order, missed your follow up in re: lbind. Humor an old dog with the fix_libs trick - worst case it spends a few minutes and a few cycles and your still here. Looking through the bugzilla archives for this particular bug, best 'experienced' advise I can give is try trimming your CFLAGS down (my lame ones, for instance, are just CFLAGS="-O2 -march=i686 -fomit-frame-pointer"). Or better, try that last bit as the cflags for the test compile (not sure if you would need to recompile gcc/glibc if that turns out to be the culprit though - luckily this came up early after the upgrade). You haven't changed any CFLAGS/CXXFLAGS recently have you?
No changes to CFLAGS since the machine was installed in 2003. fix_libtool_files.sh didn't fix it. But I think I have it hacked: I transfered the perl 5.8.6 binary compiled under glibc 2.3.5 from another machine. This allowed me to recompile autoconf and then perl and libperl. I could then recompile bind (9.2.5-r4 would not compile, only 9.3.1-r2 would). I had to recompile mod_perl after this as well. Something with the new glibc did not agree with my bind 9.2.5-r4. Running stable for two and a half years, any ideas what could be going with glibc/bind to have caused this mess? I was lucky to avoid a complete reinstall, but it was a close call.
Not directly - but I remember there being an issue at one point with particular versions of bind and perl (about 2 years ago actually). Probably could dredge something up in a well keyworded search of bugzilla (I would need caffeine first, but let me know if you want me to scour for ya :)
(possibly relevant from a lost perl install doc) =item __inet_* errors If you receive unresolved symbol errors during Perl build and/or test referring to __inet_* symbols, check to see whether BIND 8.1 is installed. It installs a /usr/local/include/arpa/inet.h that refers to these symbols. Versions of BIND later than 8.1 do not install inet.h in that location and avoid the errors. You should probably update to a newer version of BIND (and remove the files the old one left behind). If you can't, you can either link with the updated resolver library provided with BIND 8.1 or rename /usr/local/bin/arpa/inet.h during the Perl build and test process to avoid the problem.
Going to go ahead and close this out since all is good now (if not perfect to begin with). Thanks for your patience, Mike