[PATCH 2/3] Restore extern to the declaration of __glXDRISWRastProvider

Peter Hutterer peter.hutterer at who-t.net
Tue Jul 24 00:06:44 PDT 2012


On Thu, Jul 12, 2012 at 01:30:22PM +0100, Jon TURNEY wrote:
> b86aa74 dropped the 'extern' from the declaration of __glXDRISWRastProvider
> 
> This turns out to be important to me, as without it, the final link only gets
> the tentative definition of __glXDRISWRastProvider implied by the declaration,
> and not the proper one from glxdriswrast.c, presumably because nothing else
> references anything in the object that file generates.
> ---
>  glx/glxserver.h |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/glx/glxserver.h b/glx/glxserver.h
> index d9b106b..1021aec 100644
> --- a/glx/glxserver.h
> +++ b/glx/glxserver.h
> @@ -97,7 +97,7 @@ struct __GLXprovider {
>      const char *name;
>      __GLXprovider *next;
>  };
> -__GLXprovider __glXDRISWRastProvider;
> +extern __GLXprovider __glXDRISWRastProvider;
>  
>  void GlxPushProvider(__GLXprovider * provider);
>  
> -- 
> 1.7.9

Not sure why but this triggers
https://bugs.freedesktop.org/show_bug.cgi?id=52402

backtrace shows __glXDisp_QueryServerString which calls validGlxScreen() and
into the screen privates and triggers 
X: ../include/privates.h:123: dixGetPrivateAddr: Assertion `key->initialized'

unlikely to be the cause, more the trigger, but maybe someone less tired
than me could look at it.
 
Cheers,
  Peter


More information about the xorg-devel mailing list