[Xquartz-dev] libGL.1.2.dylib shipped with 2.3.3 RC5 makes applications crash
Jeremy Huddleston
jeremyhu at apple.com
Wed Apr 22 19:42:08 PDT 2009
On Apr 22, 2009, at 18:17, vmrsss wrote:
> Hello
>
>> Changed 3 hours ago by jeremyhu@…
>> • status changed from new to closed
>> • resolution set to worksforme
>> Please bring this up on xquartz-dev for faster iteration and more
>> eyes.
>>
> As required, I am bringing this to the developer list. Please find
> below my original report and attachment.
>> This bug report is vague and I can't really do anything about it
>> without specifics.
>>
> Yes, that's right and I am aware of it. Unfortunately, I am not
> acquainted at all with XQuartz.
>> Please give me examples of applications that fail with the new libGL.
>>
> (OK, but let's postpone this a bit longer)
>> mplayer is not a good example as it's not using GLX. It's using
>> OpenGL.framework directly.
>>
> Well, that cannot be, because as I link /usr/X11/lib/libGL.1.2.dylib
> to the new (resp old) dylib mplayer keeps crashing (resp works just
> fine)
The stack trace you provided for the mplayer crash clearly shows that
it is not using the glx video output plugin. You may have built
mplayer with glx support, but you're not using it when this crash
happens.
> I suppose the key here is to run
>
> mplayer -vo macosx
That is what you're doing. That causes mplayer to not use glx.
> (as eg mplayer -vo x11 works). Have you tried that? This activates
> vo_macosx.m which uses libGL, eg: "nm -a vo_macosx.o" list includes:
>
>> U _glBegin
>> U _glBindTexture
>> U _glClear
>> U _glColor3f
>> U _glColor4f
>> U _glDepthMask
>> U _glDisable
>> U _glEnable
>> U _glEnd
>> U _glFlush
>> U _glLoadIdentity
>> U _glMatrixMode
>> U _glOrtho
>> U _glTexCoord2f
>> U _glVertex2i
>> U _glViewport
That's using GL, but it's not using GLX. The macosx output plugin for
mplayer uses Cocoa. It has nothing to do with GLX. If you're linking
the macosx vo plugin against /usr/X11/lib/libGL.dylib, then you should
expect it to not work. The fact that it used to work was pure luck on
your part. You want to do -fw OpenGL to link against the correct
libGL... not -lGL.
> Can it be that the dylib system get confused with different versions
> of libGL.1.2? I have just noticed something which is likely to be
> significant: the old libGL (the one which works) appears to link a
> libGL.dylib v1.0 from the OpenGL framework, while the new libGL,
> doesnt:
That's correct. We now dlopen() it instead.
Can you please provide a specific instance of a GLX application that
works with the old libGL but crashes with the new one?
More information about the Xquartz-dev
mailing list