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

Jasper St. Pierre jstpierre at mecheye.net
Mon Mar 25 17:01:08 PDT 2013


I'm fine with making libXi dependent on libXfixes, and considering how you
have to include libXfixes to make a pointer barrier and then libXi to
receive events, it's already sort of dirty like that.


On Mon, Mar 25, 2013 at 7:55 PM, Peter Hutterer <peter.hutterer at who-t.net>wrote:

> 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
> >
> _______________________________________________
> 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
>



-- 
  Jasper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20130325/dde4bc7b/attachment.html>


More information about the xorg-devel mailing list