gtkwave-3.0.28/29 fails with -frename-registers, the only thing changed to make it compile is to not use that option, so maybe the ebuild should filter that out? this is the breaking point with -frename-registers: if x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -DWAVE_USE_GTK2 -I./.. -I./../.. -march=k8 -O3 -pipe -msse3 -fomit-frame-pointer -ftracer -fforce-addr -ftree-vectorize -frename-registers -MT lxt2vcd.o -MD -MP -MF ".deps/lxt2vcd.Tpo" -c -o lxt2vcd.o lxt2vcd.c; \ then mv -f ".deps/lxt2vcd.Tpo" ".deps/lxt2vcd.Po"; else rm -f ".deps/lxt2vcd.Tpo"; exit 1; fi lxt2_read.c: In function 'lxt2_rd_process_block': lxt2_read.c:774: error: extended registers have no high halves {standard input}: Assembler messages: {standard input}:2017: Error: bad register name `%' make[4]: *** [lxt2_read.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory `/var/tmp/portage/sci-electronics/gtkwave-3.0.29/work/gtkwave-3.0.29/src/helpers' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/sci-electronics/gtkwave-3.0.29/work/gtkwave-3.0.29/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/var/tmp/portage/sci-electronics/gtkwave-3.0.29/work/gtkwave-3.0.29/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/sci-electronics/gtkwave-3.0.29/work/gtkwave-3.0.29' make: *** [all] Error 2 !!! ERROR: sci-electronics/gtkwave-3.0.29 failed. Call stack: ebuild.sh, line 1621: Called dyn_compile ebuild.sh, line 973: Called qa_call 'src_compile' ebuild.sh, line 44: Called src_compile ebuild.sh, line 647: Called die !!! emake failed !!! If you need support, post the topmost build error, and the call stack if relevant. !!! A complete build log is located at '/var/tmp/portage/sci-electronics/gtkwave-3.0.29/temp/build.log'. And here is the emerge --info (not that it matters as it's all about the -fregster-rename, so I bet it's not even arch dependant, but no way to test that): Portage 2.1.2.9 (default-linux/amd64/2006.0, gcc-4.2.0, glibc-2.6-r0, 2.6.21-gentoo-r2 x86_64) ================================================================= System uname: 2.6.21-gentoo-r2 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ Gentoo Base System release 1.12.10 Timestamp of tree: Sat, 09 Jun 2007 14:30:08 +0000 dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r4 dev-python/pycrypto: 2.0.1-r5 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17.50.0.16 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.23b virtual/os-headers: 2.6.21 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O3 -pipe -msse3 -fomit-frame-pointer -ftracer -fforce-addr -ftree-vectorize -fregister-rename" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-march=k8 -O3 -pipe -msse3 -fomit-frame-pointer -ftracer -fforce-addr -ftree-vectorize -fregister-rename -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer parallel-fetch sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,now" LINGUAS="en_US" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY=" " SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="7zip S3TC X a52 aac ace acl acpi agg aiglx aim akode alias alsa amarok amd64 amr aotuv arts asf audiofile avahi bash-completion berkdb bitmap-fonts bl blender-game boost bzip2 cairo caps cdda cddb cdparanoia cdr chroot cmdsubmenu compress config_wizard connectionstatus contactnotes cpio cpudetection cracklib crypt css ctype curl curlwrappers cvs cvsgraph daap dbus depth32 dga dio divx djbfft dmi dri dts dv dvb dvd dvdr dvdread dynamic ecc effects emboss enca encode erandom exif expat f90 fam fame fat ffmpeg fftw fi firefox flac flash font-server fontconfig fortran fortran95 fpx ftp fuse gadu gcj gd gdbm gif gimp gimpprint glib glibc-omitfp glitz glut gmedia gmp gnutls gpg2-experimental gpgme gphoto2 gpm gps graphicsmagick graphviz groupwise gs gsl hal hddtemp highlight history howl howl-compat hpn iconv icq icu id3 idea imagemagick imap imlib insecure-savers ipfilter ipsec ipv6 irc isdnlog jabber java javascript jbig jce jingle jpeg jpeg2k jrtplib kde kdeenablefinal kdehiddenvisibility kexi keyscrub kig-scripting kipi lame lash lcms lesstif libedit libnotify libsamplerate libsexy linuxthreads-tls lirc live lm_sensors logrotate lzo lzw mad math mdnsresponder-compat mhash midi mikmod mime ming mixer mjpeg mmap mmkeys mng mod modplug mozsvg mp3 mp4 mp4live mpeg mpeg2 mplayer msn mudflap musepack music musicbrainz ncurses netmeeting netpbm network nls nntp no-old-linux nowlistening nptl nptlonly nsplugin nspr nss ntfs ntp numeric objc objc++ objc-gc office ofx ogg on-the-fly-crypt openal opendoc openexr opengl openmp ortp osc oscar pam pch pcre pdf perl plib plugins pmount pmu png posix ps python qt3 qt4 quicktime rar rc5 readline realmedia recode reflection reiser4 reiserfs rle rss rtc rtsp sametime sasl sensord session setup-plugin shared sharedmem slang slp smp sndfile snmp sockets sound sounds sourcecaps sox speech speex spell spl sqlite sqlite3 sse3 ssl startup-notification statistics stlport stream submenu subtitles subversion svg svgz symlink sysfs szip taglib tagwriting tcpd texteffect theora threads threadsonly tiff transcode translator truetype truetype-fonts type1 type1-fonts udev unicode unix98 unzip upnp usb userlocales uuencode vcd vdr vfat videos vlm voice vorbis vorbis-psy wavpack webdav wma wmf wmp wordperfect x264 xanim xcb xcomposite xext xforms xgl xine xinerama xml xmlrpc xorg xpm xrandr xsettings xsl xslt xv xvid yaepg yahoo yaz yv12 zip zlib zrtp zvbi" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" DVB_CARDS="dibusb-usb1" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_US" LIRC_DEVICES="devinput" USERLAND="GNU" VIDEO_CARDS="mach64 radeon" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
You can try your luck upstream; unsupported flag.
I've just amended this bug and taken it for others who might stumble across it as I have done. The issue is not with -frename-registers, but in fact, other optimisations enabled by gcc that effectively break the inline assembly. These optimisations are enabled by -O1 and above. URL linked here is the upstream bug on Sourceforge.