Index: include/private/misc.h =================================================================== --- include/private/misc.h (revision 3509) +++ include/private/misc.h (working copy) @@ -45,7 +45,6 @@ /** * ffsl helpers. */ - #ifdef __GNUC__ # if (__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)) @@ -303,7 +302,7 @@ hwloc_weight_long(unsigned long w) { #if HWLOC_BITS_PER_LONG == 32 -#if (__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__) >= 4) +#if ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__) >= 4)) && HWLOC_HAVE_GCC_BUILTIN != 0 return __builtin_popcount(w); #else unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); @@ -313,7 +312,7 @@ return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF); #endif #else /* HWLOC_BITS_PER_LONG == 32 */ -#if (__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__) >= 4) +#if ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__) >= 4)) && HWLOC_HAVE_GCC_BUILTIN != 0 return __builtin_popcountll(w); #else unsigned long res; Index: config/hwloc_internal.m4 =================================================================== --- config/hwloc_internal.m4 (revision 3509) +++ config/hwloc_internal.m4 (working copy) @@ -65,6 +65,11 @@ AS_HELP_STRING([--disable-pci], [Disable the PCI device discovery using libpci])) + # GCC-Builtin? + AC_ARG_ENABLE([gcc_builtin], + AS_HELP_STRING([--disable-gcc-builtin], + [Disable the use of gcc __builtin_ functions, when gcc is used])) + ])dnl #----------------------------------------------------------------------- Index: config/hwloc.m4 =================================================================== --- config/hwloc.m4 (revision 3509) +++ config/hwloc.m4 (working copy) @@ -590,6 +590,15 @@ fi HWLOC_CFLAGS="$HWLOC_CFLAGS $HWLOC_XML_CFLAGS" + # GCC-Builtin support + if test "x$enable_gcc_builtin" != "xno"; then + AC_DEFINE([HWLOC_HAVE_GCC_BUILTIN], [1], [Define to 1 if you want GCC __builtin, when available.]) + AC_SUBST([HWLOC_HAVE_GCC_BUILTIN], [1]) + else + AC_DEFINE([HWLOC_HAVE_GCC_BUILTIN], [0], [Define to 0 if you do not want GCC __builtin, when available.]) + AC_SUBST([HWLOC_HAVE_GCC_BUILTIN], [0]) + fi + # Setup HWLOC's C, CPP, and LD flags, and LIBS AC_SUBST(HWLOC_REQUIRES) AC_SUBST(HWLOC_CFLAGS) @@ -679,6 +688,7 @@ AM_CONDITIONAL([HWLOC_HAVE_CAIRO], [test "x$enable_cairo" != "xno"]) AM_CONDITIONAL([HWLOC_HAVE_XML], [test "x$enable_xml" != "xno"]) AM_CONDITIONAL([HWLOC_HAVE_LIBPCI], [test "x$enable_pci" != "xno"]) + AM_CONDITIONAL([HWLOC_HAVE_GCC_BUILTIN], [test "x$enable_gcc_builtin" != "xno"]) AM_CONDITIONAL([HWLOC_HAVE_SET_MEMPOLICY], [test "x$enable_set_mempolicy" != "xno"]) AM_CONDITIONAL([HWLOC_HAVE_MBIND], [test "x$enable_mbind" != "xno"]) AM_CONDITIONAL([HWLOC_HAVE_BUNZIPP], [test "x$BUNZIPP" != "xfalse"])