Summary: | media-tv/mythtv-0.22 & x86 PIC issues | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Robert Lippmann <rlippmann> |
Component: | Current packages | Assignee: | MythTV Maintainers <mythtv+disabled> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | Adrian.Bassett, alexeyp, digitalaudiorock, dliana, douglas, elprespufferfish, floppe, gentoo-bugs, gentoo, gentoo, ghutzl, gpp666_999, iivanich, jcat, jeffrey, jesse, krzysztof, lists, mark.clegg2, mattsch, media-tv, octavsly, per, podge, scottadmi, ssharma, strenker, tiki_g0d |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Robert Lippmann
2009-08-01 18:23: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. 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? I got the same error. Maybe it's time to update myth to the release candidate and close this ticket? (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? 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. (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 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 (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? 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 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' 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 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. 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. 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 *** Bug 291537 has been marked as a duplicate of this bug. *** 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\"" (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? 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... Can someone attach the ./configure line that the ebuild is generating when you attempt to emerge this? (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 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. Still extant with media-tv/mythtv-0.22_p22772 . Mostly x86 system here. Build log + emerge --info: http://pastebin.ca/1662736 (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 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 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 Same here, error on compiling mmx asm code 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. debug use flag works here too. Cheers, jcat 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 Disregard that - it seems that floating point exception was the result of mythtv plugin build errors. (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 (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 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. (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 (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< ---- 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. 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. *** Bug 293316 has been marked as a duplicate of this bug. *** This issue might be fixed by 0.22_p22860, please test and report. (In reply to comment #39) > This issue might be fixed by 0.22_p22860, please test and report. emerged fine on my x86, thanks. (In reply to comment #39) > This issue might be fixed by 0.22_p22860, please test and report. > Emerged fine on x86, thank you. Adding a me too here, make.conf has CFLAGS=-march=i686 (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 (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 (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. |