Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 222353 - media-tv/mythtv-0.21_p17100 doesn't link properly with opengl-xvmx USE flag
Summary: media-tv/mythtv-0.21_p17100 doesn't link properly with opengl-xvmx USE flag
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Doug Goldstein (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-16 08:58 UTC by Eduard Huguet
Modified: 2008-06-02 15:21 UTC (History)
1 user (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 Eduard Huguet 2008-05-16 08:58:05 UTC
Trying to emerge newest 0.21 ebuild (media-tv/mythtv-0.21_p17100), I get linker errors related to Xvmc if the opengl-xvmc USE flag is specified.


Reproducible: Always

Steps to Reproduce:
1.add "media-tv/mythtv" to /etc/portage/package.keywords (it's marked as ~ right now)
2.add "media-tv/mythtv opengl-xvmc" to /etc/portage/package.use
3.emerge media-tv/mythtv

Actual Results:  
The compile goes fine until it starts to compile mythfrontend app. Then, it fails with the following results:


...
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCCreateContext'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCCompositeSubpicture'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCFlushSurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCHideSurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCClearSubpicture'
../../libs/libavcodec/libmythavcodec-0.21.so: undefined reference to `XvMCLoadQMatrix'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCCreateSurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCDestroyContext'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCDestroyMacroBlocks'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCGetSurfaceStatus'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCSetSubpicturePalette'
../../libs/libavcodec/libmythavcodec-0.21.so: undefined reference to `XvMCSyncSurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCBlendSubpicture'
../../libs/libavcodec/libmythavcodec-0.21.so: undefined reference to `XvMCBeginSurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCRenderSurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCPutSurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCCreateBlocks'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCFlushSubpicture'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCCreateMacroBlocks'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCSyncSubpicture'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCBlendSubpicture2'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCDestroySubpicture'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCCreateSubpicture'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCDestroySurface'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCPutSlice2'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCSetAttribute'
../../libs/libmythtv/libmythtv-0.21.so: undefined reference to `XvMCDestroyBlocks'
collect2: ld returned 1 exit status
make[2]: *** [mythfrontend] Error 1
make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.21_p17100/work/mythtv-0.21/programs/mythfrontend'
make[1]: *** [sub-mythfrontend] Error 2
make[1]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.21_p17100/work/mythtv-0.21/programs'
make: *** [sub-programs] Error 2
 *
 * ERROR: media-tv/mythtv-0.21_p17100 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 3086:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed";
 *  The die message:
 *   emake failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/media-tv/mythtv-0.21_p17100/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-tv/mythtv-0.21_p17100/temp/environment'.
 *



Expected Results:  
It should emerge fine. 

This problems happens both in x86 and x86_64 architectures, as I've tried in both.
Comment 1 Doug Goldstein (RETIRED) gentoo-dev 2008-05-16 18:20:44 UTC
emerge --info?

emerge -pv mythtv?

http://www.gentoo.org/doc/en/bugzilla-howto.xml#doc_chap6_fig9
Comment 2 Eduard Huguet 2008-05-16 19:13:11 UTC
# emerge --info
Portage 2.1.4.4 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.24-gentoo-r7 i686)
=================================================================
System uname: 2.6.24-gentoo-r7 i686 Intel(R) Pentium(R) 4 CPU 3.20GHz
Timestamp of tree: Fri, 16 May 2008 16:35:01 +0000
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.4.4-r9
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=prescott -pipe -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/share/config/kdm/ /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/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/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer parallel-fetch sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.qubenet.net/mirror/gentoo/ http://mirror.bytemark.co.uk/gentoo/ http://mirror.switch.ch/ftp/mirror/gentoo/"
LINGUAS="es ca es_ES ca_ES"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
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/desktop-effects /home/root/portage/custom"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="7zip X a52 aac aalib acl acpi aiglx alsa asf avahi berkdb bluetooth branding bzip2 cairo cdda cddb cdparanoia cdr cli cracklib crypt cups dbus djvu dri dts dv dvb dvd dvdr dvdread eds effects emboss encode esd evo fam fat ffmpeg fftw firefox flac flash foomaticdb fortran freetype gdbm gif glitz gpm gstreamer hal hddtemp iconv ieee1394 imagemagick imlib ipv6 isdnlog jfs jpeg jpeg2k kde kdehiddenvisibility kipi lame lcms libnotify lm_sensors mad mdnsresponder-compat midi mikmod mjpeg mmx mp3 mp4 mpeg mplayer mudflap musicbrainz mysql mythtv ncurses network nls nptl nptlonly nptonly ntfs nvidia ogg opengl openmp pam pcre pdf plugin png ppds pppd pulseaudio python qt3 qt3support qt4 quicktime radio readline real reflection samba sdl session spell spl srt sse sse2 ssht ssl startup-notification subversion svg sysfs tcpd threads tiff truetype udev unicode usb v4l v4l2 vcd visualization vorbis wifi win32codecs wmf x264 x86 xcb xfs xine xinerama xml xorg xscreensaver xv xvid xvmc 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 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="evdev keyboard mouse void wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="es ca es_ES ca_ES" USERLAND="GNU" VIDEO_CARDS="nvidia nv dummy vesa vga"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


# emerge -av mythtv
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] media-tv/mythtv-0.21_p17100  USE="aac alsa dvb dvd ieee1394 mmx opengl opengl-video opengl-xvmc* python xvmc (-altivec) -autostart -debug -directv -jack -lcd -lirc -perl" VIDEO_CARDS="nvidia -via" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
Comment 3 Doug Goldstein (RETIRED) gentoo-dev 2008-05-16 19:21:36 UTC
And what version of nvidia-drivers are you using?
Comment 4 Eduard Huguet 2008-05-17 10:33:10 UTC
I'm currently using x11-drivers/nvidia-drivers-169.12 both in x86 and x86_64 (I've had this issue in 2 different machines, one with a Pentium 4 3.2 MHz running Gentoo 32 bits, and another one with an Athlon XP running Gentoo 64 bits.

Also I don't know if it's relevant or not, but I previously used 'eselect xvmc' to choose nVidia xvmc prior to emerging mythtv.

Regards
  Eduard

Comment 5 Rick Harris 2008-05-27 00:20:47 UTC
What you are seeing is MythTV using the --xvmc-vld (VIA Epia) option as enabled by default.

I believe this bug is a dupe of Bug #220587 with the difference in that bug being the user actually having the VIA XvMC libs present on his system, just for a different VIA hardware set other than VIA-vld.

Doug, I know you mentioned previously that upstream's instructions were to disable 'xvmcw', but enabling it seems to fix this problem.

I have tested using 'xvmcw' and not only did it successfully compile, I am also able to toggle between Xorg's and Nvidia's XvMC at runtime using 'eselect-xvmc', works great.

Also looking at MythTV's configure script, if you discount the fact that --xvmc-vld is enabled by default, it actually gives precedence to 'xvmcw' over all other options except for Xorg's libXvMC.so.
Comment 6 Rick Harris 2008-05-27 00:22:39 UTC
Err...that should be a dupe of Bug #220857 not Bug #220587 :|
Comment 7 Eduard Huguet 2008-05-30 14:55:01 UTC
Any update on this? I entered the bug two weeks ago and it doesn't seem to be any updates since then on MythTV packages.

Could you please give any clue about if this is considered really a bug, will be solved, left as is, etc...?

Regards
  Eduard

Comment 8 Doug Goldstein (RETIRED) gentoo-dev 2008-06-02 15:17:28 UTC
After discussing this further with upstream, the Ubuntu packagers, and the Fedora packagers, this option is going away in future MythTV ebuilds.

As I've mentioned in other bugs, OpenGL XvMC is not something you guys should want. It's mostly slower and has artifacts. It's known to be buggy and broken. Upstream will not be working on it since it requires features that NVIDIA implemented as extensions in their drivers but have since abandoned (support stays as long as it's does not break on compiles). It works only on a select few cards and it actually is only faster on an even smaller handful (do you guys have Quatro cards for you MythTV machines).

As such, the flag is going away.
Comment 9 Eduard Huguet 2008-06-02 15:21:18 UTC
Ok, thanks.
Best regards, 
  Eduard