duke3d fails to compile. Maybe it is caused by hardened gcc?
Reproducible: Always
Steps to Reproduce:
1. emerge duke3d
Actual Results:
[...]
gcc -c -o engine.o engine.c -DUSE_OPENGL -I/usr/X11R6/include -DUSE_PERL
-DUDP_NETWORKING=1 -DUSE_I386_ASM -funsigned-char -DPLATFORM_UNIX -Wall
-I/usr/include/SDL -D_REENTRANT -fno-omit-frame-pointer
engine.c: In function `getclipmask':
engine.c:684: error: can't find a register in class `BREG' while reloading `asm'
make: *** [engine.o] Error 1
make: *** Waiting for unfinished jobs....
!!! ERROR: games-fps/duke3d-20040817 failed.
!!! Function src_compile, Line 87, Exitcode 2
!!! buildengine failed
Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r9 i686)
=================================================================
System uname: 2.6.11-gentoo-r9 i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.6.12
Python: dev-lang/python-2.3.5 [2.3.5 (#1, Jun 13 2005, 18:16:21)]
dev-lang/python: 2.3.5
sys-apps/sandbox: [Not Present]
sys-devel/autoconf: 2.59-r6, 2.13
sys-devel/automake: 1.5, 1.8.5-r3, 1.7.9-r1, 1.6.3, 1.4_p6, 1.9.5
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.16
virtual/os-headers: 2.6.8.1-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS=""
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS=""
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo
http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/
ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/
http://ftp.uni-erlangen.de/pub/mirrors/gentoo
ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo http://gentoo.osuosl.org/"
LINGUAS="de"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X Xaw3d a52 aac aalib accessibility acl acpi aim alsa apache2 apm
arts audiofile avi bash-completion bcmath berkdb bitmap-fonts bluetooth bzip2
calendar caps cdb cdparanoia cdr cpdflib crypt cscope cups curl curlwrappers dbm
dbus dedicated dga dio directfb divx4linux doc dv dvb dvd dvdr dvdread emacs
emboss encode esd ethereal examples exif fam fastcgi fbcon ffmpeg fftw flac
flash flatfile foomaticdb fortran freetds ftp gd gdbm geoip gif ginac glut gmp
gnome gnutls gphoto2 gpm gps gstreamer gtk gtk2 guile hal hardened hardenedphp
howl hyperwave-api icc iconv icq ieee1394 imagemagick imap imlib innodb iodbc
ipv6 jabber jack java javascript joystick jpeg kde kdeenablefinal kerberos krb4
ladccalcms ldap leim lesstif libcaca libg++ libgda libwww lirc lm_sensors mad
maildir matroska matrox mbox mcal mcve memlimit mhash mikmod milter mime ming
mmap mmx mng mono motif mozilla mp3 mpeg mpi msession msn mule mysql mysqli nas
ncurses netcdf nls nocd nptl offensive ofx ogg oggvorbis openal opengl osc oscar
oss pam pcntl pcre pda pdflib perl pfpro phpplotutils png portaudio posix ppds
python qdbm qt quicktime radius readline recode ruby samba sasl scanner sdl
session sharedext sharedmem shorten simplexml skey slang slp smartcard sndfile
snmp soap sockets socks5 sox speex spell spl sqlite ssl svg svga tcltk tcpd
tetex theora threads tidy tiff tokenizer truetype truetype-fonts type1-fonts usb
v4l vcd vhosts videos vorbis wddx win32codecs wmf wxwindows x86 xface xine xml
xml2 xmlrpc xmms xpm xprint xsl xv xvid yahoo yaz zeo zlib linguas_de
userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
Sorry for marking the bug as "blocker" but bugzilla says "Blocker: This
bug prevents a software application from testing and use". I interpreted
"a software application" as "the software application subject to the bug
report". So according to my understanding every "emerge fails" bug would
be a blocker.
BTW, I think that the emerge problem is caused by hardened gcc. It seems
that gcc does not allow binding of ebx, ecx, edx to i2, i3, i4 in the
inline assembly version of getclipmask(). When the macro USE_I386_ASM is
not defined, the file compiles fine.