gcc-4.5.1-r1 compiled libxml2 (tested 2.7.7 and 2.7.6), causes strange "Floating point exception" errors. Rebuilding libxml2 with gcc-4.4.5 makes the error message go away. Apps that gave me the error were pidgin and the gnome pannel but I assume it can potentially affect anything linking to libxml2. Oddly enough, running the apps through strace or gdb prevented the exception from occuring. Reproducible: Always Steps to Reproduce: 1. emerge gcc-4.5.1-r1 2. (re)emerge libxml2 (I did a -e world, but I don't think it's necessary to reproduce) 3. run pidgin or gnome-panel (that I tested) Actual Results: App doesn't start, outputs: Floating point exception Expected Results: App starts normally. I'm not very experienced with dev tools but it still baffles me that something as basic as a Floating point exception would vanish when starting an app with gdb. As a consequence, I can't really come up with more details as to specifically which part of libxml2 is broken. I'm guessing it's some sort of strange optimization magic. I'm filing this as normal but since a lot of apps link to libxml2, it could be pretty important.
Please post your `emerge --info' in a comment.
emerge --info Portage 2.1.9.24 (default/linux/x86/10.0, gcc-4.4.5, glibc-2.12.1-r3, 2.6.36-gentoo-r1 i686) ================================================================= System uname: Linux-2.6.36-gentoo-r1-i686-Intel-R-_Core-TM-2_Quad_CPU_Q6600_@_2.40GHz-with-gentoo-2.0.1 Timestamp of tree: Thu, 25 Nov 2010 01:30:01 +0000 app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r2 dev-lang/python: 2.6.6-r1 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1-r1 sys-apps/openrc: 0.6.5 sys-apps/sandbox: 2.3-r1 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.5, 4.5.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.4 sys-devel/make: 3.82 virtual/os-headers: 2.6.36 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="*" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=core2 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=core2 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_CA.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/science /var/lib/layman/pentoo" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="7zip X a52 aac aalib acpi aim alsa aotuv archive aspell ass audio automount avahi bash-completion blender-game branding bzip2 cairo caps cdda cleartype cli client consolekit corefonts cracklib crypt cups curl custom-cflags custom-optimization cxx dbus dell device-mapper dga dirac disk-partition divx dnotify drm dts dvd dvdnav dvdr emerald enca encode esd extras ffmpeg flac fontconfig ftp fts3 fuse gcdmaster gd gdbm gdu gecko gif gimp git glibc-omitfp glitz gmplayer gnome gnome-keyring gnutls grub gs gstreamer gtk gzip hdri hfs http icons id3tag ithreads java java6 joystick jpeg libnotify live lzma mdnsresponder-compat midi mmap mmx mmxext mng mp2 mp3 multiuser nautilus ncurses neon netapi network nls nptl nptlonly nsplugin ogg opengl openmp openvg osdmenu pam pcap pcf pcre pdf perl plugins png policykit python quicktime rar raw readline rtc samba secure-delete sensord server shm smbclient smp socks5 sound spell sqlite sse sse2 sse3 sse4 sse4.1 ssh ssl ssse3 subversion svg syslog tcpd tga theora threads threadsafe thunderbird tiff timezone truetype type1 udev unicode unsupported usb utils vcd vdpau verse video vidix vim-syntax vim-with-x vorbis wav webdav-neon win32codecs wmf x264 x86 xattr xcb xcomposite xinerama xml xorg xpdf-headers xpm xscreensaver xulrunner xv xvid xvmc zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="mouse keyboard joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="none nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
emerge --info # this one breaks libxml2 Portage 2.1.9.24 (default/linux/x86/10.0, gcc-4.5.1, glibc-2.12.1-r3, 2.6.36-gentoo-r1 i686) ================================================================= System uname: Linux-2.6.36-gentoo-r1-i686-Intel-R-_Core-TM-2_Quad_CPU_Q6600_@_2.40GHz-with-gentoo-2.0.1 Timestamp of tree: Thu, 25 Nov 2010 01:30:01 +0000 app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r2 dev-lang/python: 2.6.6-r1 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1-r1 sys-apps/openrc: 0.6.5 sys-apps/sandbox: 2.3-r1 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.5, 4.5.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.4 sys-devel/make: 3.82 virtual/os-headers: 2.6.36 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="*" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=core2 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=core2 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_CA.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/science /var/lib/layman/pentoo" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="7zip X a52 aac aalib acpi aim alsa aotuv archive aspell ass audio automount avahi bash-completion blender-game branding bzip2 cairo caps cdda cleartype cli client consolekit corefonts cracklib crypt cups curl custom-cflags custom-optimization cxx dbus dell device-mapper dga dirac disk-partition divx dnotify drm dts dvd dvdnav dvdr emerald enca encode esd extras ffmpeg flac fontconfig ftp fts3 fuse gcdmaster gd gdbm gdu gecko gif gimp git glibc-omitfp glitz gmplayer gnome gnome-keyring gnutls grub gs gstreamer gtk gzip hdri hfs http icons id3tag ithreads java java6 joystick jpeg libnotify live lzma mdnsresponder-compat midi mmap mmx mmxext mng mp2 mp3 multiuser nautilus ncurses neon netapi network nls nptl nptlonly nsplugin ogg opengl openmp openvg osdmenu pam pcap pcf pcre pdf perl plugins png policykit python quicktime rar raw readline rtc samba secure-delete sensord server shm smbclient smp socks5 sound spell sqlite sse sse2 sse3 sse4 sse4.1 ssh ssl ssse3 subversion svg syslog tcpd tga theora threads threadsafe thunderbird tiff timezone truetype type1 udev unicode unsupported usb utils vcd vdpau verse video vidix vim-syntax vim-with-x vorbis wav webdav-neon win32codecs wmf x264 x86 xattr xcb xcomposite xinerama xml xorg xpdf-headers xpm xscreensaver xulrunner xv xvid xvmc zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="mouse keyboard joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="none nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
It turns out that what breaks is not libxml2 but zlib (which libxml2 links to). Rebuilding zlib with gcc-4.4.5 fixes the issue without recompiling libxml2 as well. Sorry for the misleading information. Should a new bug be created?
Okay... Even more strange now. rebuilding zlib only *temporarily* fixes the problem. The app (pidgin) will launch fine after the rebuild, then will die unexpectedly after a random number of minutes and refuse to launch again (throwing Floating Point Exception) until zlib is rebuilt once more.
I'm having floating point exceptions when starting gnome-panel or nautilus too. Like the original reporter said, when launching with strace or gdb these programs work fine. However, I don't think they're related to libxml2 or zlib, since the failures started after my last upgrade: glibc-2.12.2, xorg-server-1.9.3.901, rsync-3.0.7-r1, wine-1.3.11. The first one looks the most suspicious to me, but downgrading it's forbidden by the ebuild so I cannot test. $ emerge --info =sys-libs/glibc-2.12.2 Portage 2.2.0_alpha14 (default/linux/x86/10.0, gcc-4.5.2, glibc-2.12.2-r0, 2.6.37-3737-g0c21e3a i686) ================================================================= System Settings ================================================================= System uname: Linux-2.6.37-3737-g0c21e3a-i686-Intel-R-_Pentium-R-_M_processor_1.86GHz-with-gentoo-2.0.1 Timestamp of tree: Sun, 09 Jan 2011 18:00:01 +0000 app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.1, 3.1.3 dev-util/cmake: 2.8.3-r1 sys-apps/baselayout: 2.0.1-r1 sys-apps/openrc: 0.6.8 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.68 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.21 sys-devel/gcc: 4.5.2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82 virtual/os-headers: 2.6.36.1 (sys-kernel/linux-headers) Repositories: gentoo my-overlay ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA" CBUILD="i686-pc-linux-gnu" CFLAGS="-pipe -O2 -march=pentium-m -fomit-frame-pointer -funswitch-loops" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /etc/grub.d /usr/share/openvpn/easy-rsa" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-pipe -O2 -march=pentium-m -fomit-frame-pointer -funswitch-loops -fvisibility-inlines-hidden" DISTDIR="/var/cache/portage/distfiles" EMERGE_DEFAULT_OPTS="--keep-going --nospinner --with-bdeps=y --quiet-unmerge-warn --quiet-build" FEATURES="assume-digests binpkg-logs distlocks fail-clean fixlafiles fixpackages news nodoc noinfo parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-pipe -O2 -march=pentium-m -fomit-frame-pointer -funswitch-loops" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1,--hash-style=gnu,--as-needed" LINGUAS="en it" MAKEOPTS="-j2 --quiet" PKGDIR="/var/cache/portage/packages" PORTAGE_COMPRESS="xz" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/var/portage/gentoo" PORTDIR_OVERLAY="/var/portage/overlays/my-overlay" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="acpi alsa avahi bash-completion bzip2 cairo cli consolekit cups cxx dbus dri exif gconf gnome gnome-keyring gstreamer iconv jpeg libnotify libproxy mmx mng modules mudflap natspec nautilus networkmanager nls nptl nptlonly ogg opengl pam pch pcre pdf png policykit pppd session spell sse sse2 ssl startup-notification svg sysfs systemd udev unicode x86 xcb xcomposite xinerama xorg xscreensaver xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en it" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ================================================================= Package Settings ================================================================= sys-libs/glibc-2.12.2 was built with the following: USE="glibc-omitfp nls -debug -gd (-hardened) (-multilib) -profile (-selinux) -vanilla" CFLAGS="-pipe -march=pentium-m -O2 -fno-strict-aliasing" CXXFLAGS="-pipe -march=pentium-m -O2 -fno-strict-aliasing"
I've rebuild glibc with USE=-glibc-omitfp and now all seems to work fine.
Jonathan, have you tested with the latest versions of gcc and libxml2 (4.5.2 and 2.7.8-r1 respectively at time of writing)? I emerged libxml2 with gcc-4.5.2 and since many applications that I use depend on it, I would expect to see problems immediately but haven't seen any. (The rest of my system was emerged with gcc-4.4.) Could you do some more testing to try and narrow down exactly what the cause of the floating point error is? Thanks, cheers.
I also haven't seen breakage with libxml2 (gcc-4.5.2) but I am using glibc-2.13-r3 with -glibc-omitfp.
(In reply to comment #8) > Jonathan, have you tested with the latest versions of gcc and libxml2 (4.5.2 > and 2.7.8-r1 respectively at time of writing)? > > I emerged libxml2 with gcc-4.5.2 and since many applications that I use depend > on it, I would expect to see problems immediately but haven't seen any. (The > rest of my system was emerged with gcc-4.4.) > > Could you do some more testing to try and narrow down exactly what the cause of > the floating point error is? Thanks, cheers. Everything seems quite fine with 4.5.2, libxml2-2.7.8-r1 and glibc-2.13-r2. I rebuilt world using 4.5.2 recently and everything is smooth as ever. In fact, I had forgotten about this bug until the last two messages popped out. I'm not sure what had caused the problem before however. CFLAGs haven't changed but obviously lots of packages were updated in the meantime. I'm fine with closing the bug as it no longer seems to be an issue. But if some of you need closure through further digging, feel free.