Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 94664 - enabling user CFLAGS for mythtv-0.18.1-r1 fails on amd64
Summary: enabling user CFLAGS for mythtv-0.18.1-r1 fails on amd64
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: AMD64 Project
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2005-05-31 12:58 UTC by Torsten Kaiser
Modified: 2005-08-01 14:32 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Torsten Kaiser 2005-05-31 12:58:09 UTC
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
Comment 1 Rutger Hendriks 2005-06-01 02:03:58 UTC
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+)
Comment 2 Herbie Hopkins (RETIRED) gentoo-dev 2005-06-01 04:31:04 UTC
Fixed in CVS, thanks for reporting.
Comment 3 Rob Smith 2005-08-01 14:32:59 UTC
could someone please submit this to the mythtv guys, they'd be quite intrested
in this fix I'd venture to say.