[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