Fix gcc version checks for _mesa_bitcount
authorAlan Coopersmith <alan.coopersmith@oracle.com>
Fri, 21 Oct 2011 00:14:05 +0000 (17:14 -0700)
committerAlan Coopersmith <alan.coopersmith@oracle.com>
Sat, 22 Oct 2011 01:39:50 +0000 (18:39 -0700)
- Fix _GNUC__ typo in both checks
- Fix logic error in check for gcc < 3.4 that breaks for gcc 2.x & older

Without this fix, builds with gcc 3.4.x end up depending on undefined
_mesa_bitcount instead of gcc's __builtin_popcount.

NOTE: This is a candidate for the stable branches.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/imports.c
src/mesa/main/imports.h

index 345a1c53e2fb0030b65a1db1e1aaa26882086917..2469e426595e38e55093c5a82c9a99f7c9492174 100644 (file)
@@ -514,7 +514,7 @@ _mesa_ffsll(int64_t val)
 #endif
 
 #if !defined(__GNUC__) ||\
-   ((_GNUC__ == 3 && __GNUC_MINOR__ < 4) && __GNUC__ < 4)
+   ((__GNUC__ * 100 + __GNUC_MINOR__) < 304) /* Not gcc 3.4 or later */
 /**
  * Return number of bits set in given GLuint.
  */
index 20fa148fe594e40cf15020ccff1fd0fc3f8e6b36..9cb6c6cc35283c7a47956af6ef344099449d3dfe 100644 (file)
@@ -576,7 +576,7 @@ _mesa_init_sqrt_table(void);
 #define _mesa_ffs(i)  ffs(i)
 #define _mesa_ffsll(i)  ffsll(i)
 
-#if ((_GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ >= 4)
+#if ((__GNUC__ * 100 + __GNUC_MINOR__) >= 304) /* gcc 3.4 or later */
 #define _mesa_bitcount(i) __builtin_popcount(i)
 #define _mesa_bitcount_64(i) __builtin_popcountll(i)
 #else