Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 279944 - media-tv/mythtv-0.22 & x86 PIC issues
Summary: media-tv/mythtv-0.22 & x86 PIC issues
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: MythTV Maintainers
URL:
Whiteboard:
Keywords:
: 291537 293316 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-08-01 18:23 UTC by Robert Lippmann
Modified: 2009-11-19 15:15 UTC (History)
28 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 Robert Lippmann 2009-08-01 18:23:47 UTC
Even after fixing the ./configure problem (bug 278655), compilation error occurs in the libavcodec portion of mythtv build.

Reproducible: Always

Steps to Reproduce:
1. emerge the package
2. fix the ebuild according to bug287655
3. re-run

Actual Results:  
emerge failed during compile.

Expected Results:  
Should have compiled.

Here's the part where it failed:

gcc -c -pipe -march=pentium4 -fomit-frame-pointer -O3 -DNDEBUG -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -g -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wundef -fno-math-errno -w -D_REENTRANT -DPIC -fPIC -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -I/usr/share/qt4/mkspecs/linux-g++ -I. -I.. -I../.. -I. -o h264.o h264.c
cabac.h: In function 'get_cabac_noinline':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_cabac_residual_nondc':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:97: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:44: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_cabac_residual_dc':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:97: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:44: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_cabac_mb_mvd':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_mb_cabac':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
make[2]: *** [h264.o] Error 1
make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_alpha20959/work/trunk/mythtv/libs/libavcodec'
make[1]: *** [sub-libavcodec-make_default] Error 2
make[1]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_alpha20959/work/trunk/mythtv/libs'
make: *** [sub-libs-make_default-ordered] Error 2

emerge --info:

Portage 2.1.6.13 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.9_p20081201-r2, 2.6.27-gentoo-r8 i686)
=================================================================
System uname: Linux-2.6.27-gentoo-r8-i686-Intel-R-_Pentium-R-_4_CPU_2.66GHz-with-glibc2.0
Timestamp of tree: Sat, 01 Aug 2009 07:00:01 +0000
distcc 3.1 i686-pc-linux-gnu [disabled]
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.8-r1
dev-lang/python:     2.4.6, 2.5.4-r3
dev-python/pycrypto: 2.0.1-r8
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.4
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -msse2 -mfpmath=sse -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -msse2 -mfpmath=sse -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo http://mirrors.acm.cs.rpi.edu/gentoo/ http://open-systems.ufl.edu/mirrors/gentoo"
LDFLAGS="-Wl,-O1"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/pro-audio /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X Xaw3d a52 aac acl acpi alsa apache2 apm asf audiofile avahi berkdb bluetooth branding bzip2 cairo cdda cdio cdparanoia cdr clamav cli cracklib crypt cups curl dbus dga dpms dri dssi dts dvb dvd dvdread encode esd evo exif fam fat ffmpeg fftw firefox flac fuse gdbm gif gimp glib gmp gphoto2 gpm gstreamer gtk2 hal hfs i8x0 iconv imagemagick imap innodb ipod isdnlog ivtv jack java jpeg jpeg2k json kde lash lcms libclamav libnotify lirc live lm_sensors logrotate mad maildir midi mikmod mmx mmxext mng mp3 mpeg mplayer msn mudflap musicbrainz mysql mythtv nas ncurses nls nptl nptlonly nsplugin ntfs ogg opengl openmp oracle pam parport pcre pdf perl pic png ppds pppd python qt3 qt3support qt4 quicktime readline reflection rtc samba scanner sdl session sndfile sound spell spl sqlite sqlite3 sse sse2 ssl startup-notification svg svga sysfs tcpd tetex theora threads tiff transcode truetype unicode usb v4l v4l2 visualization vorbis vst win32codecs wxwindows x86 xfs xine xinerama xml xml2 xorg xosd xscreensaver xulrunner xv xvid xvmc yahoo zeroconf zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="hauppauge" USERLAND="GNU" VIDEO_CARDS="intel i810 i830 i915 vesa fbdev v4l"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


This appears to be bug 179872 rearing it's ugly head in the included ffmpeg source.

Workaround for that was to either -DBROKEN_RELOCATIONS or (as the ffmpeg ebuild does) just shut off MMX with --disable-mmx.  I don't recall offhand if the actual mythtv source even uses MMX.
Comment 1 Doug Goldstein (RETIRED) gentoo-dev 2009-08-03 01:22:47 UTC
I've heard the issue can actually be worked around by gcc 4.3.x series compilers. If you've got one of those installed (they're x86 stable now as well), you can try giving it a whirl on there.

stable x86 + super experimental not even considered stable enough for ~x86 packages can have odd interactions.
Comment 2 Jon Nield 2009-08-04 20:31:37 UTC
I've tried building this with gcc 4.3.3 and get the same results.  I even tried creating a modified ebuild to disable mmx (it seems mythtv doesn't like building with USE="-mmx") and I still get the same clobbering error.

Building with -DBROKEN_RELOCATIONS and mmx enabled gives me the following error:

x86/mlpdsp.c: In function 'mlp_filter_channel_x86':
x86/mlpdsp.c:123: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
x86/mlpdsp.c:123: error: 'asm' operand has impossible constraints
make[2]: *** [mlpdsp_inc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_alpha20959/work/trunk/mythtv/libs/libavcodec'
make[1]: *** [sub-libavcodec-make_default] Error 2
make[1]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_alpha20959/work/trunk/mythtv/libs'
make: *** [sub-libs-make_default-ordered] Error 2

Maybe there's something else I've missed?
Comment 3 Ajay Sharma 2009-10-21 06:29:49 UTC
I got the same error.  Maybe it's time to update myth to the release candidate and close this ticket?
Comment 4 floppe 2009-10-22 05:14:56 UTC
(In reply to comment #3)
> I got the same error.  Maybe it's time to update myth to the release candidate
> and close this ticket?
> 

I don't have the patience to wait for the 0.22 rc1 ebuild to show up. MythTV has probably gone 0.22 final before something happens here.

So, my question is: how can we modify this ebuild so -fPIC and -DPIC flags are removed?
Comment 5 Jon Nield 2009-10-22 11:06:50 UTC
If its helps, I've just renamed the current 0.22 alpha ebuild to mythtv-0.22_pre22453.ebuild in my own overlay and it builds without errors (22453 being the tagged revision for rc1). Not had chance to test it yet as I'm at work, so it may not actually run.
Comment 6 floppe 2009-10-22 11:25:04 UTC
(In reply to comment #5)
> If its helps, I've just renamed the current 0.22 alpha ebuild to
> mythtv-0.22_pre22453.ebuild in my own overlay and it builds without errors
> (22453 being the tagged revision for rc1). Not had chance to test it yet as I'm
> at work, so it may not actually run.
> 

Okej. That did not work for me, maybe it's a ARCH issue? Because I got the same errors as this bugs description says. Got same error on a fresh Gentoo install too on another machine (both has 32bit Gentoo).

emerge --info
Portage 2.1.6.13 (default/linux/x86/10.0, gcc-4.1.2, glibc-2.9_p20081201-r2, 2.6.30-be-amd-r5 i686)
=================================================================
System uname: Linux-2.6.30-be-amd-r5-i686-AMD_Athlon-tm-_Processor_LE-1600-with-gentoo-1.12.11.1
Timestamp of tree: Thu, 22 Oct 2009 04:20:01 +0000
ccache version 2.4 [disabled]
app-shells/bash:     4.0_p28
dev-lang/python:     2.6.2-r1
dev-python/pycrypto: 2.0.1-r8
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.63-r1
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i486-pc-linux-gnu"
CFLAGS="-O2 -mtune=i686 -pipe"
CHOST="i486-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -mtune=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://trumpetti.atm.tut.fi/gentoo/"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="ac52 acl alsa apache2 berkdb bzip2 cli cracklib crypt css cups dri dts dvb dvd dvdread gd gdbm gpm iconv imq ipv6 isdnlog jpeg lirc mmx modules mudflap mysql ncurses nls nptl nptlonly ogg opengl openmp oss pam pcre perl png pppd python qt qt3support readline reflection session spl sse sse2 ssl sysfs tcpd transcode unicode vorbis x86 xorg zlib" ALSA_CARDS="hda-intel intel8x0 intel8x0m atiixp" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="imon" LIRC_DEVICES="serial" USERLAND="GNU" VIDEO_CARDS="nv"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS




Comment 7 Jon Nield 2009-10-22 12:38:48 UTC
Ahhh I have a 64bit system here.  I'm going to try building it on my home system too, which has a more stable setup that my work laptop but is again 64bit.  For reference, my emerge info:

emerge --info
Portage 2.2_rc46 (default/linux/amd64/2008.0, gcc-4.4.2, glibc-2.10.1-r0, 2.6.31-gentoo x86_64)
=================================================================
System uname: Linux-2.6.31-gentoo-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T7250_@_2.00GHz-with-gentoo-2.0.1
Timestamp of tree: Thu, 22 Oct 2009 07:45:02 +0000
app-shells/bash:     4.0_p33
dev-java/java-config: 2.1.9-r1
dev-lang/python:     2.6.3, 3.1.1-r1
dev-python/pycrypto: 2.0.1-r8
dev-util/cmake:      2.6.4-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.5.2-r1
sys-apps/sandbox:    2.1
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.19.1-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O3 -march=core2 -pipe -fomit-frame-pointer -mfpmath=sse,387 -mmmx -msse -msse2 -msse3 -mssse3"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O3 -march=core2 -pipe -fomit-frame-pointer -mfpmath=sse,387 -mmmx -msse -msse2 -msse3 -mssse3"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ http://mirror.bytemark.co.uk/gentoo/ "
LANG="en_GB.UTF-8"
LC_ALL="en_GB.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en_GB en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/enlightenment /usr/local/portage/layman/sectools /usr/local/portage/testing"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 applet asyncns audioscrobbler autoipd avahi bash-completion bluetooth bzip2 cairo cdda cddax cddb cdparanoia cdr cli consolekit cracklib crypt cups dbus dell dhcp disk-partition dri dvd dvdnav encode equalizer exif fbcondecor ffmpeg fftw firefox flac fuse gdbm gif glitz gpm gps gtk hal hpn iconv imlib inotify ioctl ipv6 isdnlog ithreads jpeg jpeg2k laptop lastfmradio libnotify libsamplerate mad matroska mmap mmkeys mmx modules mp3 mplayer mudflap multilib musicbrainz nano-syntax ncurses nls nptl nptlonly nsplugin ntp offensive ogg opengl openmp pam pcre pdf perl png ppds pppd python qt3support quicktime readline reflection sdl session smp spl sse sse2 sse3 ssl ssse3 startup-notification svg sysfs theora threads tiff trayicon truetype unicode upnp usb visualization vorbis wifi x264 xcb xcomposite xorg xscreensaver xv xvid xvmc zeroconf zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" FOO2ZJS_DEVICES="hp2600n" INPUT_DEVICES="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en" USERLAND="GNU" VIDEO_CARDS="intel" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 8 Jon Nield 2009-10-24 09:33:43 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > If its helps, I've just renamed the current 0.22 alpha ebuild to
> > mythtv-0.22_pre22453.ebuild in my own overlay and it builds without errors
> > (22453 being the tagged revision for rc1). Not had chance to test it yet as I'm
> > at work, so it may not actually run.
> > 
> 
> Okej. That did not work for me, maybe it's a ARCH issue? Because I got the same
> errors as this bugs description says. Got same error on a fresh Gentoo install
> too on another machine (both has 32bit Gentoo).
> 
> emerge --info
> Portage 2.1.6.13 (default/linux/x86/10.0, gcc-4.1.2, glibc-2.9_p20081201-r2,
> 2.6.30-be-amd-r5 i686)

Okay, it compiled without errors on my home 64bit system.  Doug mentioned that the gcc 4.3.x may be able to work around the problem.  I currently use gcc 4.4.x and it compiles fine with that.  I've also tried gcc 4.3.3 again, previously it failed with the alpha version, but now it works.  Any other information that I can help with that may be useful?
Comment 9 Michael Andersen 2009-10-24 21:24:48 UTC
Just thought I'd give my two cents here:

I had the same error about PIC clobbering, when compiling on my x86 machine. Used a lot of time figuring it out also.

I am now using the SVN trunk ebuilds from http://wiki.github.com/MarcT/mt-mythtv through layman, and this solved the problem for me.

I haven't looked into the differences between the to ebuild set - I'll leave that to someone else. :P

Comment 10 Ivan Grynko 2009-10-25 13:34:12 UTC
Same problem here: gcc-4.4.2, -march=core2 x86
gcc -c -pipe -march=core2 -fomit-frame-pointer -O3 -DNDEBUG -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -g -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -fno-math-errno -fno-signed-zeros -w -D_REENTRANT -DPIC -fPIC -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -I/usr/share/qt4/mkspecs/linux-g++ -I. -I.. -I../.. -o vc1dsp_mmx.o x86/vc1dsp_mmx.c                
x86/flacdsp_mmx.c: В функции ‘ff_flac_compute_autocorr_sse2’:                                                  
x86/flacdsp_mmx.c:87: ошибка: не найден регистр класса ‘GENERAL_REGS’ для загрузки операндов ‘asm’             
x86/flacdsp_mmx.c:87: ошибка: ‘asm’ operand has impossible constraints                                         
x86/flacdsp_mmx.c:116: ошибка: ‘asm’ operand has impossible constraints                                        
make[2]: *** [flacdsp_mmx.o] Ошибка 1                                                                          
make[2]: *** Ожидание завершения заданий...                                                                    
make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_rc22588/work/branches/release-0-22-fixes/mythtv/libs/libavcodec'
make[1]: *** [sub-libavcodec-make_default] Ошибка 2
make[1]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_rc22588/work/branches/release-0-22-fixes/mythtv/libs'
Comment 11 Ajay Sharma 2009-10-27 00:42:33 UTC
I don't want to add a "me too" but I noticed the release candidate was now in portage so I tried to build mythtv-0.22_rc22588 and got the same error:

gcc -c -pipe -march=athlon-xp -fomit-frame-pointer -O3 -DNDEBUG -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -g -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wundef -fno-math-errno -w -D_REENTRANT -DPIC -fPIC -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -I/usr/share/qt4/mkspecs/linux-g++ -I. -I.. -I../.. -o h264.o h264.c
cabac.h: In function 'get_cabac_noinline':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_cabac_residual_nondc':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:97: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:44: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_cabac_residual_dc':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:97: error: PIC register '%ebx' clobbered in 'asm'
x86/h264_i386.h:44: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_cabac_mb_mvd':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h: In function 'decode_mb_cabac':
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
cabac.h:527: error: PIC register '%ebx' clobbered in 'asm'
make[2]: *** [h264.o] Error 1
make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_rc22588/work/branches/release-0-22-fixes/mythtv/libs/libavcodec'
make[1]: *** [sub-libavcodec-make_default] Error 2

I was able to checkout mythtv directly from the release-0.22-fixes branch and that built just fine.  And here's my info FYI:

myth mythtv # emerge --info
Portage 2.1.6.13 (default/linux/x86/10.0, gcc-4.1.2, glibc-2.9_p20081201-r2, 2.6.30.5 i686)
=================================================================
System uname: Linux-2.6.30.5-i686-AMD_Athlon-tm-_XP_2100+-with-gentoo-1.12.11.1
Timestamp of tree: Mon, 26 Oct 2009 22:00:01 +0000
app-shells/bash:     4.0_p28
dev-java/java-config: 2.1.9-r1
dev-lang/python:     2.4.4-r13, 2.5.4-r3, 2.6.2-r1
dev-python/pycrypto: 2.0.1-r6
dev-util/cmake:      2.6.4
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-O1"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/opt/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow aac acl alsa apache2 berkdb bzip2 cli cracklib crypt curl dbus divx4linux dri dv dvd encode fortran gd gdbm gpm iconv innodb ipv6 isdnlog ivtv joystick jpeg kde lirc mjpeg mmx modules mudflap mysql mythtv ncurses nls nptl nptlonly nvidia opengl openmp oss pam pcre perl pppd python qt3support readline reflection session spl sse ssl svg sysfs tcpd threads transcode unicode v4l2 x86 xml xorg xvid xvmc zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="prefork" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="hauppauge iguanaIR" USERLAND="GNU" VIDEO_CARDS="nvidia nv"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 12 Jon Nield 2009-10-27 09:16:18 UTC
I think this sums up the problem nicely: http://svn.mythtv.org/trac/ticket/6859 which is pretty much what Floppe said.

Anyone care to take a go at creating a modified ebuild that disables PIC for x86_32?  I might try later, but I'm a bit short on time for the next few days.
Comment 13 Doug Goldstein (RETIRED) gentoo-dev 2009-10-27 15:14:34 UTC
I'm sure its still an issue with the post rc1 ebuild that's in the tree. I'll get to it in the next bump of the ebuild.
Comment 14 jcat 2009-11-01 23:53:34 UTC
This is failing for me as with a similar:
cabac.h:527: error: PIC register ‘%ebx’ clobbered in ‘asm’

Can we get a patch to disable PIC on x86?


emerge --info:
Portage 2.2_rc46 (default/linux/x86/10.0, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.31-gentoo-r4 i686)
=================================================================
System uname: Linux-2.6.31-gentoo-r4-i686-Intel-R-_Core-TM-2_Quad_CPU_Q8200_@_2.33GHz-with-gentoo-1.12.11.1
Timestamp of tree: Sun, 01 Nov 2009 18:00:01 +0000
app-shells/bash:     4.0_p28
dev-lang/python:     2.5.4-r3, 2.6.2-r1
dev-util/cmake:      2.6.4
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.63-r1
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_GB.UTF-8"
LC_ALL="en_GB.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en_GB en"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/sunrise"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aac acl acpi alsa berkdb bzip2 cli cracklib crypt cups dbus dri dvb dvd ffmpeg flac fortran gdbm gif gpm hal iconv jpeg lame lirc logrotate mmx modules mudflap mythtv ncurses nls nptl nptlonly ogg opengl openmp pam pcre perl png pppd python readline reflection session spl sse sse2 ssl ssse3 svg sysfs tcpd tiff truetype unicode vdpau wavpack x86 xorg xv xvid xvmc zlib" ALSA_CARDS="hda-intel usb-audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" DVB_CARDS="usb-a800 usb-dib0700" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev void" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en" LIRC_DEVICES="devinput" USERLAND="GNU" VIDEO_CARDS="intel nv nvidia vesa" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS



Cheers,
jcat
Comment 15 Doug Goldstein (RETIRED) gentoo-dev 2009-11-03 15:15:02 UTC
*** Bug 291537 has been marked as a duplicate of this bug. ***
Comment 16 Douglas Mayle 2009-11-06 17:00:54 UTC
To disable PIC in ebuild, edit the src_compile function and add the following just after the line that starts with "use vdpau"

    use mmx || myconf="${myconf} --enable-disable-mmx-for-debugging"
    use mmx && myconf="${myconf} --extra-cflags=\"-fno-pic\""
Comment 17 Jesse Adelman 2009-11-06 22:25:41 UTC
(In reply to comment #16)
> To disable PIC in ebuild, edit the src_compile function and add the following
> just after the line that starts with "use vdpau"
> 
>     use mmx || myconf="${myconf} --enable-disable-mmx-for-debugging"
>     use mmx && myconf="${myconf} --extra-cflags=\"-fno-pic\""
> 

Er, do you mean src_configure function, rather?
Comment 18 Douglas Mayle 2009-11-06 23:49:19 UTC
That's what I said ;-)

Further investigation, though, shows that while this gets you farther, it still dies out.

I'm working through this with MythTV devs.  In my build, if I stop stripping CFLAGS, ( commenting out CFLAGS="") things start working again.  It seems that the architecture that Myth guesses is wrong...
Comment 19 Doug Goldstein (RETIRED) gentoo-dev 2009-11-08 01:43:25 UTC
Can someone attach the ./configure line that the ebuild is generating when you attempt to emerge this?
Comment 20 BT 2009-11-08 07:28:27 UTC
(In reply to comment #19)
> Can someone attach the ./configure line that the ebuild is generating when you
> attempt to emerge this?

You find my entire build log in #291537
Comment 21 Scott Admiraal 2009-11-08 23:52:27 UTC
I am having this problem with this config line from the ebuild

 * Running ./configure --prefix=/usr
 * 		--mandir=/usr/share/man
 * 		--libdir-name=lib --disable-altivec --enable-libfftw3 --disable-audio-jack --enable-xvmc --enable-xvmcw 		--disable-xvmc-vld --enable-glx-procaddrarb
 * 		--disable-dvb
 * 		--enable-firewire
 * 		--disable-lirc
 * 		--disable-audio-arts
 * 		--disable-directfb
 * 		--dvb-path=/usr/include
 * 		--enable-opengl-vsync
 * 		--enable-xrandr
 * 		--enable-xv
 * 		--enable-x11 --enable-mmx --with-bindings=perl,python --compile-type=profile --cpu=k8 --disable-distcc


Interestingly, when I use build the exact same zip by hand using this exact ./configure call before the make, it builds perfectly. So perhaps there is something with the stripped cflags are another distinction that makes it so manually building it using these configure settings works while the ebuild as the error described in this bug.
Comment 22 Jesse Adelman 2009-11-09 00:08:42 UTC
Still extant with media-tv/mythtv-0.22_p22772 . Mostly x86 system here.

Build log + emerge --info:

http://pastebin.ca/1662736
Comment 23 Scott Admiraal 2009-11-09 00:42:03 UTC
(In reply to comment #21)

Additional potentially helpful data. Below is the compilation output for the same c file first using the ebuild (fist) vs. manual (second) using the same ./configure options in both cases. A couple major difference that pop out: the inclusion of ccache in manual (which should have no effect), the march setting (which could be very significant).

Ebuild:
gcc -c -pipe -march=k8 -fomit-frame-pointer -O3 -DNDEBUG -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -g -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -fno-math-errno -fno-signed-zeros -fPIC -DPIC -w -fPIC -D_REENTRANT -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include -I/usr -I/usr/include -I. -I../.. -Idvdnav -I../libmythdb -o nav_read.o dvdread/nav_read.c

Manual:
ccache gcc -c -pipe -march=pentiumpro -fomit-frame-pointer -O3 -DNDEBUG -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -g -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -fno-math-errno -fno-signed-zeros -fPIC -DPIC -w -fPIC -D_REENTRANT -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include -I/usr -I/usr/include -I. -I../.. -Idvdnav -I../libmythdb -o nav_read.o dvdread/nav_read.c

Comment 24 Sazioh Haynes 2009-11-09 04:34:38 UTC
I'm having the exact same problem on X86. Until it is fixed, I found the following work around. 

Without any modification to the ebuild, compiling with the debug flag seems to disable PIC

USE=debug emerge -va =media-tv/mythtv-0.22_p22772

Comment 25 Douglas Mayle 2009-11-09 05:02:48 UTC
I've been speaking with the mythtv developers, and they think that compiling without PIC should be unnecessary.  The problem seems to be that myth is choosing the wrong processor type.  (Most Gentoo users use the recommended CFLAGS, which means they generate processor specific code, and the configure script is choosing a conservative processor (e.g. for my Core Duo Prescott, the configure script builds Pentium Pro code, which has PIC problems).  The Myth Developers asked me to try replacing the lines that say `CFLAGS=""` with `unset CFLAGS`, but I'm away from home for two weeks so can't test it out.

That being said, anyone who just wants the ebuild to work for them just has to change src_configure so that it has:
if ! x86: then
    CFLAGS=""
    CXXFLAGS=""
fi

instead of just blindly erasing the CFLAGS
Comment 26 Alexey Parshin 2009-11-09 12:01:20 UTC
Same here, error on compiling mmx asm code
Comment 27 Scott Admiraal 2009-11-09 14:35:16 UTC
Commenting out the lines to clear the CFLAGS in the ebuild did not resolve the problem. The same PIC error occurred when the ebuild read:

#   CFLAGS=""
#   CXXFLAGS=""

The march is set has k8-sse3, but this also happens with plain k8.
Comment 28 jcat 2009-11-09 14:55:38 UTC
debug use flag works here too.


Cheers,
jcat
Comment 29 Scott Admiraal 2009-11-09 17:01:49 UTC
When using the debug flag, the build completes and merges properly. However, anytime I try to launch the frontend (the backend starts properly) it dies quickly with a floating point exception. Here is the last portion of the frontend output:

2009-11-09 11:59:46.281 Using the OpenGL painter
2009-11-09 11:59:46.347 Loaded base theme from /usr/share/mythtv/themes/MythCenter-wide/base.xml
2009-11-09 11:59:46.505 Loaded base theme from /usr/share/mythtv/themes/default-wide/base.xml
2009-11-09 11:59:46.528 Loaded base theme from /usr/share/mythtv/themes/default/base.xml
2009-11-09 11:59:46.532 Current MythTV Schema Version (DBSchemaVer): 1244
2009-11-09 11:59:47.028 Desktop video mode: 1920x1080 59.9341 Hz
2009-11-09 11:59:47.144 Registering Internal as a media playback plugin.
Floating point exception
Comment 30 Scott Admiraal 2009-11-09 17:08:10 UTC
Disregard that - it seems that floating point exception was the result of mythtv plugin build errors.
Comment 31 Stefan Trenker 2009-11-10 09:32:53 UTC
(In reply to comment #28)
> debug use flag works here too.

debug use flag works for me as well, but renders mythfrontend unbearable slow. I have permanently hanging video/sound with this workaround (7 Years old 1000MHZ laptop ;-).

My solution to get rid of -fPIC and -DPIC __without__ setting USE=debug is to put the following lines just as first lines into the src_compile() function of the ebuild script:

    if use x86; then
        MM="${WORKDIR}/branches/release-0-22-fixes/mythtv/settings.pro"
        einfo "Running sed on '${MM}'"
        sed -e 's/-fPIC//g' \
            -e 's/-DPIC//g' \
            -i "${MM}" || die "sed $'{MM}' failed"
    fi

just in front of the eqmake4 command line.

The above workaround schuld work at the and of src_configure(), just as last lines, as well.

I do not know the effects for mythbackend since this runs on an amd64 in my environment.

--Stefan
Comment 32 Stefan G. Weichinger 2009-11-11 19:38:15 UTC
(In reply to comment #31)
> I do not know the effects for mythbackend since this runs on an amd64 in my
> environment.

I applied your suggested patch to the ebuild in my local overlay, and was able to emerge mythtv-0.22_p22778 on x86 successfully, mythbackend starts and works OK so far. Thanks, Stefan
Comment 33 Doug Goldstein (RETIRED) gentoo-dev 2009-11-12 06:22:03 UTC
Basically, it appears that the MythTV build system only supports pentiumpro and nothing higher. The build system really needs some serious patching to make it go correctly.

I've tried to tweak the ebuild to address the issue for a few more people but until upstream sees the flaws in their build system, the issue will remain opened.
Comment 34 jcat 2009-11-12 14:54:09 UTC
(In reply to comment #33)
> Basically, it appears that the MythTV build system only supports pentiumpro and
> nothing higher. The build system really needs some serious patching to make it
> go correctly.

So if we set a different -march, will it build correctly?  Or am I mis-understanding?

Also, please comment on Stefan Trenker's "settings.pro" sed edit pre-compile.
Is this a pretty safe workaround?


Cheers,
jcat
Comment 35 Stefan Trenker 2009-11-12 15:13:21 UTC
(In reply to comment #33)
> Basically, it appears that the MythTV build system only supports pentiumpro and
> nothing higher. The build system really needs some serious patching to make it
> go correctly.
> 
> I've tried to tweak the ebuild to address the issue for a few more people but
> until upstream sees the flaws in their build system, the issue will remain
> opened.
> 

Hi,

i am sorry to say, that your workarround of unsetting local C/CXFLAGS does not work for me. I still get these PIC related "ebx" clobbering error as you can see below when I do not patch the "settings.pro" file.

In my default C/CXFLAGS i do _not_ set anything arch related (only -O2 and -pipe).



gcc -c -pipe -march=pentiumpro -fomit-frame-pointer -O3 -DNDEBUG -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -pthread -g -Wall -
Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -fno-math-errno -fno-signed-zeros -w -D_R
EENTRANT -DPIC -fPIC -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -I/usr/share/qt4/mkspecs/linux-g++ -I. -I.. -I../.. -o interplayvideo.o in
terplayvideo.c
cabac.h: In Funktion <C2><BB>get_cabac_noinline<C2><AB>:
cabac.h:527: Fehler: PIC-Register <C2><BB>%ebx<C2><AB> wird in <C2><BB>asm<C2><AB> zerst<C3><B6>rt
cabac.h: In Funktion <C2><BB>decode_cabac_residual_dc<C2><AB>:
cabac.h:527: Fehler: PIC-Register <C2><BB>%ebx<C2><AB> wird in <C2><BB>asm<C2><AB> zerst<C3><B6>rt
x86/h264_i386.h:44: Fehler: PIC-Register <C2><BB>%ebx<C2><AB> wird in <C2><BB>asm<C2><AB> zerst<C3><B6>rt
cabac.h:527: Fehler: PIC-Register <C2><BB>%ebx<C2><AB> wird in <C2><BB>asm<C2><AB> zerst<C3><B6>rt
cabac.h:527: Fehler: PIC-Register <C2><BB>%ebx<C2><AB> wird in <C2><BB>asm<C2><AB> zerst<C3><B6>rt
--- snip --- 8< ----

Comment 36 Scott Admiraal 2009-11-12 15:34:38 UTC
Stefan Trenker's workaround worked flawlessly for me - thanks (and without the slowdowns associated with debug). In response to the architecture question, I have compiled it successfully using pentiumpro (when I let the config determine the architecture on its own), however changing make.conf seems like a bad solution.
Comment 37 Tom Dexter 2009-11-14 15:42:16 UTC
I haven't attempted to upgrade as yet and was concerned about this since I'm running on x86.  I noticed that some users are reporting that using eqmake rather than eqmake4 in the ebuild fixes this:

http://forums.gentoo.org/viewtopic-t-801877-highlight-mythtv.html

I also noticed that the Qt4-based Ebuild HowTo:

http://www.gentoo.org/proj/en/desktop/kde/qt4-based-ebuild-howto.xml

...states that: "There are some rare occasions where eqmake4 fails, but qmake works. Please fill a bug about this in order to take care of it"...though it doesn't say anything specifically about eqmake4 vs. eqmake.

Hopefully this will give someone a clue as to what's causing this.
Comment 38 Doug Goldstein (RETIRED) gentoo-dev 2009-11-16 19:41:04 UTC
*** Bug 293316 has been marked as a duplicate of this bug. ***
Comment 39 Doug Goldstein (RETIRED) gentoo-dev 2009-11-19 05:54:20 UTC
This issue might be fixed by 0.22_p22860, please test and report.
Comment 40 Stefan G. Weichinger 2009-11-19 08:12:44 UTC
(In reply to comment #39)
> This issue might be fixed by 0.22_p22860, please test and report.

emerged fine on my x86, thanks.
Comment 41 Alexey Parshin 2009-11-19 08:15:28 UTC
(In reply to comment #39)
> This issue might be fixed by 0.22_p22860, please test and report.
> 

Emerged fine on x86, thank you.
Comment 42 Per Öberg 2009-11-19 08:51:59 UTC
Adding a me too here,  make.conf has CFLAGS=-march=i686

Comment 43 Stefan Trenker 2009-11-19 09:49:59 UTC
(In reply to comment #39)
> This issue might be fixed by 0.22_p22860, please test and report.
> 

Emerged fine on my x86.
Many Thanks
Comment 44 jcat 2009-11-19 14:39:26 UTC
(In reply to comment #39)
> This issue might be fixed by 0.22_p22860, please test and report.
> 

Hi Doug.

What was the fix in the end?


Cheers,
jcat
Comment 45 Doug Goldstein (RETIRED) gentoo-dev 2009-11-19 15:15:50 UTC
(In reply to comment #44)
> (In reply to comment #39)
> > This issue might be fixed by 0.22_p22860, please test and report.
> > 
> 
> Hi Doug.
> 
> What was the fix in the end?
> 
> 
> Cheers,
> jcat
> 

Fixed the generation of the Makefiles for libswscale and libavcodec. The patch is available in the tree as mythtv-0.22-x86-no-fpic.patch. It should hopefully find its way upstream sooner then later. The in tree trunk and fixes ebuilds both use it.

Thanks all for reporting that its fixed.