Summary: | media-tv/mythtv-0.20.2_p14814 failed - libmythtv-0.20.2.so: undefined reference to `glXGetProcAddress' | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Jason <jprokopowich> |
Component: | [OLD] Library | Assignee: | Television related Applications in Gentoo's Portage <media-tv> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
URL: | http://svn.mythtv.org/trac/ticket/4064 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Jason
2008-01-21 02:54:17 UTC
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. |