<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Many extension functions exported by libGL.so.1"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=57098">57098</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Many extension functions exported by libGL.so.1
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>amonakov@gmail.com
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=70035" name="attach_70035" title="GL exports checking script">attachment 70035</a> <a href="attachment.cgi?id=70035&action=edit" title="GL exports checking script">[details]</a></span>
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:
<a href="https://bugzilla.icculus.org/show_bug.cgi?id=5759#c0">https://bugzilla.icculus.org/show_bug.cgi?id=5759#c0</a>
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:
<a href="https://github.com/amonakov/primus/issues/21#issuecomment-10185661">https://github.com/amonakov/primus/issues/21#issuecomment-10185661</a>
6. Some Webkit-related library used in Linux Steam attempts to load extensions
with dlopen. Not analyzed, not reported yet.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>