Niekompatybilne libGL.so (X <-> NVidia)

Paweł Sikora pluto w ds14.agh.edu.pl
Wto, 6 Kwi 2004, 20:39:23 CEST


On Tuesday 06 of April 2004 20:04, Jakub Bogusz wrote:
> On Tue, Apr 06, 2004 at 07:45:09PM +0200, Radoslaw Zielinski wrote:
> >   $ rpm -qf /usr/lib/libGL.so
> >   XFree86-driver-nvidia-1.0.5336-2
> >   $ ./dupa
> >   ./dupa: relocation error: /usr/lib/libclanGL-0.7.so.0: undefined
> > symbol: glXGetProcAddress
>
> /* GLX 1.4 and later */
> extern void (*glXGetProcAddress(const GLubyte *procname))(void);
>
> Czyli NVidia nie wspiera GLX 1.4?

nie, to xf86 dodaly cos od siebie.

[ cite: http://oss.sgi.com/projects/ogl-sample/ABI/index.html ]

3.6. To perform the dynamic query, libGL also must export
     an entry point called

     void (*glXGetProcAddressARB(const GLubyte *))();
                             ^^^

The full specification of this function is available separately.
It takes the string name of a GL or GLX entry point and returns
a pointer to a function implementing that entry point.
It is functionally identical to the wglGetProcAddress query defined
by the Windows OpenGL library, except that the function pointers
returned are context independent, unlike the WGL query.

[ /cite ]

# objdump -T nv-x86/libGL.so.1.2 |grep glXGetProcAddress
00058e50 g    DF .text  0000007f  Base        glXGetProcAddress
00058e50 g    DF .text  0000007f  Base        glXGetProcAddressARB

# objdump -T nv-bin/libGL.so.1.0.5336 |grep glXGetProcAddress
0001deb4 g    DF .text  00000072  LIBGL       glXGetProcAddressARB

# grep glXGetProcAddress nv-x86/include/* -R

extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
extern void (*glXGetProcAddress(const GLubyte *procname))(void);
extern void (*glXGetProcAddressARB(const GLubyte *procName))( void );

# grep GetProcAddress nv-bin/include/* -R

extern void (*glXGetProcAddressARB(const GLubyte *procName))(void);

aplikacja ktora uzywa glXGetProcAddress nie jest zgodna z opengl.

> (...) I wyciągnąć wnioski na przyszłość.

zakomentowac w naglowkach xf86 te felerna funkcje i poprawic programy,
ktore sie bez niej wyloza. jak mnie pamiec nie myli, to pierwszym
kandydatem bedzie wine, ktroe na -develu nvidii sie nie budowalo.

-- 
If you think of MS-DOS as mono, and Windows as stereo,
  then Linux is Dolby Digital and all the music is free...



Więcej informacji o liście dyskusyjnej pld-devel-pl