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
http://www.gentoo.org/proj/en/desktop/games/#doc_chap5_sect4
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.
ok. turned off asm if USE=hardened. reopen if it's still a problem.
it shouldnt be too hard to make the code PIC friendly
i can fix half of them for sure but i'd prefer to let the experts do it :)
(In reply to comment #5) > i can fix half of them for sure but i'd prefer to let the experts do it :) What if they don't want to? https://bugzilla.icculus.org/show_bug.cgi?id=2305
upstream/wontfix then.