Bug 206827 - media-tv/mythtv-0.20.2_p14814 failed - libmythtv-0.20.2.so: undefined reference to `glXGetProcAddress'
|
Bug#:
206827
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: x86
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: media-tv@gentoo.org
|
Reported By: jprokopowich@mts.net
|
|
Component: Library
|
|
|
URL:
http://svn.mythtv.org/trac/ticket/4064
|
|
Summary: media-tv/mythtv-0.20.2_p14814 failed - libmythtv-0.20.2.so: undefined reference to `glXGetProcAddress'
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2008-01-21 02:54 0000
|
After performed an update, emerge -a --update world ... a few library
dependences broke
I resolved all but one, Checking dynamic linking consistency...
broken /usr/lib/libmythavcodec-0.20.2.so.0.20.2 (requires libdts.so.0), with
the the assistance of revdep-rebuild
And now when I tried to update to media-tv/mythtv-0.20.2_p14814 to receive the
following ....
make[1]: Entering directory
`/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs'
cd mythtv && /usr/qt/3/bin/qmake mythtv.pro "QMAKE=/usr/qt/3/bin/qmake" -o
Makefile
cd mythtv && make -f Makefile
make[2]: Entering directory
`/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs/mythtv'
g++ -c -pipe -mtune=i686 -Wall -W -O3 -Wall -Wno-switch -fomit-frame-pointer
-D_REENTRANT -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
-DPREFIX=\"/usr\" -DLIBDIR=\"/usr/lib\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
-DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I.
-I/usr/include -I/usr/include -I/usr/include -I../.. -I../../libs
-I../../libs/libmyth -I../../libs/libmythtv -I../../libs/libavutil
-I../../libs/libavformat -I../../libs/libavcodec -I../../libs/libmythupnp
-I../../libs/libmythui -I../../libs/libmythlivemedia -I/usr/qt/3/include
-I/usr/include -I/usr/include -o main.o main.cpp
/usr/qt/3/include/qsqldatabase.h:63: warning: 'class QSqlDriverCreatorBase' has
virtual functions but non-virtual destructor
g++ -o mythtv main.o -L/usr/qt/3/lib -L../../libs/libmyth
-L../../libs/libmythtv -L../../libs/libavutil -L../../libs/libavcodec
-L../../libs/libavformat -L../../libs/libmythfreemheg -L../../libs/libmythui
-L../../libs/libmythupnp -L../../libs/libmythlivemedia -lmythtv-0.20.2
-lmythavformat-0.20.2 -lmythavutil-0.20.2 -lmythavcodec-0.20.2
-lmythfreemheg-0.20.2 -lmythupnp-0.20.2 -lmythlivemedia-0.20.2 -lmyth-0.20.2
-lmythui-0.20.2 -lfreetype -lmp3lame -lasound -lraw1394 -liec61883 -lavc1394
-L/usr/X11R6/lib -lXinerama -lXv -lXxf86vm -lXrandr -lqt-mt -lGLU -lGL -lXmu
-lXext -lX11 -lm -lpthread
../../libs/libmythtv/libmythtv-0.20.2.so: undefined reference to
`glXGetProcAddress'
collect2: ld returned 1 exit status
make[2]: *** [mythtv] Error 1
make[2]: Leaving directory
`/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs/mythtv'
make[1]: *** [sub-mythtv] Error 2
make[1]: Leaving directory
`/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs'
make: *** [sub-programs] Error 2
*
* ERROR: media-tv/mythtv-0.20.2_p14814 failed.
* Call stack:
* ebuild.sh, line 1701: Called dyn_compile
* ebuild.sh, line 1039: Called qa_call 'src_compile'
* ebuild.sh, line 44: Called src_compile
* mythtv-0.20.2_p14814.ebuild, line 211: 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.20.2_p14814/temp/build.log'.
Reproducible: Always
Steps to Reproduce:
1.emerge -a =mythtv-0.20.2_p14668
2.
3.
Expected Results:
install =mythtv-0.20.2_p14668
emerge --info ...
Portage 2.1.3.19 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0,
2.6.22-gentoo-r9 i686)
=================================================================
System uname: 2.6.22-gentoo-r9 i686 Intel(R) Pentium(R) III CPU 1133MHz
Timestamp of tree: Thu, 17 Jan 2008 23:00:01 +0000
app-shells/bash: 3.2_p17-r1
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python: 2.4.4-r6
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.10-r5
sys-apps/sandbox: 1.2.17
sys-devel/autoconf: 2.13, 2.61-r1
sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils: 2.18-r1
sys-devel/gcc-config: 1.3.14
sys-devel/libtool: 1.5.24
virtual/os-headers: 2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i486-pc-linux-gnu"
CFLAGS="-O2 -mtune=i686 -pipe"
CHOST="i486-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/X11/xkb /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/terminfo
/etc/udev/rules.d"
CXXFLAGS="-O2 -mtune=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans
userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/linux/distributions/gentoo"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude=/distfiles --exclude=/local --exclude=/packages
--filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac acl alsa apache2 automount berkdb bindist bitmap-fonts
caps cdb cddb cdr cli cracklib crypt cups curl dbus dri dts dvb dvd dvdr encode
esd exif fam ffmpeg fftw firefox flac fortran gd gdbm gif gpm gstreamer gtk
gtk2 hal iconv ieee1394 ipv6 isdnlog java javascript joystick jpeg ldap
libdvdread lirc lm_sensors mad mailwrapper midi mikmod mmx mp3 mpeg mudflap
mysql ncurses nls nptl nptlonly nsplugin ntponly nxclient ogg opengl openmp pam
pcre pdf perl png posix pppd python qt3 quicktime readline real reflection
samba sdl server session spell spl ssl startup-notification tcpd theora threads
transcode truetype truetype-fonts type1 type1-fonts unicode usb v4l vcd vorbis
wifi win32codecs x86 xcomposite xine xml xorg xvid 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 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"
INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz
cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="atiusb"
USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL,
LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS,
PORTAGE_RSYNC_EXTRA_OPTS
do you have libdca installed?
(In reply to comment #1)
> do you have libdca installed?
>
Yes .... libdca-0.0.5.
(In reply to comment #1)
> do you have libdca installed?
>
Temporarily reverted back to libdts-0.0.2-r5 because mythtv-0.20.2_p14324 won't
function properly without it. Features cease to work ...
Hopefully libdts-0.0.2-r5 isn't removed until this issue is resolved.
Please try with a newer revision because I believe this was an --as-needed
issue and should be fixed.
(In reply to comment #4)
> Please try with a newer revision because I believe this was an --as-needed
> issue and should be fixed.
>
Is there anyway I can safely revert back to the libdts package if it doesn't
work?
I quickpkg'd the libdts just in case ... what command can I use to emerge it
back if your sugestion doesn't work? A simple "emerge -av
/usr/portage/packages/media-libs/libdts-0.0.2-r5.tbz2" doesn't work. I receive
the following ...
!!! All ebuilds that could satisfy "=media-libs/libdts-0.0.2-r5" have been
masked.
!!! One of the following masked packages is required to complete your request:
- media-libs/libdts-0.0.2-r5 (masked by: )
I have libdts set in the "/etc/portage/package.unmask" file.
Is there anyway I can safely revert back to the libdts package if it doesn't
work?
I quickpkg'd the libdts just in case ... what command can I use to emerge it
back if your sugestion doesn't work? A simple "emerge -av
/usr/portage/packages/media-libs/libdts-0.0.2-r5.tbz2" doesn't work. I receive
the following ...
!!! All ebuilds that could satisfy "=media-libs/libdts-0.0.2-r5" have been
masked.
!!! One of the following masked packages is required to complete your request:
- media-libs/libdts-0.0.2-r5 (masked by: )
I have libdts set in the "/etc/portage/package.unmask" file.
libdts plays no role in this issue. man emerge would tell you how to use a
binary package. emerge -gav libdts
(In reply to comment #7)
> libdts plays no role in this issue. man emerge would tell you how to use a
> binary package. emerge -gav libdts
>
The issue persists ... see below ...
collect2: ld returned 1 exit status
make[2]: *** [mythtv] Error 1
make[2]: Leaving directory
`/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/work/mythtv-0.20.2/programs/mythtv'
make[1]: *** [sub-mythtv] Error 2
make[1]: Leaving directory
`/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/work/mythtv-0.20.2/programs'
make: *** [sub-programs] Error 2
*
* ERROR: media-tv/mythtv-0.20.2_p15634 failed.
* Call stack:
* ebuild.sh, line 49: Called src_compile
* environment, line 2847: 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.20.2_p15634/temp/build.log'.
* The ebuild environment file is located at
'/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/temp/environment'.
*
* Messages for package media-tv/mythtv-0.20.2_p15634:
*
* ERROR: media-tv/mythtv-0.20.2_p15634 failed.
* Call stack:
* ebuild.sh, line 49: Called src_compile
* environment, line 2847: 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.20.2_p15634/temp/build.log'.
* The ebuild environment file is located at
'/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/temp/environment'.
(In reply to comment #7)
> libdts plays no role in this issue. man emerge would tell you how to use a
> binary package. emerge -gav libdts
>
And to add ...
mythtv-0.20.2_p15634 is dependent on libdca. When I replace libdts with libdca
trancoding and commercial flagging ceases to work. Hence the need to keep
libdts around (in my case).
(In reply to comment #8)
> (In reply to comment #7)
> > libdts plays no role in this issue. man emerge would tell you how to use a
> > binary package. emerge -gav libdts
> >
>
> The issue persists ... see below ...
>
> collect2: ld returned 1 exit status
> make[2]: *** [mythtv] Error 1
> make[2]: Leaving directory
<snip>
The actual error is above this.
(In reply to comment #9)
> (In reply to comment #7)
> > libdts plays no role in this issue. man emerge would tell you how to use a
> > binary package. emerge -gav libdts
> >
>
> And to add ...
> mythtv-0.20.2_p15634 is dependent on libdca. When I replace libdts with libdca
> trancoding and commercial flagging ceases to work. Hence the need to keep
> libdts around (in my case).
>
Correct. libdts was renamed to libdca due to DTS complaining of a trademark
violations. All projects have switched to linking to libdca. In newer revisions
of MythTV, which you're trying to compile, it requires libdca.
libdca and libdts have NOTHING to do with this issue as I've been stating.
Here's the original error you pasted...
g++ -o mythtv main.o -L/usr/qt/3/lib -L../../libs/libmyth
-L../../libs/libmythtv -L../../libs/libavutil -L../../libs/libavcodec
-L../../libs/libavformat -L../../libs/libmythfreemheg -L../../libs/libmythui
-L../../libs/libmythupnp -L../../libs/libmythlivemedia -lmythtv-0.20.2
-lmythavformat-0.20.2 -lmythavutil-0.20.2 -lmythavcodec-0.20.2
-lmythfreemheg-0.20.2 -lmythupnp-0.20.2 -lmythlivemedia-0.20.2 -lmyth-0.20.2
-lmythui-0.20.2 -lfreetype -lmp3lame -lasound -lraw1394 -liec61883 -lavc1394
-L/usr/X11R6/lib -lXinerama -lXv -lXxf86vm -lXrandr -lqt-mt -lGLU -lGL -lXmu
-lXext -lX11 -lm -lpthread
../../libs/libmythtv/libmythtv-0.20.2.so: undefined reference to
`glXGetProcAddress'
The above error just states that -lmythtv-0.20.2 requires the symbol
glXGetProcAddress (which is a function) for it to link. However, that's not
being satisfied.
glXGetProcAddress() is always found in libGL.so, it provides a way to call
various OpenGL extensions since it get the address of the function which
provides the extension.
$ strings /usr/lib/libGL.so | grep glXGetProcAddress
Should show that.
libGL.so is tied to specific cards and specific manufactures. Which is why on
Gentoo, we provided "eselect opengl".
Verify that "eselect opengl" is configured properly and recompile (I can
guarantee it's not)
$ eselect opengl list
Available OpenGL implementations:
[1] nvidia *
[2] xorg-x11
For example.. I have an NVIDIA card..
(In reply to comment #13)
> $ eselect opengl list
> Available OpenGL implementations:
> [1] nvidia *
> [2] xorg-x11
>
> For example.. I have an NVIDIA card..
>
Output from ...
strings /usr/lib/libGL.so | grep glXGetProcAddress
glXGetProcAddressARB
glXGetProcAddressARB
Is the above the expected output?
And from ...
eselect opengl list
Available OpenGL implementations:
[1] nvidia *
[2] xorg-x11
I do indeed have an nvidia card.
(In reply to comment #14)
> (In reply to comment #13)
> > $ eselect opengl list
> > Available OpenGL implementations:
> > [1] nvidia *
> > [2] xorg-x11
> >
> > For example.. I have an NVIDIA card..
> >
>
> Output from ...
> strings /usr/lib/libGL.so | grep glXGetProcAddress
> glXGetProcAddressARB
> glXGetProcAddressARB
>
> Is the above the expected output?
no. glXGetProcAddress != glXGetProcAddressARB
>
> And from ...
> eselect opengl list
> Available OpenGL implementations:
> [1] nvidia *
> [2] xorg-x11
>
> I do indeed have an nvidia card.
>
Which version of the nvidia drivers? Which card do you have?
(In reply to comment #15)
> (In reply to comment #14)
> > (In reply to comment #13)
> > > $ eselect opengl list
> > > Available OpenGL implementations:
> > > [1] nvidia *
> > > [2] xorg-x11
> > >
> > > For example.. I have an NVIDIA card..
> > >
> >
> > Output from ...
> > strings /usr/lib/libGL.so | grep glXGetProcAddress
> > glXGetProcAddressARB
> > glXGetProcAddressARB
> >
> > Is the above the expected output?
>
> no. glXGetProcAddress != glXGetProcAddressARB
>
> >
> > And from ...
> > eselect opengl list
> > Available OpenGL implementations:
> > [1] nvidia *
> > [2] xorg-x11
> >
> > I do indeed have an nvidia card.
> >
>
> Which version of the nvidia drivers? Which card do you have?
>
The card is a
01:00.0 VGA compatible controller: nVidia Corporation NV15 [GeForce2 GTS/Pro]
(rev a4)
The drivers are
* x11-drivers/nvidia-drivers
Latest version installed: 1.0.7185
Homepage: http://www.nvidia.com/
Description: NVIDIA X11 driver and GLX libraries
License: NVIDIA
I am stuck with these drivers because of the age of the card.
Remove the current version masks you have on nvidia-drivers. You should be
using 71.86.04.
(In reply to comment #17)
> Remove the current version masks you have on nvidia-drivers. You should be
> using 71.86.04.
>
I updated to x11-drivers/nvidia-drivers-71.86.01
(x11-drivers/nvidia-drivers-71.86.04 is ~x86 masked)
eselect opengl list
Available OpenGL implementations:
[1] nvidia *
[2] xorg-x11
Running this results in the same output ...
strings /usr/lib/libGL.so | grep glXGetProcAddress
glXGetProcAddressARB
glXGetProcAddressARB
And emerge mythtv failed again. Same results.
Well here's your answer... http://svn.mythtv.org/trac/ticket/4064
Appears nvidia-drivers-1.0.7185 and nvidia-drivers-71.x.y install a GLX 1.4
compatible header but the actual driver itself doesn't implement GLX 1.4.
That's just... broken...
Use the latest 0.21 version and it'll be fixed for you.