libsdl-1.2.9 fails to build on gcc-4.0.1 due to Aliases. As far as I can tell this is a gcc-4.0.0 related Problem. Compiler-Output: i686-pc-linux-gnu-gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"SDL\" -DVERSION=\"1.2.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_LIBASOUND=1 -I. -I. -pipe -O2 -march=athlon-xp -m32 -mtune=athlon-xp -Wall -DENABLE_DUMMYVIDEO -DDISKAUD_SUPPORT -DUSE_DLOPEN -DUSE_ASMBLIT -I./hermes -I../../src/hermes -DOSS_SUPPORT -DALSA_SUPPORT -DALSA_DYNAMIC=libasound.so.2 -DUSE_DLVSYM -DARTSC_SUPPORT -DARTSC_DYNAMIC=libartsc.so.0 -I/usr/kde/3.4/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DENABLE_X11 -DXTHREADS -I./include -I./src/video -DXFREE86_VM -DXFREE86_VMGAMMA -DXFREE86_DGAMOUSE -DDEFAULT_DGAMOUSE -DXFREE86_XV -Isrc/video -DENABLE_DGA -DHAVE_OPENGL -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DHAVE_SIGACTION -DHAVE_LINUX_VERSION_H -I../../include -I../../include/SDL -I../../src -I../../src/main/linux -I../../src/audio -I../../src/video -I../../src/video/XFree86/extensions -I../../src/events -I../../src/joystick -I../../src/cdrom -I../../src/thread -I../../src/timer -I../../src/endian -I../../src/file -I../../src/thread -c SDL_blit_N.c -fPIC -DPIC -o .libs/SDL_blit_N.o ../../src/hermes/HeadMMX.h:53: error: 'ConvertMMX' aliased to undefined symbol '_ConvertMMX' ../../src/hermes/HeadMMX.h:63: error: 'ConvertMMXpII32_24RGB888' aliased to undefined symbol '_ConvertMMXpII32_24RGB888' ../../src/hermes/HeadMMX.h:64: error: 'ConvertMMXpII32_16RGB565' aliased to undefined symbol '_ConvertMMXpII32_16RGB565' ../../src/hermes/HeadMMX.h:65: error: 'ConvertMMXpII32_16BGR565' aliased to undefined symbol '_ConvertMMXpII32_16BGR565' ../../src/hermes/HeadMMX.h:66: error: 'ConvertMMXpII32_16RGB555' aliased to undefined symbol '_ConvertMMXpII32_16RGB555' ../../src/hermes/HeadMMX.h:67: error: 'ConvertMMXpII32_16BGR555' aliased to undefined symbol '_ConvertMMXpII32_16BGR555' ../../src/hermes/HeadX86.h:82: error: 'Hermes_X86_CPU' aliased to undefined symbol '_Hermes_X86_CPU' ../../src/hermes/HeadX86.h:84: error: 'ConvertX86' aliased to undefined symbol '_ConvertX86' ../../src/hermes/HeadX86.h:93: error: 'ConvertX86p32_32BGR888' aliased to undefined symbol '_ConvertX86p32_32BGR888' ../../src/hermes/HeadX86.h:94: error: 'ConvertX86p32_32RGBA888' aliased to undefined symbol '_ConvertX86p32_32RGBA888' ../../src/hermes/HeadX86.h:95: error: 'ConvertX86p32_32BGRA888' aliased to undefined symbol '_ConvertX86p32_32BGRA888' ../../src/hermes/HeadX86.h:96: error: 'ConvertX86p32_24RGB888' aliased to undefined symbol '_ConvertX86p32_24RGB888' ../../src/hermes/HeadX86.h:97: error: 'ConvertX86p32_24BGR888' aliased to undefined symbol '_ConvertX86p32_24BGR888' ../../src/hermes/HeadX86.h:98: error: 'ConvertX86p32_16RGB565' aliased to undefined symbol '_ConvertX86p32_16RGB565' ../../src/hermes/HeadX86.h:99: error: 'ConvertX86p32_16BGR565' aliased to undefined symbol '_ConvertX86p32_16BGR565' ../../src/hermes/HeadX86.h:100: error: 'ConvertX86p32_16RGB555' aliased to undefined symbol '_ConvertX86p32_16RGB555' ../../src/hermes/HeadX86.h:101: error: 'ConvertX86p32_16BGR555' aliased to undefined symbol '_ConvertX86p32_16BGR555' ../../src/hermes/HeadX86.h:102: error: 'ConvertX86p32_8RGB332' aliased to undefined symbol '_ConvertX86p32_8RGB332' ../../src/hermes/HeadX86.h:112: error: 'ConvertX86p16_16BGR565' aliased to undefined symbol '_ConvertX86p16_16BGR565' ../../src/hermes/HeadX86.h:113: error: 'ConvertX86p16_16RGB555' aliased to undefined symbol '_ConvertX86p16_16RGB555' ../../src/hermes/HeadX86.h:114: error: 'ConvertX86p16_16BGR555' aliased to undefined symbol '_ConvertX86p16_16BGR555' ../../src/hermes/HeadX86.h:115: error: 'ConvertX86p16_8RGB332' aliased to undefined symbol '_ConvertX86p16_8RGB332' make[3]: *** [SDL_blit_N.lo] Error 1 Reproducible: Always Steps to Reproduce: 1.Install gcc4 2.Compile libsdl-1.2.9 3.wait for Failure Actual Results: Compiler-Output: i686-pc-linux-gnu-gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"SDL\" -DVERSION=\"1.2.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_LIBASOUND=1 -I. -I. -pipe -O2 -march=athlon-xp -m32 -mtune=athlon-xp -Wall -DENABLE_DUMMYVIDEO -DDISKAUD_SUPPORT -DUSE_DLOPEN -DUSE_ASMBLIT -I./hermes -I../../src/hermes -DOSS_SUPPORT -DALSA_SUPPORT -DALSA_DYNAMIC=libasound.so.2 -DUSE_DLVSYM -DARTSC_SUPPORT -DARTSC_DYNAMIC=libartsc.so.0 -I/usr/kde/3.4/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DENABLE_X11 -DXTHREADS -I./include -I./src/video -DXFREE86_VM -DXFREE86_VMGAMMA -DXFREE86_DGAMOUSE -DDEFAULT_DGAMOUSE -DXFREE86_XV -Isrc/video -DENABLE_DGA -DHAVE_OPENGL -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DHAVE_SIGACTION -DHAVE_LINUX_VERSION_H -I../../include -I../../include/SDL -I../../src -I../../src/main/linux -I../../src/audio -I../../src/video -I../../src/video/XFree86/extensions -I../../src/events -I../../src/joystick -I../../src/cdrom -I../../src/thread -I../../src/timer -I../../src/endian -I../../src/file -I../../src/thread -c SDL_blit_N.c -fPIC -DPIC -o .libs/SDL_blit_N.o ../../src/hermes/HeadMMX.h:53: error: 'ConvertMMX' aliased to undefined symbol '_ConvertMMX' ../../src/hermes/HeadMMX.h:63: error: 'ConvertMMXpII32_24RGB888' aliased to undefined symbol '_ConvertMMXpII32_24RGB888' ../../src/hermes/HeadMMX.h:64: error: 'ConvertMMXpII32_16RGB565' aliased to undefined symbol '_ConvertMMXpII32_16RGB565' ../../src/hermes/HeadMMX.h:65: error: 'ConvertMMXpII32_16BGR565' aliased to undefined symbol '_ConvertMMXpII32_16BGR565' ../../src/hermes/HeadMMX.h:66: error: 'ConvertMMXpII32_16RGB555' aliased to undefined symbol '_ConvertMMXpII32_16RGB555' ../../src/hermes/HeadMMX.h:67: error: 'ConvertMMXpII32_16BGR555' aliased to undefined symbol '_ConvertMMXpII32_16BGR555' ../../src/hermes/HeadX86.h:82: error: 'Hermes_X86_CPU' aliased to undefined symbol '_Hermes_X86_CPU' ../../src/hermes/HeadX86.h:84: error: 'ConvertX86' aliased to undefined symbol '_ConvertX86' ../../src/hermes/HeadX86.h:93: error: 'ConvertX86p32_32BGR888' aliased to undefined symbol '_ConvertX86p32_32BGR888' ../../src/hermes/HeadX86.h:94: error: 'ConvertX86p32_32RGBA888' aliased to undefined symbol '_ConvertX86p32_32RGBA888' ../../src/hermes/HeadX86.h:95: error: 'ConvertX86p32_32BGRA888' aliased to undefined symbol '_ConvertX86p32_32BGRA888' ../../src/hermes/HeadX86.h:96: error: 'ConvertX86p32_24RGB888' aliased to undefined symbol '_ConvertX86p32_24RGB888' ../../src/hermes/HeadX86.h:97: error: 'ConvertX86p32_24BGR888' aliased to undefined symbol '_ConvertX86p32_24BGR888' ../../src/hermes/HeadX86.h:98: error: 'ConvertX86p32_16RGB565' aliased to undefined symbol '_ConvertX86p32_16RGB565' ../../src/hermes/HeadX86.h:99: error: 'ConvertX86p32_16BGR565' aliased to undefined symbol '_ConvertX86p32_16BGR565' ../../src/hermes/HeadX86.h:100: error: 'ConvertX86p32_16RGB555' aliased to undefined symbol '_ConvertX86p32_16RGB555' ../../src/hermes/HeadX86.h:101: error: 'ConvertX86p32_16BGR555' aliased to undefined symbol '_ConvertX86p32_16BGR555' ../../src/hermes/HeadX86.h:102: error: 'ConvertX86p32_8RGB332' aliased to undefined symbol '_ConvertX86p32_8RGB332' ../../src/hermes/HeadX86.h:112: error: 'ConvertX86p16_16BGR565' aliased to undefined symbol '_ConvertX86p16_16BGR565' ../../src/hermes/HeadX86.h:113: error: 'ConvertX86p16_16RGB555' aliased to undefined symbol '_ConvertX86p16_16RGB555' ../../src/hermes/HeadX86.h:114: error: 'ConvertX86p16_16BGR555' aliased to undefined symbol '_ConvertX86p16_16BGR555' ../../src/hermes/HeadX86.h:115: error: 'ConvertX86p16_8RGB332' aliased to undefined symbol '_ConvertX86p16_8RGB332' make[3]: *** [SDL_blit_N.lo] Error 1 Expected Results: Clean Build emerge info: Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-4.0.1, glibc-2.3.5.20050722-r0, 2.6.12-gentoo-r9 i686) ================================================================= System uname: 2.6.12-gentoo-r9 i686 AMD Athlon(tm) XP 2400+ Gentoo Base System version 1.12.0_pre3 dev-lang/python: 2.3.5, 2.4.1-r1 sys-apps/sandbox: 1.2.11 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="-pipe -O2 -march=athlon-xp -fomit-frame-pointer -ftracer -m32 -mmmx -msse -m3dnow -funroll-loops -fpeel-loops -funswitch-loops -fweb -fgcse-after-reload -fmodulo-sched -fgcse-sm -fgcse-las -ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts -mtune=athlon-xp" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-pipe -O2 -march=athlon-xp -fomit-frame-pointer -ftracer -m32 -mmmx -msse -m3dnow -funroll-loops -fpeel-loops -funswitch-loops -fweb -fgcse-after-reload -fmodulo-sched -fgcse-sm -fgcse-las -ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts -mtune=athlon-xp" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://gentoo.osuosl.org/ http://adelie.polymtl.ca/ http://www.las.ic.unicamp.br/pub/gentoo/ http://gentoo.inode.at/ http://gd.tuwien.ac.at/opsys/linux/gentoo/ http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ ftp://ftp.tu-clausthal.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 ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo ftp://ftp6.uni-muenster.de/pub/linux/distributions/gentoo http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.gentoo.mesh-solutions.com/gentoo/ http://pandemonium.tiscali.de/pub/gentoo/ ftp://pandemonium.tiscali.de/pub/gentoo/ ftp://files.gentoo.gr http://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/ http://mirror.gentoo.no/ http://ftp.citkit.ru/pub/Linux/gentoo http://mirror.switch.ch/mirror/gentoo/ ftp://mirror.switch.ch/mirror/gentoo/ ftp://ftp.solnet.ch/mirror/Gentoo http://gentoo.blueyonder.co.uk http://gentoo.gg3.net/ http://ftp.isu.edu.tw/pub/Linux/Gentoo" LINGUAS="de" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowext 3ds X aac alsa apm arts avi berkdb bitmap-fonts cdr crypt cups curl dga dvd eds emboss encode fam foomaticdb fortran gdbm gif glut gpm gstreamer gtk gtk2 icq imagemagick imlib ipv6 joystick jpeg kde libclamav libg++ libwww lm_sensors logitech-mouse mad matroska mikmod mmap mmx mmxext motif mp3 mpeg ncurses nls nptl nvidia offensive ogg oggvorbis openal opengl oss pam pda pdflib perl png python qt quicktime readline samba sdl slang spell sse ssl tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts usb vorbis xine xml xml2 xmms xv zlib linguas_de userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS
Aye carumba! Are you absolutely sure you've got enough CFLAGS in there? How about adding -O3 and -ffastmath in there for good measure...? Seriously, the root of your problems here, is the insane CFLAGS you have set. Just because a certain flag is recognised by GCC, doesn't mean it's necessarily a good idea to go playing with it, unless you're familiar with what it does, and what the consequences are. Likely, due to the abuse of these flags, your system is most likely messed up beyond all repair. (FUBAR, as some of my mates would call it... I'll leave it to others to derive the definition of that acronym) Might I suggest, trimming back on the CFLAGS (e.g. I'd recommend "-O2 -pipe -march=athlon-xp" and leave it at that) and see how that goes. You may also need to rebuild glibc and other components of your system -- so it may be easier to reformat and reload. The performance gained by CFLAGS on x86 is minimal at best -- largely because the machines are still basically overclocked 386's at their core. RISC architectures (e.g. MIPS) can benefit by compiling to a particular ISA and CPU, (e.g. throwing in -mips4 on an SGI O2 will get it humming nicely) however, going beyond that only causes major headaches. In short though, the only thing gained by lots of CFLAGS is
Aye carumba! Are you absolutely sure you've got enough CFLAGS in there? How about adding -O3 and -ffastmath in there for good measure...? Seriously, the root of your problems here, is the insane CFLAGS you have set. Just because a certain flag is recognised by GCC, doesn't mean it's necessarily a good idea to go playing with it, unless you're familiar with what it does, and what the consequences are. Likely, due to the abuse of these flags, your system is most likely messed up beyond all repair. (FUBAR, as some of my mates would call it... I'll leave it to others to derive the definition of that acronym) Might I suggest, trimming back on the CFLAGS (e.g. I'd recommend "-O2 -pipe -march=athlon-xp" and leave it at that) and see how that goes. You may also need to rebuild glibc and other components of your system -- so it may be easier to reformat and reload. The performance gained by CFLAGS on x86 is minimal at best -- largely because the machines are still basically overclocked 386's at their core. RISC architectures (e.g. MIPS) can benefit by compiling to a particular ISA and CPU, (e.g. throwing in -mips4 on an SGI O2 will get it humming nicely) however, going beyond that only causes major headaches. In short though, the only thing gained by lots of CFLAGS is über instability, horrendous compile errors, and next to no speed gain.Aye carumba! Are you absolutely sure you've got enough CFLAGS in there? How about adding -O3 and -ffastmath in there for good measure...? Seriously, the root of your problems here, is the insane CFLAGS you have set. Just because a certain flag is recognised by GCC, doesn't mean it's necessarily a good idea to go playing with it, unless you're familiar with what it does, and what the consequences are. Likely, due to the abuse of these flags, your system is most likely messed up beyond all repair. (FUBAR, as some of my mates would call it... I'll leave it to others to derive the definition of that acronym) Might I suggest, trimming back on the CFLAGS (e.g. I'd recommend "-O2 -pipe -march=athlon-xp" and leave it at that) and see how that goes. You may also need to rebuild glibc and other components of your system -- so it may be easier to reformat and reload. The performance gained by CFLAGS on x86 is minimal at best -- largely because the machines are still basically overclocked 386's at their core. RISC architectures (e.g. MIPS) can benefit by compiling to a particular ISA and CPU, (e.g. throwing in -mips4 on an SGI O2 will get it humming nicely) however, going beyond that only causes major headaches. In short though, the only thing gained by lots of CFLAGS is über instability, horrendous compile errors, and next to no speed gain. *** This bug has been marked as a duplicate of 74072 ***
Totally agree with Stuart, however this is not a dup of 74072, which was actually caused by ricer CFLAGS. This one was not caused by ricer CFLAGS, as I experience the same problem with sane CFLAGS. (Note to user, please dont use this as an excuse to continue using those insane CFLAGS, though). Gentoo Base System version 1.6.13 Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-4.0.1, glibc-2.3.5.20050722-r0, 2.6.12.5 i686) ================================================================= System uname: 2.6.12.5 i686 mobile AMD Athlon(tm) XP2500+ distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.4 [enabled] dev-lang/python: 2.3.4-r1, 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, 2.16.90.0.3, 2.16.91.0.1, 2.16.91.0.2, 2.16.91.0.3 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" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -pipe" DISTDIR="/usr/local/distfiles" FEATURES="autoaddcvs autoconfig ccache collision-protect cvs digest distcc distlocks sandbox sfperms sign strict" GENTOO_MIRRORS="http://zeus/gentoo/ ftp://gentoo.chem.wisc.edu/gentoo/" LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" MAKEOPTS="-j6" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/buildroot" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/home/ka0ttic/overlay" SYNC="rsync://zeus/gentoo-portage" USE="x86 3dnow X acpi aim alsa apache2 bash-completion berkdb bzip2 cdr crypt cscope dvd esd fam fbcon gdbm gif gnome gnutls gtk gtk2 imap imlib jpeg maildir mikmod mmx ncurses nls nptl offensive opengl oss pam pcre pdflib perl png python readline ruby sdl slang sse ssl svga truetype unicode usb xml2 xmms xosd zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LDFLAGS, LINGUAS
(In reply to comment #2) > distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] > MAKEOPTS="-j6" Forgot to add: it is not due to the above either.
May I suggest reading the Compiler-Output first ? As one can see, the ebuild this particular source-file has filtered most of the CFLAGS, so they can't be responsible. Further the Kind of Error can't be because of Set CFLAGS, because the aliased symbols are in this Form not supported anymore by gcc4. Anyway applying 1.2.8-gcc4.patch solves the Issue with the Aliasing problems It now bails out with a not found register: i686-pc-linux-gnu-gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"SDL\" -DVERSION=\"1.2.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_LIBASOUND=1 -I. -I. -pipe -O2 -march=athlon-xp -m32 -mtune=athlon-xp -Wall -DENABLE_DUMMYVIDEO -DDISKAUD_SUPPORT -DUSE_DLOPEN -DUSE_ASMBLIT -I./hermes -I../../src/hermes -DOSS_SUPPORT -DALSA_SUPPORT -DALSA_DYNAMIC=libasound.so.2 -DUSE_DLVSYM -DARTSC_SUPPORT -DARTSC_DYNAMIC=libartsc.so.0 -I/usr/kde/3.4/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DENABLE_X11 -DXTHREADS -I./include -I./src/video -DXFREE86_VM -DXFREE86_VMGAMMA -DXFREE86_DGAMOUSE -DDEFAULT_DGAMOUSE -DXFREE86_XV -Isrc/video -DENABLE_DGA -DHAVE_OPENGL -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DHAVE_SIGACTION -DHAVE_LINUX_VERSION_H -I../../include -I../../include/SDL -I../../src -I../../src/main/linux -I../../src/audio -I../../src/video -I../../src/video/XFree86/extensions -I../../src/events -I../../src/joystick -I../../src/cdrom -I../../src/thread -I../../src/timer -I../../src/endian -I../../src/file -I../../src/thread -c SDL_yuv_sw.c -fPIC -DPIC -o .libs/SDL_yuv_sw.o SDL_yuv_mmx.c: In function 'ColorRGBDitherYV12MMX1X': SDL_yuv_mmx.c:113: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' make[3]: *** [SDL_yuv_mmx.lo] Error 1
i punted the gcc4 patch without checking it because it *should* have been sent upstream
recompiling with -O1(nothing else ) leads to the same error recompiling with -O0 leads to a clean compile
hmmm... strange, I recompiled successfully again with: CFLAGS="-pipe -O0 -fdefer-pop -fdelayed-branch -fguess-branch-probability -fcprop-registers -floop-optimize -fif-conversion -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename -ftree-fre -ftree-ch -fmerge-constants -fomit-frame-pointer" which are supposed to be the features of -O1 that are controllable by switches
(In reply to comment #7) > hmmm... strange, I recompiled successfully again with: > CFLAGS="-pipe -O0 -fdefer-pop -fdelayed-branch -fguess-branch-probability > -fcprop-registers -floop-optimize -fif-conversion -fif-conversion2 -ftree-ccp > -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra > -ftree-copyrename -ftree-fre -ftree-ch -fmerge-constants -fomit-frame-pointer" > > which are supposed to be the features of -O1 that are controllable by switches You are getting weird results because your system is screwed up, as Stuart already explained. I get the same results regardless of CFLAGS.
It should compile successfully with -O0 in your CFLAGS. This is due to the GCC2 MMX fix being added finally to libsdl. I had conditionally removed it for GCC4 last time, seeing as this is most likely a GCC4 bug. I'll try testing with a gcc-4.0.2 snapshot in the near future and see if I can still reproduce the error, or if someone else could give it a shot, that works too.
(In reply to comment #8) > You are getting weird results because your system is screwed up, as Stuart > already explained. Same behaviour here as the comment you replied to described. Besides, gcc gets built with stripped CFLAGS too, so it'd be strange for that to be responsible. (In reply to comment #9) > It should compile successfully with -O0 in your CFLAGS. This is due to the GCC2 > MMX fix being added finally to libsdl. I had conditionally removed it for GCC4 > last time, seeing as this is most likely a GCC4 bug. I'll try testing with a > gcc-4.0.2 snapshot in the near future and see if I can still reproduce the > error, or if someone else could give it a shot, that works too. Using 4.0-20050818 (as well as 4.1-20050826, if you care) I get the error too.
(In reply to comment #10) > Using 4.0-20050818 (as well as 4.1-20050826, if you care) I get the error too. Which error? Before or after adding the gcc4 patch back in?
(In reply to comment #11) > Which error? Before or after adding the gcc4 patch back in? The SDL_yuv_mmx.c assembly error; that's after adding the patch for Head{X86,MMX}.h.
added gcc4 patch back to libsdl ebuild since it's been sent upstream
*** Bug 105547 has been marked as a duplicate of this bug. ***
While the original bug was indeed fixed by re-adding the gcc4 patch, the failure mentioned in comment #4 and comment #12 still occurs. As bugs filed for this failure are being marked as a dup of this bug, I am reopening.
Created attachment 69052 [details, diff] SDL_yuv_mmx.patch Fix, works with gcc 2.95.3, 3.3.6, 3.4.4-r1 and 4.0.2-pre20050917.
(In reply to comment #16) > Created an attachment (id=69052) [edit] > SDL_yuv_mmx.patch > > Fix, works with gcc 2.95.3, 3.3.6, 3.4.4-r1 and 4.0.2-pre20050917. Verified working here with 4.0.2-pre20050917.
before any patch is added, it has to be verified to work on gcc-2.95.3, gcc-3.[34], and gcc-4
sorry, i cant read Ryan: what do you think ?
This patch fixes my build
Someone reported this on the SDL mailing list the other day, too, so it's apparently broken, again. I applied the patch in Comment #16, which compiles here with gcc 2.95.3 and 3.3.4, and someone else claims it's working for gcc4...plus it's just generally cleaner, so into CVS it goes. --ryan.
fixed in 1.2.9-r1, thanks all