-
Notifications
You must be signed in to change notification settings - Fork 56
Closed
Description
Hi! I'm getting the following errors when trying to build charm-8.0.0:
[ 27%] Building CXX object CMakeFiles/converse.dir/src/conv-core/cpthreads.C.o
[ 27%] Building CXX object CMakeFiles/converse.dir/src/conv-core/cpuaffinity.C.o
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C: In function ‘void CmiInitHwlocTopology()’:
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:53:5: error: ‘cmi_hwloc_topology_init’ was not declared in this scope; did you mean ‘hwloc_topology_init’?
53 | cmi_hwloc_topology_init(&topology);
| ^~~~~~~~~~~~~~~~~~~~~~~
| hwloc_topology_init
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:54:5: error: ‘cmi_hwloc_topology_load’ was not declared in this scope; did you mean ‘hwloc_topology_load’?
54 | cmi_hwloc_topology_load(topology);
| ^~~~~~~~~~~~~~~~~~~~~~~
| hwloc_topology_load
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:57:13: error: ‘cmi_hwloc_get_type_depth’ was not declared in this scope; did you mean ‘hwloc_get_type_depth’?
57 | depth = cmi_hwloc_get_type_depth(topology, HWLOC_OBJ_PACKAGE);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| hwloc_get_type_depth
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:58:77: error: ‘cmi_hwloc_get_nbobjs_by_depth’ was not declared in this scope; did you mean ‘hwloc_get_nbobjs_by_depth’?
58 | CmiHwlocTopologyLocal.num_sockets = depth != HWLOC_TYPE_DEPTH_UNKNOWN ? cmi_hwloc_get_nbobjs_by_depth(topology, depth) : 1;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| hwloc_get_nbobjs_by_depth
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:72:51: error: ‘cmi_hwloc_topology_get_flags’ was not declared in this scope; did you mean ‘hwloc_topology_get_flags’?
72 | cmi_hwloc_topology_set_flags(legacy_topology, cmi_hwloc_topology_get_flags(legacy_topology) | HWLOC_TOPOLOGY_FLAG_INCLUDE_DISALLOWED);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| hwloc_topology_get_flags
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:72:5: error: ‘cmi_hwloc_topology_set_flags’ was not declared in this scope; did you mean ‘hwloc_topology_set_flags’?
72 | cmi_hwloc_topology_set_flags(legacy_topology, cmi_hwloc_topology_get_flags(legacy_topology) | HWLOC_TOPOLOGY_FLAG_INCLUDE_DISALLOWED);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| hwloc_topology_set_flags
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C: In function ‘int set_process_affinity(hwloc_cpuset_t)’:
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:142:7: error: ‘cmi_hwloc_set_proc_cpubind’ was not declared in this scope; did you mean ‘hwloc_set_proc_cpubind’?
142 | if (cmi_hwloc_set_proc_cpubind(topology, process, cpuset, HWLOC_CPUBIND_PROCESS|HWLOC_CPUBIND_STRICT))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| hwloc_set_proc_cpubind
/home/maximm/easybuild/official_fork/easybuild-easyconfigs/easybuild/easyconfigs/n/NAMD/tmp/NAMD_3.0_Source/charm-8.0.0/src/conv-core/cpuaffinity.C:146:5: error: ‘cmi_hwloc_bitmap_asprintf’ was not declared in this scope; did you mean ‘hwloc_bitmap_asprintf’?
146 | cmi_hwloc_bitmap_asprintf(&str, cpuset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| hwloc_bitmap_asprintfThis is just a snippet, the rest of the errors are similar, saying that thecmi_hwloc_XXX function is not declared.
The build command I use is the following one:
./build charm++ mpi-linux-x86_64 mpicxx --with-production --with-numa -j1 '-O2 -ftree-vectorize -O2 -mavx2 -mfma -fno-math-errno -fPIC -DMPICH_IGNORE_CXX_SEEK -fpermissive'The buildold script works just fine, so the problem is in the build script and the CMake logic, I guess. I see that the hwloc.cmake calls for the contrib/hwloc/configure script and all the logic for setting up the correct prefix is implemented there: https://github.com/charmplusplus/charm/blob/c92494d89be08e1f4c1d556da34ac74b5bd2eb0f/contrib/hwloc/configure#L20306-L20316
Any suggestions how to make build script work?
Packages versions:
- Charm 8.0.0
- CMake 3.29.3
- GCC 13.3.0
- OpenMPI 5.0.3
Metadata
Metadata
Assignees
Labels
No labels