Don't define away __attribute__ on gcc
authorAndi Kleen <ak@linux.intel.com>
Fri, 4 Jul 2014 23:43:49 +0000 (16:43 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Jul 2014 21:01:14 +0000 (14:01 -0700)
Profile feedback sets -DNO_NORETURN, which causes the compat
header file to go into a default #else block. That #else
block defines away __attribute__(). Doing so causes all
kinds of problems with the Linux and gcc system headers:
in particular it makes the xmmintrin.h headers error out,
breaking the build.

Don't define away __attribute__ when __GNUC__ is set.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-compat-util.h
index 96f55547a379bc1bdc488fa4557360bbfd1ae253..01e8695a2db88cb6fa1c80bde7a9740e6996c4c5 100644 (file)
@@ -291,10 +291,12 @@ extern char *gitbasename(char *);
 #else
 #define NORETURN
 #define NORETURN_PTR
+#ifndef __GNUC__
 #ifndef __attribute__
 #define __attribute__(x)
 #endif
 #endif
+#endif
 
 /* The sentinel attribute is valid from gcc version 4.0 */
 #if defined(__GNUC__) && (__GNUC__ >= 4)