Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 235181 - libstdc++v3(gcc ebuild): Illegal instruction for 80386
Summary: libstdc++v3(gcc ebuild): Illegal instruction for 80386
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-19 09:56 UTC by klamp
Modified: 2009-01-10 12:03 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 klamp 2008-08-19 09:56:45 UTC
Some programs linked with libstdc++v3 crash in "__gnu_cxx::__exchange_and_add" with 80386 CPU, because "lock xadd %eax,(%edx)" is being executed. This fragment of code comes from atomicity.h file for i486 arch. Despite in (gcc-4.1.2.tar.bz2)/gcc-4.1.2/libstdc++-v3/config/cpu/i386 is included correct atomicity.h for 80386, after executing "ebuild /usr/portage/sys-devel/gcc/gcc-4.1.2.ebuild unpack" the file is overwritten in work directory with the one from .../cpu/i486 by the following fragment of code in /usr/portage/eclass/toolchain.eclass:

# Misdesign in libstdc++ (Redhat)
       if [[ ${GCCMAJOR} -ge 3 ]] && [[ -e ${S}/libstdc++-v3/config/cpu/i486/atomicity.h ]] ; then
               cp -pPR "${S}"/libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
       fi

Reproducible: Always

Steps to Reproduce:
1.ctorrent
Actual Results:  
Illegal instruction

Expected Results:  
Program should display "help" screen.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2008-08-19 20:56:15 UTC
Please post your `emerge --info' too.
Comment 2 klamp 2008-08-20 12:23:36 UTC
Portage 2.1.4.4 (uclibc/x86, gcc-4.1.2, uclibc-0.9.28.3-r3, 2.6.25-gentoo-r7 i686)
=================================================================
System uname: 2.6.25-gentoo-r7 i686 Intel(R) Celeron(R) CPU 2.40GHz
Timestamp of tree: Mon, 18 Aug 2008 22:30:01 +0000
app-shells/bash:     3.2_p33
dev-lang/python:     2.4.4-r6, 2.5.2-r6
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.61-r2
sys-devel/automake:  1.4_p6, 1.10.1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i386-gentoo-linux-uclibc"
CFLAGS="-Os -march=i386 -pipe -ggdb"
CHOST="i386-gentoo-linux-uclibc"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-Os -march=i386 -pipe -ggdb"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer nodoc noinfo noman sandbox sfperms splitdebug strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-O1"
PKGDIR="/"
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"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="cli cracklib crypt dri midi minimal mudflap ncurses openmp pcre perl python readline reflection session spl ssl tcpd uclibc x86 xorg zlib" 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 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" ELIBC="uclibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="dummy fbdev v4l"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
==============================================================================
I am building in chroot (80386 is to slow), thats why that system uname.
Comment 3 SpanKY gentoo-dev 2009-01-10 12:03:00 UTC
this was added back with gcc-3.3-r1 afaict:
http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/sys-devel/gcc/gcc-3.3-r1.ebuild?rev=1.1

and i think it harks back to a speed issue:
http://gcc.gnu.org/ml/libstdc++/2003-05/msg00023.html
http://gcc.gnu.org/PR10556

at any rate, i'm fairly certain it was really only needed with original gcc-3.3 releases and so can be dropped now

http://sources.gentoo.org/eclass/toolchain.eclass?r1=1.378&r2=1.379