Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 67832 - mythfrontend-0.16 fails to compile with -O3 flag
Summary: mythfrontend-0.16 fails to compile with -O3 flag
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Television related Applications in Gentoo's Portage
URL:
Whiteboard:
Keywords:
: 74032 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-10-16 18:20 UTC by Keith Landry
Modified: 2004-12-16 22:33 UTC (History)
1 user (show)

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


Attachments
mythfrontend-0.16.ebuild.patch (mythfrontend-0.16.ebuild.patch,290 bytes, patch)
2004-10-16 18:22 UTC, Keith Landry
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Keith Landry 2004-10-16 18:20:08 UTC
Tried various flag combiniations, all failed with the same error if -03 was specified:

gcc -c -pipe -w -O3 -mfpmath=sse,387 -march=pentium4 -ffast-math -fstack-protector-all -fomit-frame-pointer -pipe -DPIC -fPIC -fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -D_REENTRANT  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DMMX -DCONFIG_VIDEO4LINUX -DUSING_IVTV -DUSING_OSS -DUSING_OPENGL_VSYNC -DUSING_XRANDR -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o fft_sse.o i386/fft_sse.c
distcc[6962] ERROR: compile /var/tmp/portage/homedir/.ccache/dsputil_mm.tmp.straylight.6949.i on 192.168.1.5/3 failed
i386/dsputil_mmx.c: In function `h263_h_loop_filter_mmx':
i386/dsputil_mmx.c:634: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
make: *** [dsputil_mmx.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory `/var/tmp/portage/mythfrontend-0.16/work/mythtv-0.16/libs/libavcodec'

!!! ERROR: media-tv/mythfrontend-0.16 failed.
!!! Function src_compile, Line 165, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.

Replacing -O3 flag with -O2 allows build to complete.


Reproducible: Always
Steps to Reproduce:
1.Add -O3 to CFLAGS
2.emerge mythfrontend
3.

Actual Results:  
Build failed

Expected Results:  
Build succeeds

wintermute ~ # emerge info
Portage 2.0.51_rc9 (default-x86-2004.0, gcc-3.4.2, glibc-2.3.4.20041006-r0,
2.6.8-gentoo-r7 i686)
=================================================================
System uname: 2.6.8-gentoo-r7 i686 Intel(R) Pentium(R) 4 CPU 3.06GHz
Gentoo Base System version 1.5.3
distcc 2.18 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.15.92.0.2-r1
Headers:  sys-kernel/linux26-headers-2.6.8.1-r1
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -mfpmath=sse,387 -fstack-protector-all -march=pentium4 -ffast-math
-fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown
/usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control /var/www/localhost/htdocs//mythweb/config"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -mfpmath=sse,387 -fstack-protector-all -march=pentium4 -ffast-math
-fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs buildpkg ccache distcc distlocks prelink sandbox"
GENTOO_MIRRORS="http://adelie.polymtl.ca/ ftp://gentoo.ccccom.com
http://gentoo.ccccom.com http://mymirror.asiaosc.org/gentoo/"
MAKEOPTS="-j7"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl acpi aim alsa apm arts artswrappersuid avi berkdb bitmap-fonts bonobo
cdr crypt cups curl curlwrappers dba divx4linux doc dvd dvdr encode esd ethereal
f77 flac foomaticdb ftp gd gdbm gif gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml
guile iconv icq imlib ipv6 ithreads jabber java joystick jpeg kde libg++ libwww
lirc mad mikmod mmx motif mozilla mpeg mppe-mppc mysql ncurses nls nptlonly odbc
offensive oggvorbis opengl oscar oss pam pcmcia pcre pdflib perl png pnp posix
python qt quicktime readline ruby samba sdl session sessions slang slp snmp
soapspell spl sse sse2 ssl svga sysvipc tcltk tcpd theora threads tidy tiff
transcode truetype usb videos x86 xinerama xml2 xmms xosd xprint xv xvid yahoo zlib"
Comment 1 Keith Landry 2004-10-16 18:22:51 UTC
Created attachment 41994 [details, diff]
mythfrontend-0.16.ebuild.patch

Patch for mythfrontend-0.16.ebuild to replace -O3 with -O2
Comment 2 Doug Goldstein gentoo-dev 2004-10-16 20:42:20 UTC
It worked for me on -O3 on a Pentium4. Try some of your other flags.
Comment 3 Keith Landry 2004-10-17 11:31:00 UTC
Ahh I se now, thanks. 

Are you using GCC 3.4 and/or -march=pentium4?

On my systems (backend compiling mythtv/frontend compiling mythfrontend) it seems to be whenever -O3 is combined with -m(arch/tune)=(pentium4/pentium4m).

Any other pentium arch flag works (pentiumpro, pentium3, etc.) 

I can also reproduce by unpacking the mythtv tarball and:

./configure
qmake mythtv.pro
adding -march=pentium4 to OPTFLAGS in config.mak (it already had -03)
make qmake
make -C libs/libavcodec -j7 


Hope im connecting the followng dots correctly.

Doing some poking aroung on the ffmpeg/mythtv lists it appears to be a gcc bug (
http://sourceforge.net/mailarchive/message.php?msg_id=8724861
http://www.gossamer-threads.com/lists/mythtv/dev/88243?search_string=GENERAL_REGS;#88243

ffmpeg won't change it beacuse it would break compatability with gcc 2.9.5:
http://sourceforge.net/tracker/index.php?func=detail&aid=890586&group_id=16082&atid=116082

And ffmpeg compiles is it doesn't use -fPIC when building:
http://www.gossamer-threads.com/lists/mythtv/dev/78694?search_string=GENERAL_REGS;#78694

I unpacked ffmpeg, ran configure, added -DPIC -fPIC -march=pentium4 (-O3 was already there) to the config.mak file and same exact errors. 

Changing -O3 to -O2 compiled with no errors. Putting -O3 back and removing -march=pentium4 gets no error. 


Comment 4 Doug Goldstein gentoo-dev 2004-12-16 01:35:07 UTC
*** Bug 74032 has been marked as a duplicate of this bug. ***
Comment 5 Doug Goldstein gentoo-dev 2004-12-16 22:33:42 UTC
Fixed in CVS.