Skip to content

PRTE fails to link with hwloc 1.5.2 and 1.8.1 #9862

@jsquyres

Description

@jsquyres

This was found in Cisco MTT: building Open MPI master with an external hwloc 1.5.2 and 1.8.1

Here's the external hwloc 1.5.2 stderr:

$ ./configure --prefix=/home/jsquyres/bogus --with-hwloc=/home/mpiteam/hwloc-1.5.2/install
...
$ make -j 32
...
hwloc/hwloc_base_util.c: In function ‘prte_hwloc_base_filter_cpus’:
hwloc/hwloc_base_util.c:280:15: warning: implicit declaration of function ‘hwloc_get_numanode_obj_by_os_index’; did you mean ‘hwloc_get_pu_obj_by_os_index’? [-Wimplicit-function-declaration]
         obj = hwloc_get_numanode_obj_by_os_index(topo, w);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               hwloc_get_pu_obj_by_os_index
hwloc/hwloc_base_util.c:280:13: warning: assignment to ‘hwloc_obj_t’ {aka ‘struct hwloc_obj *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
         obj = hwloc_get_numanode_obj_by_os_index(topo, w);
             ^
  CCLD     libprrte.la
make[4]: Leaving directory `/home/jsquyres/git/o3/3rd-party/prrte/src'
Making all in tools/prted
make[4]: Entering directory `/home/jsquyres/git/o3/3rd-party/prrte/src/tools/prted'
  CC       prted.o
  CCLD     prted
../../../src/.libs/libprrte.so: undefined reference to `hwloc_get_numanode_obj_by_os_index'
collect2: error: ld returned 1 exit status
make[4]: *** [prted] Error 1

Note that the declaration problems are just warnings; there's a linker error that is the cause for make to fail.

Using external hwloc 1.8.1, the compile warnings / link error is the same as it is for external hwloc 1.5.2.

If the minimum hwloc version is simply higher than 1.8.1 these days, just let me know and I'll update Cisco's MTT (as long as the v5.0.x RMs are ok with increasing the minimum hwloc version -- that's a different conversation).

It would be nice to fail earlier (e.g., in configure) if we're using an hwloc that is unsupported, though.

Per discussion on the 11 Jan 2022 webex, marked this as "blocker".

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions