Le 07/12/2011 23:12, Brice Goglin a écrit :
>> So my question is, are there plans to add a configure switch in hwloc
>> to disable libnuma??
> Hello,
> There's no plan, but that's certainly possible if multiple people keep
> facing this issue.

Here's a patch that implements --disable-libnuma. Unless somebody
doesn't like it, I'll push this to trunk later today and provide some
backport patches. Not sure we would want this in 1.3.1 too.

Brice

diff --git a/config/hwloc.m4 b/config/hwloc.m4
index 9c0208e..a3ef25c 100644
--- a/config/hwloc.m4
+++ b/config/hwloc.m4
@@ -486,25 +486,6 @@ EOF])
     AC_CHECK_HEADERS([sys/utsname.h])
     AC_CHECK_FUNCS([uname])

-    # set_mempolicy and mbind support   
-    AC_CHECK_HEADERS([numaif.h], [
-      AC_CHECK_LIB([numa], [set_mempolicy], [
-	enable_set_mempolicy=yes
-	AC_SUBST([HWLOC_LINUX_LIBNUMA_LIBS], ["-lnuma"])
-	AC_DEFINE([HWLOC_HAVE_SET_MEMPOLICY], [1], [Define to 1 if set_mempolicy is available.])
-      ])
-      AC_CHECK_LIB([numa], [mbind], [
-	enable_mbind=yes
-	AC_SUBST([HWLOC_LINUX_LIBNUMA_LIBS], ["-lnuma"])
-	AC_DEFINE([HWLOC_HAVE_MBIND], [1], [Define to 1 if mbind is available.])
-      ])
-      AC_CHECK_LIB([numa], [migrate_pages], [
-	enable_migrate_pages=yes
-	AC_SUBST([HWLOC_LINUX_LIBNUMA_LIBS], ["-lnuma"])
-	AC_DEFINE([HWLOC_HAVE_MIGRATE_PAGES], [1], [Define to 1 if migrate_pages is available.])
-      ])
-    ])
-
     AC_CHECK_HEADERS([pthread_np.h])
     AC_CHECK_DECLS([pthread_setaffinity_np],,[:],[[
       #include <pthread.h>
@@ -524,6 +505,47 @@ EOF])
       AC_DEFINE([HWLOC_HAVE_PTHREAD_GETTHRDS_NP], 1, `Define to 1 if you have pthread_getthrds_np')
     )

+    # libnuma support
+    hwloc_libnuma_happy=no
+    if test "x$enable_libnuma" != "xno"; then
+        hwloc_libnuma_happy=yes
+        AC_CHECK_HEADERS([numaif.h], [
+            AC_CHECK_LIB([numa], [numa_available], [HWLOC_LINUX_LIBNUMA_LIBS="-lnuma"], [hwloc_libnuma_happy=no])
+        ], [hwloc_libnuma_happy=no])
+    fi
+    AC_SUBST(HWLOC_LINUX_LIBNUMA_LIBS)
+    # If we asked for libnuma support but couldn't deliver, fail
+    AS_IF([test "$enable_libnuma" = "yes" -a "$hwloc_libnuma_happy" = "no"],
+          [AC_MSG_WARN([Specified --enable-libnuma switch, but could not])
+           AC_MSG_WARN([find appropriate support])
+           AC_MSG_ERROR([Cannot continue])])
+    if test "x$hwloc_libnuma_happy" = "xyes"; then
+      tmp_save_LIBS="$LIBS"
+      LIBS="$LIBS $HWLOC_LINUX_LIBNUMA_LIBS"
+
+      AC_CHECK_LIB([numa], [set_mempolicy], [
+	enable_set_mempolicy=yes
+	AC_DEFINE([HWLOC_HAVE_SET_MEMPOLICY], [1], [Define to 1 if set_mempolicy is available.])
+      ])
+      AC_CHECK_LIB([numa], [mbind], [
+	enable_mbind=yes
+	AC_DEFINE([HWLOC_HAVE_MBIND], [1], [Define to 1 if mbind is available.])
+      ])
+      AC_CHECK_LIB([numa], [migrate_pages], [
+	enable_migrate_pages=yes
+	AC_DEFINE([HWLOC_HAVE_MIGRATE_PAGES], [1], [Define to 1 if migrate_pages is available.])
+      ])
+
+      HWLOC_REQUIRES="libnuma $HWLOC_REQUIRES"
+      AC_DEFINE([HWLOC_HAVE_LIBNUMA], [1], [Define to 1 if you have the `libnuma' library.])
+      AC_SUBST([HWLOC_HAVE_LIBNUMA], [1])
+      CFLAGS="$tmp_save_CFLAGS"
+      LIBS="$tmp_save_LIBS"
+    else
+      AC_SUBST([HWLOC_HAVE_LIBNUMA], [0])
+    fi
+    HWLOC_CFLAGS="$HWLOC_CFLAGS $HWLOC_LIBNUMA_CFLAGS"
+
     # PCI support
     hwloc_pci_happy=no
     if test "x$enable_pci" != "xno"; then
diff --git a/config/hwloc_internal.m4 b/config/hwloc_internal.m4
index daee2a6..2eb8770 100644
--- a/config/hwloc_internal.m4
+++ b/config/hwloc_internal.m4
@@ -65,6 +65,11 @@ AC_DEFUN([HWLOC_DEFINE_ARGS],[
                   AS_HELP_STRING([--disable-pci],
                                  [Disable the PCI device discovery using libpci]))

+    # libnuma
+    AC_ARG_ENABLE([libnuma],
+                  AS_HELP_STRING([--disable-libnuma],
+                                 [Disable the linux libnuma]))
+
 ])dnl

 #-----------------------------------------------------------------------

Reply via email to