SystemTopology supports hwloc 2.X as of git hash 009d0a3 "SystemTopology: add support for hwloc 2.0" of cactusutils and aacb23f "SystemTopology: list expected cache types instead of range checking" of cactusutils.
Updating hwloc and building it causes unexpected side effects when using the Intel MPI stack.
Intel’s libmpi.so library contains its own copy of hwloc and exports the hwloc functions eg hwloc_get_api_version. This causes conflicts with the copy of hwloc provided by the tarball in the hwloc ExternalLibrary thorn. A workaround is to modify MPI_LIBS to ensure that libhwloc.a is linked first (normally it appears after libmpi.so b/c MPI optinally uses hwloc):
# list hwloc here before mpich so that out own, self-build hwloc gets used and# not the one embedded in libmpichMPI_LIBS= -Wl,--exclude-libs,libhwloc.a hwloc mpi mpifort