Bug 57098

Summary: Many extension functions exported by libGL.so.1
Product: Mesa Reporter: Alexander Monakov <amonakov>
Component: OtherAssignee: mesa-dev
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium CC: chadversary, idr, mattst88
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: GL exports checking script

Description Alexander Monakov 2012-11-13 21:58:27 UTC
Created attachment 70035 [details]
GL exports checking script

Current OpenGL ABI specifies that libraries need not export functions beyond GLX 1.4, OpenGL 1.2 and GL_ARB_multitexture.  Anything else must be obtained via glXGetProcAddress.  Current Mesa exports a lot more than that, and I was told today on #dri-devel IRC that it's a bug that ought to be reported.

I'm attaching a simple script that has a whitelist of OpenGL functions corresponding to the above ABI subset, and prints exported functions that are not from that subset.  The whitelist counts 494 functions, and running the script on my git build of Mesa produces a list of 848 functions.

Known (to me) applications that ignore the OpenGL ABI and explicitely link against extension functions:

1. Braid. My bugreport here: https://bugzilla.icculus.org/show_bug.cgi?id=5759#c0
2. Trine 2. No public bugzilla, reported to developers in private e-mail.
3. Enemy Territory: tries to use dlopen instead of glXGetProcAddress.
4. Waking Mars. Not reported yet.
5. Steam for Linux. List of imported extensions here: https://github.com/amonakov/primus/issues/21#issuecomment-10185661
6. Some Webkit-related library used in Linux Steam attempts to load extensions with dlopen. Not analyzed, not reported yet.
Comment 1 Matt Turner 2013-01-29 22:39:45 UTC
We talked about this on IRC and it seems we've missed our opportunity to remove wrongly-exported functions.

At this point what we want to do is make sure that no new symbols are exported.
Comment 2 GitLab Migration User 2019-09-18 20:17:06 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/900.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.