[Mesa-dev] [Bug 71506] indirect_glx.c:350: multiple definition of `indirect_create_context'

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Nov 12 15:28:25 PST 2013


https://bugs.freedesktop.org/show_bug.cgi?id=71506

--- Comment #12 from Jon TURNEY <jon.turney at dronecode.org.uk> ---
Created attachment 89110
  --> https://bugs.freedesktop.org/attachment.cgi?id=89110&action=edit
Patch to glx/tests to provide a stub __glXGetCurrentContext() function when
$(DEFINES) are such that is not a macro

(In reply to comment #9)
> Hm... does building with --enable-glx-tls help?  I wonder if the added
> __glXGetCurrentContext in fake_glx_screen.cpp is to blame.

Apparently so.  Here's the relevant output doing a build with
LDFLAGS=-Wl,--print-map

> Archive member included because of file (symbol)
> 
> ../../../src/glx/.libs/libglx.a(clientinfo.o)
>                               clientinfo_unittest.o (__glX_send_client_info)
> ../../../src/glx/.libs/libglx.a(create_context.o)
>                               create_context_unittest.o (glXCreateContextAttribsARB)
> ../../../src/glx/.libs/libglx.a(indirect_size.o)
>                               enum_sizes.o (__glCallLists_size)
> ../../../src/glx/.libs/libglx.a(indirect_init.o)
>                               indirect_api.o (__glXNewIndirectAPI)
> ../../../src/glx/.libs/libglx.a(query_renderer.o)
>                               query_renderer_unittest.o (glXQueryRendererIntegerMESA)
> ../../../src/glx/.libs/libglx.a(glxcurrent.o)
>                               ../../../src/glx/.libs/libglx.a(query_renderer.o) (__glXGetCurrentContext)
> ../../../src/glx/.libs/libglx.a(glxext.o)
>                               ../../../src/glx/.libs/libglx.a(glxcurrent.o) (__glXSetupForCommand)
> ../../../src/glx/.libs/libglx.a(glxconfig.o)
>                               ../../../src/glx/.libs/libglx.a(glxext.o) (glx_config_destroy_list)
> ../../../src/glx/.libs/libglx.a(glx_query.o)
>                               ../../../src/glx/.libs/libglx.a(glxext.o) (__glXQueryServerString)
> ../../../src/glx/.libs/libglx.a(glxhash.o)
>                               ../../../src/glx/.libs/libglx.a(glxext.o) (__glxHashCreate)
> ../../../src/glx/.libs/libglx.a(indirect_glx.o)
>                               ../../../src/glx/.libs/libglx.a(glxext.o) (indirect_create_screen)

So it seems that that the removal of the __glXGetCurrentContext stub in commit
8c5330226f391a7a29b6538851090b0ef730a239 "After adding $(DEFINES) to
AM_CPPFLAGS, the __glXGetCurrentContext wrapper function is no longer needed
and causes compile errors. Using the correct defines causes it to be a macro!"
is not always correct.

Reading src/glx/glxclient.h, __glXGetCurrentContext is not a macro if
HAVE_PTHREAD && !GLX_USE_TLS, so the stub should probably be provided in that
case.  Patch attached.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131112/06101cc7/attachment-0001.html>


More information about the mesa-dev mailing list