Le 28/09/2011 17:55, Blosch, Edwin L a écrit :

I am getting some undefined references in building OpenMPI 1.5.4 and I would like to know how to work around it.

 

The errors look like this:

 

/scratch1/bloscel/builds/release/openmpi-intel/lib/libmpi.a(topology-linux.o): In function `hwloc_linux_alloc_membind':

topology-linux.c:(.text+0x1da): undefined reference to `mbind'

topology-linux.c:(.text+0x213): undefined reference to `mbind'

/scratch1/bloscel/builds/release/openmpi-intel/lib/libmpi.a(topology-linux.o): In function `hwloc_linux_set_area_membind':

topology-linux.c:(.text+0x414): undefined reference to `mbind'

topology-linux.c :(.text+0x46c): undefined reference to `mbind'

/scratch1/bloscel/builds/release/openmpi-intel/lib/libmpi.a(topology-linux.o): In function `hwloc_linux_get_thisthread_membind':

topology-linux.c:(.text+0x4ff): undefined reference to `get_mempolicy'

topology-linux.c:(.text+0x5ff): undefined reference to `get_mempolicy'

/scratch1/bloscel/builds/release/openmpi-intel/lib/libmpi.a(topology-linux.o): In function `hwloc_linux_set_thisthread_membind':

topology-linux.c:(.text+0x7b5): undefined reference to `migrate_pages'

topology-linux.c:(.text+0x7e9): undefined reference to `set_mempolicy'

topology-linux.c:(.text+0x831): undefined reference to `set_mempolicy'

make: *** [main] Error 1

 

S ome  configure output that is probably relevant:

 

checking numaif.h usability... yes

checking numaif.h presence... yes

checking for numaif.h... yes

checking for set_mempolicy in -lnuma... yes

checking for mbind in -lnuma... yes

checking for migrate_pages in -lnuma... yes

 

The FAQ says that I should have to give –with-libnuma explicitly, but I did not do that.   Is there a problem with configure? Or the FAQ?  Or perhaps the system has a configuration peculiarity?


Last time somebody complained about this, he was trying to build fully-static binaries but libnuma was only available as dynamic libs. Configure only checks for dynamic libs. So it thinks libnuma is available while the required static libnuma was actually missing, causing make to fail later.

How did you configure and build, what's your distro, and do you have libnume static/dynamic installed ?

Brice