[PATCH libXi] Don't typedef PointerBarrier if we haven't included XFixes headers first

Peter Hutterer peter.hutterer at who-t.net
Mon Mar 25 16:55:00 PDT 2013


ping. any opinions? The only other alternative I can think of here is to
make libXi dependent on libXfixes.

Cheers,
   Peter

On Tue, Mar 12, 2013 at 11:00:26AM +1000, Peter Hutterer wrote:
> gcc 4.6 won't complain about that, but earlier versions do:
> http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412
> 
> gcc 4.6 with -pedantic-errors shows:
> /opt/xorg/include/X11/extensions/XInput2.h:172:13: error: redefinition of
> typedef ‘PointerBarrier’ [-pedantic]
> In file included from test.c:1:0:
> /opt/xorg/include/X11/extensions/Xfixes.h:255:13: note: previous declaration
> of ‘PointerBarrier’ was here
> 
> PointerBarriers is defined in XFixes.h and here. So hook onto the only thing
> we can in Xfixes.h and use that to figure out if we need to typedef
> ourselves. XFIXES_MAJOR is defined in xfixeswire.h, so we can't hook onto it
> directly.
> 
> Adding this ifdef here means we have include order dependency of XFixes.h
> before XInput2.h unless we add a similar ifdef to the fixes headers.
> 
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> Nasty, but can't think of a better way atm.
> 
>  include/X11/extensions/XInput2.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/include/X11/extensions/XInput2.h b/include/X11/extensions/XInput2.h
> index a746012..8de4aeb 100644
> --- a/include/X11/extensions/XInput2.h
> +++ b/include/X11/extensions/XInput2.h
> @@ -169,7 +169,11 @@ typedef struct
>      int                 status;
>  } XIGrabModifiers;
>  
> +/* Xfixes.h typedefs PointerBarrier and gcc pre-4.6 (or with -pedantic) will
> +   complain about the duplicate typedef */
> +#if !defined _XFIXES_H_ || XFIXES_MAJOR < 5
>  typedef XID PointerBarrier;
> +#endif
>  typedef unsigned int BarrierEventID;
>  
>  typedef struct
> -- 
> 1.8.1.4
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
> 


More information about the xorg-devel mailing list