hpc / ior

IOR and mdtest
Other
377 stars 165 forks source link

Configuring ior with --with-gpfs=/usr/lpp/mmfs does not succeed #131

Open chrissamuel opened 5 years ago

chrissamuel commented 5 years ago

Hi there,

This might be a PEBCAK issue but I'm struggling to build IOR with GPFS support on Cori at NERSC.

csamuel@cori08:~/TESTS/IO/IOR/ior-3.2.0> ./configure --with-gpfs=/usr/lpp/mmfs
[...]
checking gpfs.h usability... yes
checking gpfs.h presence... yes
checking for gpfs.h... yes
checking gpfs_fcntl.h usability... yes
checking gpfs_fcntl.h presence... yes
checking for gpfs_fcntl.h... yes
checking for library containing gpfs_fcntl... no
configure: error: Library containing gpfs_fcntl symbols not found

From what I can see this is because configure fails to set the library search path to use /usr/lpp/mfs/lib:

configure:5326: cc -std=gnu99 -o conftest -g -O2   conftest.c -lgpfs   >&5
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lgpfs
configure:5326: $? = 1

It's vaguely related to bug #130 in that for RPM based systems the location is extremely likely to be /usr/lpp/mmfs/lib as the RPM's are not relocatable, but even so configure should probably use the arguments given to --with-gpfs to build a library search path from.

Please let me know if I'm missing something here!

All the best, Chris

chrissamuel commented 5 years ago

As Glenn pointed out in bug #130 this is because the compilers on a Cray default to static linking and GPFS for Linux does not provide static libraries, only shared libraries.

So my only thought here is that it would be handy for configure to spot this conflict and report it to the user, rather than just saying the compilation failed.

JulianKunkel commented 4 years ago

Is this issue still to be resolved? Maybe additional flags for configure could simply go to the documentation? I have unfortunately no system to test this.

JulianKunkel commented 3 years ago

@chrissamuel @glennklockwood Any suggestion?

glennklockwood commented 3 years ago

This should be easy enough to test for in autoconf. I'll take this on.

roblatham00 commented 3 years ago

It looks like gpfs libraries are installed on the cori login nodes (but not on the compute nodes

glennklockwood commented 3 years ago

NERSC has an internal ticket to address this which will probably result in the gpfs libraries being removed from everywhere. This issue sounds just like a problem with autoconf detecting weirdness in how IBM provides only dynamic versions of the library, causing static builds to fail.