tech-x11 archive

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

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



On Thu, Jan 21, 2010 at 02:26:24PM -0500, Rafal Boni wrote:
> 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 swrast_dri.so after
> failing to load r600_dri.so (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.

FWIW, there looks to be another related issue in GLUT, which was fixed in
the Mega GIT [1] -- I'm running both this and the glapi changes on the 
above system and so far haven't come across any issues.

--rafal

[1] 
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b8326b011d9b16dcc502507a52bd747a4b709399

> diff --git a/external/mit/MesaLib/dist/src/mesa/glapi/glapi.c 
> b/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.
>   */
> -void
> +PUBLIC void
>  _glapi_check_multithread(void)
>  {
>  #if defined(THREADS) && !defined(GLX_USE_TLS)
> diff --git a/external/mit/MesaLib/dist/src/mesa/glapi/glapi_getproc.c 
> b/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.
>   */
> -_glapi_proc
> +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 
> b/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
>  _glthread_GetID(void)
>  {
>     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
>  _glthread_GetID(void)
>  {
>     abort();   /* XXX not implemented yet */
> @@ -203,7 +203,7 @@ void InsteadOf_exit(int nCode)
>     DWORD dwErr=GetLastError();
>  }
>  
> -unsigned long
> +PUBLIC unsigned long
>  _glthread_GetID(void)
>  {
>     return GetCurrentThreadId();
> @@ -304,7 +304,7 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
>   */
>  #ifdef BEOS_THREADS
>  
> -unsigned long
> +PUBLIC unsigned long
>  _glthread_GetID(void)
>  {
>     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
>  _glthread_GetID(void)
>  {
>     return 0;

-- 
  Time is an illusion; lunchtime, doubly so.     |/\/\|           Rafal Boni
                   -- Ford Prefect               |\/\/|      
rafal%pobox.com@localhost


Home | Main Index | Thread Index | Old Index