games-emulation/ps2emu-gssoft-0.9 fails to emerge with the following error: ../x86/ix86_cpudetect.c: In function `iCpuId': ../x86/ix86_cpudetect.c:153: error: PIC register `ebx' clobbered in `asm' make: *** [../x86/ix86_cpudetect.o] Error 1 You can get the complete messages from the URL Reproducible: Always Steps to Reproduce: 1.emerge sync 2.emerge ps2emu-gssoft 3. Actual Results: emerge failed to build ps2emu-gssoft Expected Results: ps2emu-gssoft should have been built Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r1, 2.6.12-gentoo-r7 i686) ================================================================= System uname: 2.6.12-gentoo-r7 i686 AMD Athlon(tm) XP 2800+ Gentoo Base System version 1.6.13 ccache version 2.4 [enabled] dev-lang/python: 2.3.5, 2.4.1-r1 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig candy ccache distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/" LANG="de_DE@euro" LINGUAS="de" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/bmg-main /usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowext X aac alsa apache2 apm authdaemond avi bash-completion berkdb bigger-fonts bitmap-fonts bonobo bzip2 cddb cdr crypt cups curl directfb divx4linux dvd dvdr dvdread eds emboss encode escreen ethereal fam ffmpeg firefox flac flash foomaticdb fortran gd gdbm geoip gif gnome gpm gps graphviz gstreamer gtk gtk2 gtkhtml ha hal howl icq ieee1394 imagemagick imap imlib imlib2 jabber java javascript jpeg jpg junit kqemu libg++ libwww logitech-mouse mad mikmod mmx mmxext motif mp3 mpeg msn mysql ncurses nls nptl nptlonly offensive ogg oggvorbis opengl openssh openssl pam pdflib perl php pic png ppds python qemu quicktime rdesktop readline real remote ruby samba sasl sdl server session shaper slang spell sqlite sse ssl stream svga tcltk tcpd tiff truetype truetype-fonts type1-fonts unicode userlocales vcd vorbis wifi win32codecs xine xml xml2 xprint xv xvid zlib linguas_de userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS
Try: USE="-pic" emerge ps2emu-gssoft
there is on more after ipciud that need the ebx asm fix gcc -march=athlon-xp -mtune=athlon-xp -pipe -O3 -fweb -frename-registers -fforce-addr -momit-leaf-frame-pointer -fomit-frame-pointer -ftracer -fPIC -Wall -march=athlon-xp -mtune=athlon-xp -pipe -O3 -fweb -frename-registers -fforce-addr -momit-leaf-frame-pointer -fomit-frame-pointer -ftracer -fno-exceptions -m128bit-long-double -I. -I.. -I../x86 -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/SDL -D_REENTRANT -D__LINUX__ -c -o ../x86/ix86_cpudetect.o ../x86/ix86_cpudetect.c -MD -MF ../x86/ix86_cpudetect.d ../x86/ix86_cpudetect.c: In function `x86Init': ../x86/ix86_cpudetect.c:153: error: PIC register `ebx' clobbered in `asm' ../x86/ix86_cpudetect.c:153: error: PIC register `ebx' clobbered in `asm' ../x86/ix86_cpudetect.c:153: error: PIC register `ebx' clobbered in `asm' ../x86/ix86_cpudetect.c:153: error: PIC register `ebx' clobbered in `asm' make: *** [../x86/ix86_cpudetect.o] Error 1 and the use flg option does not work
(In reply to comment #2) > there is on more after ipciud that need the ebx asm fix > .... > .... Your problem very well might stem from the fact that you are using -O3
(In reply to comment #3) > Your problem very well might stem from the fact that you are using -O3 Getting it too with the following CFLAGS (yea its a bit ricery): -w -mtune=athlon-mp -march=athlon-mp -O2 -pipe -fomit-frame-pointer -momit-leaf- frame-pointer -msse -m3dnow -mfpmath=sse,387 -frename-registers -malign- functions=4 -fweb -ftracer even reducing it to -O0: CFLAGS=".w -O0" emerge games-emulation/ps2emu-gssoft gives the same error (this assumes emerge respects CFLAGS given on command line ?)
Try adding, ironically enough, "-fpic" to your CFLAGS. This will generate PIC code. And also make sure not to do USE -pic this time.
your PIC advice will just confuse people users should not touch USE=pic or -fpic/-fPIC in their CFLAGS/CXXFLAGS, end of story fixed the cpuid PIC issue in cvs