When trying an emerge -uD xine-lib I get a compile-time error. The problem is somewhere in the assembler code. X86 assembler is just not my bag... Another thing: The only included header files in zoom_filter_xmmx.c is goom_config.h and xineutils.h, none of them mentions the missing prototypes: zoom_filter_xmmx_supported and zoom_filter_xmmx. That's just ugly. AND the comments! They are in french! uh! I suppose this is something we got from upstream? Or do gentoo-devs do such things? Reproducible: Always Steps to Reproduce: 1. Just try to emerge the xine-lib-1_rc1 ebuild 2. 3. Actual Results: Output from gcc: gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../.. -I../../../include -I../../../include -I../../../src -I../../../src/xine-engine -I../../../src/ xine-engine -I../../../src/xine-utils -Wall -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -Wpointer-arith -Wnested-externs -Wcast-align -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -march=pentium4 -O3 -pipe -I/usr/ kde/3.1/include/artsc -c zoom_filter_xmmx.c -MT zoom_filter_xmmx.lo -MD -MP -MF .deps/zoom_filter_xmmx.TPlo -o .libs/zoom_filter_xmmx.o distcc[16385] ERROR: compile on localhost failed zoom_filter_xmmx.c:23: warning: no previous prototype for `zoom_filter_xmmx_supported' zoom_filter_xmmx.c:31: warning: no previous prototype for `zoom_filter_xmmx' zoom_filter_xmmx.c: In function `zoom_filter_xmmx': zoom_filter_xmmx.c:40: warning: unused variable `interpix' {standard input}: Assembler messages: {standard input}:73: Error: suffix or operands invalid for `add' distcc[16381] ERROR: compile on localhost failed make[4]: *** [zoom_filter_xmmx.lo] Error 1 make[4]: Leaving directory `/var/tmp/portage/xine-lib-1_rc1/work/ xine-lib-1-rc1/src/post/goom' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/xine-lib-1_rc1/work/ xine-lib-1-rc1/src/post' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/xine-lib-1_rc1/work/ xine-lib-1-rc1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/xine-lib-1_rc1/work/ xine-lib-1-rc1' make: *** [all] Error 2 !!! ERROR: media-libs/xine-lib-1_rc1 failed. !!! Function src_compile, Line 108, Exitcode 2 !!! Parallel make failed Expected Results: Nice clean compile without errors... I use distcc in my make.conf, but right now the only configured distcc host is my localhost. MAKEOPTS="-j2"
please provide #emerge info
Created attachment 19169 [details] Output from emerge info
play with your CFLAGS ... try it with march=pentium3 instead of pentium4 ... if that doesnt work, try it with just -pipe
Same at my my side, decreasing CFLAGS (which worked for other xine-lib before) will help!
Setting CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer" did the trick. So there are still glitches in the gcc regarding pentium4 code generation... or?
I also had the issue. I can confirm that changing the CFLAGS from march=pentium4 to march=pentium3 will fix it.
This isn't explicitely caused by -march=pentium4, but is caused by the fact that -march=pentium4 implies -msse2 - this can be demonstrated by changing your CFLAGS to '-march=pentium3 -msse2 ...'. A better fix is to leave the -march=pentium4 in there, and add "-mno-sse2" to your CFLAGS - this will also fix the problem, without sacrificing other gcc pentium4 compiling tweaks.
so the solution here is: inherit gcc flag-o-matic [ "`gcc-fullversion`" == "3.3.1" ] && [ `is-flag -msse2` -o `is-flag -march=pentium4` ] && append-flags -mno-sse2
fixed in cvs