When trying to emerge adabindx, you get a barf from an attempt to compile the gnat copyright message. Reproducible: Always Steps to Reproduce: 1. emerge adabindx Actual Results: % emerge adabindx [...works on it for a while...] make[1]: Entering directory `/var/tmp/portage/adabindx-0.7.2/work/adabindx-0.7.2/utils' make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. gnatgcc -c -gnatnv -march=i686 -O3 -pipe -falign-functions=4 -fomit-frame-pointer -I../lib preprocess.adb gnatmake -gnatnv -march=i686 -O3 -pipe -falign-functions=4 -fomit-frame-pointer -I../lib islittleend -largs -s gnatgcc -c -gnatnv -march=i686 -O3 -pipe -falign-functions=4 -fomit-frame-pointer -I../lib islittleend.adb {standard input}: Assembler messages: {standard input}:2: Error: no such instruction: `gnat 3.4.1 Copyright 1992-2004 Free Software Foundation,Inc.' {standard input}:4: Error: invalid character '.' in mnemonic {standard input}:5: Warning: rest of line ignored; first ignored character is `5' gnatmake: "islittleend.adb" compilation error make[1]: *** [islittleend] Error 4 make[1]: Leaving directory `/var/tmp/portage/adabindx-0.7.2/work/adabindx-0.7.2/utils' make: *** [utils/islittleend] Error 2 make: *** Waiting for unfinished jobs.... {standard input}: Assembler messages: {standard input}:2: Error: no such instruction: `gnat 3.4.1 Copyright 1992-2004 Free Software Foundation,Inc.' {standard input}:4: Error: invalid character '.' in mnemonic {standard input}:2909: Error: unknown pseudo-op: `.ule' {standard input}:2910: Error: no such instruction: `b128 .LEHB36-.LFB11' gnatmake: "preprocess.adb" compilation error make[1]: *** [preprocess] Error 4 make[1]: Leaving directory `/var/tmp/portage/adabindx-0.7.2/work/adabindx-0.7.2/utils' make: *** [utils/preprocess] Error 2 !!! ERROR: dev-ada/adabindx-0.7.2 failed. !!! Function src_compile, Line 29, Exitcode 2 !!! (no error message) N.B. - Though my paste above uses the ~x86 gnat 3.4.1, I had the same problem when using gnat 3.15p. Expected Results: Complete the emerge without error. Portage 2.0.50-r10 (default-x86-2004.0, gcc-3.3.4, glibc-2.3.3.20040420-r1, 2.6.7-gentoo-r8) ================================================================= System uname: 2.6.7-gentoo-r8 i686 AMD Athlon(TM) XP 2100+ Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe -falign-functions=4 -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /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="-march=athlon-xp -O3 -pipe -falign-functions=4 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox strict userpriv usersandbox" GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo http://gentoo.ccccom.com ftp://ftp.ussg.iu.edu/pub/linux/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X alsa amd apm avi berkdb bonobo cdr crypt cups doc dvd emacs encode esd f77 foomatic foomaticdb freetype gdbm gif gimp gimpprint glade glut gnome gpm gtk gtk2 gtkhtml guile image imagemagick imlib imlib2 java javascript jpeg lcms libg++ libwww mad mikmod mixer mmx mng motif mozilla mpeg mpeg4 mplayer music mysql ncurses nls offensive oggvorbis openal opengl openssh oss pam pdflib perl plotutils png ppds python quicktime rage128 readline regex ruby sdk sdl slang sndfile spell src sse ssl svga tcltk tcpd tetex tiff timidity truetype type1 unicode videos x86 xine xml2 xmms xv zlib"
Aha - this problem occurs when you have -pipe in your CFLAGS in /etc/make.conf
A bit of experimenting shows that this is because the .ebuild inherits the "gnat" eclass, and gnat.eclass tries to filter multiple flags in a single call to the filter-flag function. Apparently only a single flag is accepted by that function, because adding the line filter-flags "-pipe" does indeed make the -pipe option go away, and allows the build to complete without trouble.
This was caused by a problem with the gnat eclass. The eclass was fixed today, marking this bug for testing.