Update to 1.7.1:

Only a single fix: including the XFixes header to get the typedef for
PointerBarrier. Naturally, this adds a pkgconfig build-time dependency on
XFixes.

Why? The header shipped with 1.7 typedef'd PointerBarrier. If you #include
both XI and Xfixes headers, you will end up with a duplicate typedef.

This is not an issue on gcc >= 4.6 since the two typedef's are the same.
On earlier versions this will trigger an error. gcc 4.6 -pedantic-errors
will trigger the same error.

Peter Hutterer (2):
      Require XFixes for PointerBarrier, remove duplicate typedef                                                                                                                    libXi 1.7.1
This commit is contained in:
wiz 2013-04-05 09:11:57 +00:00
parent ed4f2baf5a
commit b931511c91
3 changed files with 7 additions and 49 deletions

View file

@ -1,8 +1,7 @@
# $NetBSD: Makefile,v 1.22 2013/03/14 17:37:51 drochner Exp $
# $NetBSD: Makefile,v 1.23 2013/04/05 09:11:57 wiz Exp $
#
DISTNAME= libXi-1.7
PKGREVISION= 1
DISTNAME= libXi-1.7.1
CATEGORIES= x11 devel
MASTER_SITES= ${MASTER_SITE_XORG:=lib/}
EXTRACT_SUFX= .tar.bz2
@ -40,6 +39,7 @@ BUILDLINK_API_DEPENDS.xproto+= xproto>=7.0.13
.include "../../x11/inputproto/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/libXfixes/buildlink3.mk"
.include "../../x11/xextproto/buildlink3.mk"
.include "../../x11/xproto/buildlink3.mk"

View file

@ -1,6 +1,5 @@
$NetBSD: distinfo,v 1.18 2013/03/12 11:39:49 wiz Exp $
$NetBSD: distinfo,v 1.19 2013/04/05 09:11:57 wiz Exp $
SHA1 (libXi-1.7.tar.bz2) = 1c4e992094f71103660f16329b228b081f48d48c
RMD160 (libXi-1.7.tar.bz2) = 368ed28a1562dff67ebdb6e7433205e04c62c0a0
Size (libXi-1.7.tar.bz2) = 433745 bytes
SHA1 (patch-include_X11_extensions_XInput2.h) = 6e1e5dd3aa8c4b0507aca44c8b7ae51a45cf1b69
SHA1 (libXi-1.7.1.tar.bz2) = 0737f2344c661523bd5903a727c3371cebb2b0f3
RMD160 (libXi-1.7.1.tar.bz2) = 7e871fead6d1c276480868a1099fbd05b519df30
Size (libXi-1.7.1.tar.bz2) = 434569 bytes

View file

@ -1,41 +0,0 @@
$NetBSD: patch-include_X11_extensions_XInput2.h,v 1.1 2013/03/12 11:39:49 wiz Exp $
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@who-t.net>
---
Nasty, but can't think of a better way atm.
include/X11/extensions/XInput2.h | 4 ++++
1 file changed, 4 insertions(+)
--- include/X11/extensions/XInput2.h.orig 2013-02-19 01:08:17.000000000 +0000
+++ 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