Maybe try this. It should disable the entire BGQ backend
cross-build-testing when Linux doesn't have enough pthread/cpuset support.
Brice
Le 21/07/2015 22:02, Paul Hargrove a écrit :
> I was, at Brice's request, trying out the hwloc-1.11.0 release on all
> sorts of x86 systems, with and without a patch for the inline asm for
> the cpuid instruction.
>
> I came across the following UNRELATED error during "make check" on a
> (very old) Red Hat 8 system (that would be something like "Fedora
> negative-3"):
>
> make[3]: Entering directory
> `/home/pcp1/phargrov/OMPI/hwloc-1.11.0-linux-x86-RH8/BLD/tests/ports'
> CC libhwloc_port_aix_la-topology-aix.lo
> CCLD libhwloc-port-aix.la <http://libhwloc-port-aix.la>
> CC libhwloc_port_bgq_la-topology-bgq.lo
> topology-bgq.c: In function `hwloc_bgq_get_thread_cpubind':
> topology-bgq.c:115: `cpu_set_t' undeclared (first use in this function)
> topology-bgq.c:115: (Each undeclared identifier is reported only once
> topology-bgq.c:115: for each function it appears in.)
> topology-bgq.c:115: parse error before "bg_set"
> topology-bgq.c:122: `bg_set' undeclared (first use in this function)
> topology-bgq.c: In function `hwloc_bgq_set_thread_cpubind':
> topology-bgq.c:151: `cpu_set_t' undeclared (first use in this function)
> topology-bgq.c:151: parse error before "bg_set"
> topology-bgq.c:168: `bg_set' undeclared (first use in this function)
> make[3]: *** [libhwloc_port_bgq_la-topology-bgq.lo] Error 1
>
> The following output from configure might be relevant:
>
> checking for sched_setaffinity... yes
> checking for sys/cpuset.h... no
> checking for cpuset_setaffinity... no
> checking for library containing pthread_getthrds_np... no
> checking for cpuset_setid... no
>
>
>
> -Paul
>
> --
> Paul H. Hargrove [email protected]
> <mailto:[email protected]>
> Computer Languages & Systems Software (CLaSS) Group
> Computer Science Department Tel: +1-510-495-2352
> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
>
>
> _______________________________________________
> hwloc-devel mailing list
> [email protected]
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel
> Link to this post:
> http://www.open-mpi.org/community/lists/hwloc-devel/2015/07/4508.php
diff --git a/src/topology-bgq.c b/src/topology-bgq.c
index 3998f31..4dfc2bf 100644
--- a/src/topology-bgq.c
+++ b/src/topology-bgq.c
@@ -15,6 +15,8 @@
#include <spi/include/kernel/location.h>
#include <spi/include/kernel/process.h>
+#ifndef HWLOC_DISABLE_BGQ_PORT_TEST
+
static int
hwloc_look_bgq(struct hwloc_backend *backend)
{
@@ -244,3 +246,5 @@ const struct hwloc_component hwloc_bgq_component = {
0,
&hwloc_bgq_disc_component
};
+
+#endif /* !HWLOC_DISABLE_BGQ_PORT_TEST */
diff --git a/tests/ports/include/bgq/spi/include/kernel/location.h b/tests/ports/include/bgq/spi/include/kernel/location.h
index 4b67abb..883bb51 100644
--- a/tests/ports/include/bgq/spi/include/kernel/location.h
+++ b/tests/ports/include/bgq/spi/include/kernel/location.h
@@ -11,4 +11,10 @@
uint32_t Kernel_ProcessorID( void );
uint32_t Kernel_MyTcoord( void );
+/* don't try to cross-build BGQ port on old Linux platforms */
+#if (!HAVE_DECL_PTHREAD_GETAFFINITY_NP) || (!HAVE_DECL_PTHREAD_SETAFFINITY_NP) || (!defined HWLOC_HAVE_CPU_SET)
+#warning Disabling BGQ port cross-build on old Linux platform
+#define HWLOC_DISABLE_BGQ_PORT_TEST
+#endif
+
#endif /* HWLOC_PORT_BGQ_KERNEL_LOCATION_H */