[mvapich-discuss] failed to compile mvapich2 with upstream hwloc-2.2.0

Honggang LI honli at redhat.com
Mon Jun 8 03:43:20 EDT 2020


Hi,

http://mvapich.cse.ohio-state.edu/static/media/mvapich/MV2_CHANGELOG-2.3.4.txt
<....>
	- Update to hwloc v2.2.0
<....>

But I failed to build mvapich2 with upstream hwloc-2.2.0, because HWLOC_MEMBIND_REPLICATE
had been removed from upstream v2.0.0. hwloc commit 8ca4de965e15 removed it.

Compilation also failed with hwloc-1.11.9. Which upstream hwloc release
I need to compile mvapich2-2.3.4?

In the mvapich source tarball, there are two copies of hwloc:
[1] ./src/pm/hydra/tools/topo/hwloc/hwloc/
[2] ./contrib/hwloc

Is it possible to remove those embedded hwloc? We have a patch to remove
[2]. But it seems difficult to remove [1].

Thanks

============== error log =========

depbase=`echo tools/bootstrap/src/bsci_query_node_list.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I./include -I./tools/topo/hwloc/hwloc/include/private/autogen -I./tools/topo/hwloc/hwloc/include/hwloc/autogen  -I./include -I./mpl/include -I./mpl/include -I./tools/topo  -I./tools/bootstrap/include -I./tools/bootstrap/utils -I./tools/ckpoint -I./tools/demux -I./tools/debugger -I./pm/include -I./pm/utils -I./ui/include -I./ui/utils -DHYDRA_CONF_FILE=\"/etc/mvapich2-psm2-x86_64/mpiexec.hydra.conf\" -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/mpid/ch3/channels/psm/include -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/mpid/ch3/channels/psm/include -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/util/wrappers -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/util/wrappers -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/mpl/include -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/mpl/include -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/openpa/src -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/openpa/src -D_REENTRANT -I/root/rpmbuild/BUILD/mvapich2-2.3.4/psm2/src/mpi/romio/include  -m64 -O3 -fno-strict-aliasing -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection    -DNDEBUG -DNVALGRIND -g -O2  -MT tools/bootstrap/src/bsci_query_node_list.lo -MD -MP -MF $depbase.Tpo -c -o tools/bootstrap/src/bsci_query_node_list.lo tools/bootstrap/src/bsci_query_node_list.c &&\
mv -f $depbase.Tpo $depbase.Plo
In file included from tools/topo/hwloc/topo_hwloc.c:8:
tools/topo/hwloc/topo_hwloc.c: In function 'handle_user_binding':
tools/topo/hwloc/topo_hwloc.c:33:57: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
     HYDU_MALLOC(bind_entries, char **, num_bind_entries * sizeof(char *), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:33:5: note: in expansion of macro 'HYDU_MALLOC'
     HYDU_MALLOC(bind_entries, char **, num_bind_entries * sizeof(char *), status);
     ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c:34:61: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
     HYDU_MALLOC(bind_entry_lengths, int *, num_bind_entries * sizeof(int), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:34:5: note: in expansion of macro 'HYDU_MALLOC'
     HYDU_MALLOC(bind_entry_lengths, int *, num_bind_entries * sizeof(int), status);
     ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c:48:68: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
         HYDU_MALLOC(bind_entries[i], char *, bind_entry_lengths[i] * sizeof(char), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:48:9: note: in expansion of macro 'HYDU_MALLOC'
         HYDU_MALLOC(bind_entries[i], char *, bind_entry_lengths[i] * sizeof(char), status);
         ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c:66:34: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
                 num_bind_entries * sizeof(hwloc_bitmap_t), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:65:5: note: in expansion of macro 'HYDU_MALLOC'
     HYDU_MALLOC(HYDT_topo_hwloc_info.bitmap, hwloc_bitmap_t *,
     ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c: In function 'handle_rr_binding':
tools/topo/hwloc/topo_hwloc.c:109:50: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
                 HYDT_topo_hwloc_info.num_bitmaps * sizeof(hwloc_bitmap_t), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:108:5: note: in expansion of macro 'HYDU_MALLOC'
     HYDU_MALLOC(HYDT_topo_hwloc_info.bitmap, hwloc_bitmap_t *,
     ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c: In function 'split_count_field':
tools/topo/hwloc/topo_hwloc.c:142:3: warning: label 'fn_fail' defined but not used [-Wunused-label]
   fn_fail:
   ^~~~~~~
In file included from tools/topo/hwloc/topo_hwloc.c:8:
tools/topo/hwloc/topo_hwloc.c: In function 'handle_bitmap_binding':
tools/topo/hwloc/topo_hwloc.c:274:66: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
     HYDU_MALLOC(map_domains, hwloc_bitmap_t *, total_map_domains * sizeof(hwloc_bitmap_t), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:274:5: note: in expansion of macro 'HYDU_MALLOC'
     HYDU_MALLOC(map_domains, hwloc_bitmap_t *, total_map_domains * sizeof(hwloc_bitmap_t), status);
     ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c:275:60: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
     HYDU_MALLOC(start_pu, hwloc_obj_t *, total_map_domains * sizeof(hwloc_obj_t), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:275:5: note: in expansion of macro 'HYDU_MALLOC'
     HYDU_MALLOC(start_pu, hwloc_obj_t *, total_map_domains * sizeof(hwloc_obj_t), status);
     ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c:323:50: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
                 HYDT_topo_hwloc_info.num_bitmaps * sizeof(hwloc_bitmap_t), status);
./include/hydra.h:460:15: note: in definition of macro 'HYDU_ASSERT'
         if (!(x)) {                                                     \
               ^
tools/topo/hwloc/topo_hwloc.c:322:5: note: in expansion of macro 'HYDU_MALLOC'
     HYDU_MALLOC(HYDT_topo_hwloc_info.bitmap, hwloc_bitmap_t *,
     ^~~~~~~~~~~
tools/topo/hwloc/topo_hwloc.c: In function 'HYDT_topo_hwloc_init':
tools/topo/hwloc/topo_hwloc.c:431:40: error: 'HWLOC_MEMBIND_REPLICATE' undeclared (first use in this function); did you mean 'HWLOC_MEMBIND_MIGRATE'?
         HYDT_topo_hwloc_info.membind = HWLOC_MEMBIND_REPLICATE;
                                        ^~~~~~~~~~~~~~~~~~~~~~~
                                        HWLOC_MEMBIND_MIGRATE





More information about the mvapich-discuss mailing list