Trying to compile mythtv-0.18.1-r1 or -r2 fails on my amd64 system. I tracked the cause down to the fact that I use -march=athlon64 in my CFLAGS and the configure of mythtv does not recognize the cpu 'athlon64' as x86 or x86_64. Because of this a later check for x86_64 fails and mythtv tries to compile with i386-mmx-asm-optimizations that fail for an x86_64 assembler (see Actual Results) The failing check from configure: if test x"$cpu" != x"x86_64" ; then CONFIG_DEFINES="$CONFIG_DEFINES i386" fi This fails, because $cpu is still "athlon64", because "athlon64" was not changed to "x86" earlier in configure. Adding "athlon64" to the list of x86 cpus in the first lines of configure should fix the error, but I did not test this. (Don't know how to create a correct patch and make the mythtv-ebuild to apply it.) Reproducible: Always Steps to Reproduce: 1.set CFLAGS="-march=athlon64" 2.emerge mythtv Actual Results: gcc -c -pipe -march=athlon64 -pipe -w -O3 -Wall -Wno-switch -fomit-frame-pointer -D_REENTRANT -DPIC -fPIC -DMMX -Di386 -DUSING_IVTV -DUSING_FIREWIRE -DUSING_XRANDR -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I.. -I../.. -I/usr/qt/3/include -o dsputil_mmx.o i386/dsputil_mmx.c {standard input}: Assembler messages: {standard input}:99: Error: suffix or operands invalid for `add' {standard input}:100: Error: suffix or operands invalid for `add' {standard input}:119: Error: suffix or operands invalid for `add' {standard input}:120: Error: suffix or operands invalid for `add' {standard input}:178: Error: suffix or operands invalid for `add' {standard input}:179: Error: suffix or operands invalid for `add' {standard input}:216: Error: suffix or operands invalid for `add' {standard input}:217: Error: suffix or operands invalid for `add' {standard input}:241: Error: `(%rsi,%eax)' is not a valid base/index expression {standard input}:256: Error: suffix or operands invalid for `add' {standard input}:257: Error: suffix or operands invalid for `add' {standard input}:259: Error: `(%rsi,%eax)' is not a valid base/index expression [snip, many many more identical errors] {standard input}:102781: Error: suffix or operands invalid for `add' {standard input}:106566: Error: suffix or operands invalid for `add' {standard input}:106567: Error: suffix or operands invalid for `add' {standard input}:106576: Error: suffix or operands invalid for `add' {standard input}:106577: Error: suffix or operands invalid for `add' make[2]: *** [dsputil_mmx.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/mythtv-0.18.1-r2/work/mythtv-0.18.1/libs/libavcodec' make[1]: *** [sub-libavcodec] Error 2 make[1]: Leaving directory `/var/tmp/portage/mythtv-0.18.1-r2/work/mythtv-0.18.1/libs' make: *** [sub-libs] Error 2 !!! ERROR: media-tv/mythtv-0.18.1-r2 failed. !!! Function src_compile, Line 140, Exitcode 2 !!! emake failed Expected Results: Emerge of MythTV Output of configure if run from ebuild: ./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --i nfodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/v ar/lib --libdir=/usr/lib64 --disable-altivec --enable-audio-oss --enable-audio-a lsa --enable-audio-arts --disable-audio-jack --disable-lirc --disable-joystick-m enu --disable-xvmc-vld --disable-dvb --disable-dvb-eit --dvb-path=/usr/include - -enable-opengl-vsync --enable-vorbis --disable-xvmc --enable-xv --enable-firewir e --disable-directfb --enable-x11 --enable-proc-opt --enable-mmx --compile-type= release --arch=athlon64 --extra-cflags=-pipe --disable-distcc WARNING: include the output of ./configure along with any bug report, when using a processor optimized build. # Basic Settings Compile type release Compiler cache no DistCC no Install prefix /usr CPU unknown (athlon64) Big Endian no Output of configure if run directly: ./configure # Basic Settings Compile type release Compiler cache no DistCC yes Install prefix /usr/local CPU x86_64 (AMD Athlon(tm) 64 Processor 3200+) Big Endian no MMX enabled yes Vector Builtins yes
I had the same errors here, with the minor difference that my CPU is found to be unknown (k8) and not unknown (athlon64) from emerge output: ./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --disable-altivec --enable-audio-oss --enable-audio-alsa --enable-audio-arts --disable-audio-jack --enable-lirc --enable-joystick-menu --disable-xvmc-vld --disable-dvb --disable-dvb-eit --dvb-path=/usr/include --enable-opengl-vsync --enable-vorbis --enable-xvmc --enable-xv --disable-firewire --disable-directfb --enable-x11 --enable-proc-opt --enable-mmx --compile-type=release --arch=k8 --extra-cflags=-pipe --disable-distcc WARNING: include the output of ./configure along with any bug report, when using a processor optimized build. # Basic Settings Compile type release Compiler cache yes, using ccache symlinked gcc DistCC no Install prefix /usr CPU unknown (k8) Big Endian no Manually running ./configure does indeed give: CPU x86_64 (AMD Athlon(tm) 64 Processor 3200+)
Fixed in CVS, thanks for reporting.
could someone please submit this to the mythtv guys, they'd be quite intrested in this fix I'd venture to say.