tech-x11 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Fix for 'Undefined PLT symbol "_glapi_check_multithread"' in GL apps

Running latest 5.0_STABLE kernel + userland + native Xorg on my amd64
machine, I noticed that glxinfo would claim direct rendering was dis-
abled even through Xorg.log said DRI was initialized fine.

Hardware is amd64 + Radeon HD 4650 (rv730), running radeonhd driver.

Adding some LIBGL_DEBUG=verbose showed errors loading after
failing to load (this is legit since because there's no support
for r600+ in our Mesa), with the error in the subject.

The following diff fixes it for me (at least in the netbsd-5 tree); I'd 
like to check it in pending verification of the same issues in -current.
In the meantime I thought I'd throw it out here for comments.


diff --git a/external/mit/MesaLib/dist/src/mesa/glapi/glapi.c 
index c3ebf60..bbef03b 100644
--- a/external/mit/MesaLib/dist/src/mesa/glapi/glapi.c
+++ b/external/mit/MesaLib/dist/src/mesa/glapi/glapi.c
@@ -221,7 +221,7 @@ PUBLIC void *_glapi_Context = NULL;
  * We should call this periodically from a function such as glXMakeCurrent
  * in order to test if multiple threads are being used.
+PUBLIC void
 #if defined(THREADS) && !defined(GLX_USE_TLS)
diff --git a/external/mit/MesaLib/dist/src/mesa/glapi/glapi_getproc.c 
index 1238c4c..dd530a9 100644
--- a/external/mit/MesaLib/dist/src/mesa/glapi/glapi_getproc.c
+++ b/external/mit/MesaLib/dist/src/mesa/glapi/glapi_getproc.c
@@ -563,7 +563,7 @@ _glapi_get_proc_offset(const char *funcName)
  * in the name of static functions, try generating a new API entrypoint on
  * the fly with assembly language.
+PUBLIC _glapi_proc
 _glapi_get_proc_address(const char *funcName)
    struct _glapi_function * entry;
diff --git a/external/mit/MesaLib/dist/src/mesa/glapi/glthread.c 
index b818f4e..59a259f 100644
--- a/external/mit/MesaLib/dist/src/mesa/glapi/glthread.c
+++ b/external/mit/MesaLib/dist/src/mesa/glapi/glthread.c
@@ -36,7 +36,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include "glthread.h"
+#include "main/glheader.h"
  * This file should still compile even when THREADS is not defined.
@@ -71,7 +71,7 @@
 #ifdef PTHREADS
-unsigned long
+PUBLIC unsigned long
    return (unsigned long) pthread_self();
@@ -125,7 +125,7 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
 #define USE_LOCK_FOR_KEY       /* undef this to try a version without
                                   lock for the global key... */
-unsigned long
+PUBLIC unsigned long
    abort();   /* XXX not implemented yet */
@@ -203,7 +203,7 @@ void InsteadOf_exit(int nCode)
    DWORD dwErr=GetLastError();
-unsigned long
+PUBLIC unsigned long
    return GetCurrentThreadId();
@@ -304,7 +304,7 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
-unsigned long
+PUBLIC unsigned long
    return (unsigned long) find_thread(NULL);
@@ -346,7 +346,7 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
  * no-op functions
-unsigned long
+PUBLIC unsigned long
    return 0;

  Time is an illusion; lunchtime, doubly so.     |/\/\|           Rafal Boni
                   -- Ford Prefect               |\/\/|

Home | Main Index | Thread Index | Old Index