]> git.proxmox.com Git - qemu.git/commitdiff
qemu-common: Resolve vector build breakes for AltiVec
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 15 May 2013 15:46:11 +0000 (17:46 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 15 May 2013 19:57:08 +0000 (14:57 -0500)
On Mac OS X ppc, altivec.h defines "vector", leading to build breakage
when used as variable name, e.g. in tracing code.
Fix this by undefining identifiers after altivec.h inclusion.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Message-id: 1368632771-4328-1-git-send-email-andreas.faerber@web.de
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
include/qemu-common.h

index af769f5ad2d1718c0782f282d2793a86a601622e..7f18b8e1f9e5eed3c6c9530ddf99c7b56ef6129f 100644 (file)
@@ -448,12 +448,18 @@ void hexdump(const char *buf, FILE *fp, const char *prefix, size_t size);
 /* vector definitions */
 #ifdef __ALTIVEC__
 #include <altivec.h>
-#define VECTYPE        vector unsigned char
+/* The altivec.h header says we're allowed to undef these for
+ * C++ compatibility.  Here we don't care about C++, but we
+ * undef them anyway to avoid namespace pollution.
+ */
+#undef vector
+#undef pixel
+#undef bool
+#define VECTYPE        __vector unsigned char
 #define SPLAT(p)       vec_splat(vec_ld(0, p), 0)
 #define ALL_EQ(v1, v2) vec_all_eq(v1, v2)
 /* altivec.h may redefine the bool macro as vector type.
  * Reset it to POSIX semantics. */
-#undef bool
 #define bool _Bool
 #elif defined __SSE2__
 #include <emmintrin.h>