Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 99584 - Perl Floating exception after glibc upgrade
Summary: Perl Floating exception after glibc upgrade
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Highest blocker (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-07-19 15:04 UTC by Mayyah
Modified: 2005-07-26 16:50 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mayyah 2005-07-19 15:04:01 UTC
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.
Comment 1 Michael Cummings (RETIRED) gentoo-dev 2005-07-19 17:07:00 UTC
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 :).
Comment 2 Mayyah 2005-07-19 17:59:17 UTC
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
Comment 3 Mayyah 2005-07-19 18:23:02 UTC
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.



Comment 4 Michael Cummings (RETIRED) gentoo-dev 2005-07-19 18:32:28 UTC
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 :)
Comment 5 Michael Cummings (RETIRED) gentoo-dev 2005-07-19 18:42:48 UTC
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?
Comment 6 Mayyah 2005-07-19 22:06:46 UTC
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.
Comment 7 Michael Cummings (RETIRED) gentoo-dev 2005-07-20 02:21:42 UTC
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 :)
Comment 8 Michael Cummings (RETIRED) gentoo-dev 2005-07-20 03:37:02 UTC
(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.
Comment 9 Michael Cummings (RETIRED) gentoo-dev 2005-07-26 16:50:44 UTC
Going to go ahead and close this out since all is good now (if not perfect to
begin with). Thanks for your patience,

Mike