qemu-common: Resolve vector build breakes for AltiVec
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>
This commit is contained in:
		
							parent
							
								
									262f27b93f
								
							
						
					
					
						commit
						8593e05087
					
				@ -448,12 +448,18 @@ void hexdump(const char *buf, FILE *fp, const char *prefix, size_t size);
 | 
				
			|||||||
/* vector definitions */
 | 
					/* vector definitions */
 | 
				
			||||||
#ifdef __ALTIVEC__
 | 
					#ifdef __ALTIVEC__
 | 
				
			||||||
#include <altivec.h>
 | 
					#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 SPLAT(p)       vec_splat(vec_ld(0, p), 0)
 | 
				
			||||||
#define ALL_EQ(v1, v2) vec_all_eq(v1, v2)
 | 
					#define ALL_EQ(v1, v2) vec_all_eq(v1, v2)
 | 
				
			||||||
/* altivec.h may redefine the bool macro as vector type.
 | 
					/* altivec.h may redefine the bool macro as vector type.
 | 
				
			||||||
 * Reset it to POSIX semantics. */
 | 
					 * Reset it to POSIX semantics. */
 | 
				
			||||||
#undef bool
 | 
					 | 
				
			||||||
#define bool _Bool
 | 
					#define bool _Bool
 | 
				
			||||||
#elif defined __SSE2__
 | 
					#elif defined __SSE2__
 | 
				
			||||||
#include <emmintrin.h>
 | 
					#include <emmintrin.h>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user