Thanks to everyone who contributed.
I no longer think this is Open MPI's problem. This system is just
stupid. Everything's 64 bit (which various probes with file confirm).
There's no icc, so I can't test with that. gcc finds libnuma without
-L. (Though a simple gcc -lnuma -Wl,-t reports that libnuma is found
through the rather convoluted
ifort -lnuma can't find libnuma.so, but then ifort -L/usr/lib64 -lnuma
can't find it either! While everything else points to some mix up with
linking search paths, that last result confuses me greatly. (Unless
there's some subtlety with libnuma.so being a link to libnuma.so.1.)
I can compile my app by replicating mpif90's --showme output directly on
the command line, with -lnuma replaced explicitly
with /usr/lib64/libnuma.so. Then, even though I've told ifort -static,
ldd gives the three lines:
libnuma.so.1 => /usr/lib64/libnuma.so.1 (0x00002b3f58a3c000)
libc.so.6 => /lib64/tls/libc.so.6 (0x00002b3f58b42000)
/lib/ld64.so.1 => /lib/ld64.so.1 (0x00002b3f58925000)
While I don't understand what's going on here, I now have a working
binary. It's the only app I use on this machine, so I'm no longer
concerned. All other machines on which I use Open MPI work as expected
out of the box. My workaround here is sufficient.
Once more, thanks for the suggestions. I think this machine is just