[mythtv] [mythtv-commits] Ticket #4064: NVidia OpenGL undefined reference to glXGetProcAddress in SVN14639

Paul Catchpole paul at paulcatchpole.co.uk
Mon Oct 8 07:02:35 UTC 2007

MythTV wrote:
> #4064: NVidia OpenGL undefined reference to glXGetProcAddress in SVN14639
> -------------------------------------+--------------------------------------
>  Reporter:  ross.campbell at gmail.com  |       Owner:  ijr 
>      Type:  defect                   |      Status:  new 
>  Priority:  major                    |   Milestone:  0.21
> Component:  mythtv                   |     Version:  head
>  Severity:  medium                   |     Mlocked:  0   
> -------------------------------------+--------------------------------------
>  On my highly modified FC1 system with a 2.4.22 kernel and nvidia 6111
>  video drivers where I've been running svn builds on a regular basis, I get
>  a compile error with svn 14639:
>  ccache g++  -o mythtv main.o    -L/usr/lib/qt-3.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 -lmythavformat-0.20
>  -lmythavutil-0.20 -lmythavcodec-0.20 -lmythfreemheg-0.20 -lmythupnp-0.20
>  -lmythlivemedia-0.20 -lmyth-0.20 -lmythui-0.20 -lfreetype -lmp3lame
>  -lasound -L/usr/lib -lartsc -lgmodule-2.0 -lgthread-2.0 -lglib-2.0
>  -lraw1394 -liec61883 -lavc1394 -lrom1394 -ldirectfb -lfusion -ldirect -lz
>  -ldl -L/usr/X11R6/lib -lXinerama -lXv -lXxf86vm -lXrandr -lXvMCW -lXvMC
>  -lqt-mt -lGLU -lGL -lXmu -lXext -lX11 -lm -lpthread
>  ../../libs/libmythtv/libmythtv-0.20.so: undefined reference to
>  `glXGetProcAddress'
>  After some googling, I found this, wich suggests the solution -- I just
>  don't know where in the code this change needs to be made to test it.
>  http://www.nvnews.net/vbulletin/showthread.php?t=15297
>  Thread summary:
>  Problem: undefined reference to 'glXGetProcAddress()' with Nvidia OpenGL
>  shared libraries
>  Solution: define GLX_GLXEXT_LEGACY to make the prototype for
>  glXGetProcAddressARB() visible to the application, and use
>  glXGetProcAddressARB instead of glXGetProcAddress
It looks like your NVIDIA drivers are reporting GLX 1.4 but don't 
actually support the required defines. This doesn't look like a MythTV 
bug. On the thread you linked, someone from NVIDIA confirms [as of then, 
2005] that the method glXGetProcAddress()  is only present in 1.4 but 
<1.4 the ARB method should be used instead.

The following is from 14616 SVN:

    X11S(ret = glXGetProcAddress((const GLubyte*)procName.latin1()));
#elif GLX_ARB_get_proc_address
    X11S(ret = glXGetProcAddressARB((const GLubyte*)procName.latin1()));
#elif GLX_EXT_get_proc_address
    X11S(ret = glXGetProcAddressEXT((const GLubyte*)procName.latin1()));

Mind you, I could well be wrong. Daniel_K is the man for this, n'est pas?


More information about the mythtv-dev mailing list