Problem compiling HDF5 with PGI 15.7 and OpenMPI 1.8.8

Hi

I’ve compiled OpenMPI 1.8.8 using PGI 15.7 and tried to use them both to compile HDF5 1.8.15-patch1 It fails with

CC H5.lo
PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 63)
PGC-I-0222-Redundant definition for symbol extension (/usr/include/sys/cdefs.h: 339)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5.c: 150)
PGC-W-0095-Type cast required for this conversion (H5.c: 216)
PGC-W-0155-Pointer value created from a nonlong integral type (H5.c: 216)
PGC-W-0095-Type cast required for this conversion (H5.c: 717)
PGC-W-0155-Pointer value created from a nonlong integral type (H5.c: 717)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5.c: 776)
PGC/x86-64 Linux 15.7-0: compilation completed with warnings
PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 63)
PGC-I-0222-Redundant definition for symbol extension (/usr/include/sys/cdefs.h: 339)
CC H5checksum.lo
PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 63)
PGC-I-0222-Redundant definition for symbol extension (/usr/include/sys/cdefs.h: 339)
PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 63)
PGC-I-0222-Redundant definition for symbol extension (/usr/include/sys/cdefs.h: 339)
CC H5dbg.lo
PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 63)
PGC-I-0222-Redundant definition for symbol extension (/usr/include/sys/cdefs.h: 339)
PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 63)
PGC-I-0222-Redundant definition for symbol extension (/usr/include/sys/cdefs.h: 339)
CC H5system.lo
PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 63)
PGC-I-0222-Redundant definition for symbol extension (/usr/include/sys/cdefs.h: 339)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 204)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 208)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 218)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 222)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 351)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 355)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 359)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 361)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 367)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 370)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 375)
PGC-S-0039-Use of undeclared variable errno (H5system.c: 482)
PGC-S-0039-Use of undeclared variable ERANGE (H5system.c: 542)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 794)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 805)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 810)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #1 (H5system.c: 819)
PGC-I-0155-Long value is passed to a nonprototyped function - argument #3 (H5system.c: 825)
PGC-W-0095-Type cast required for this conversion (H5system.c: 853)
PGC-W-0155-Pointer value created from a nonlong integral type (H5system.c: 853)
PGC/x86-64 Linux 15.7-0: compilation completed with severe errors

Configure command is

env CC=mpicc FC=mpif90 LDFLAGS=-lnuma ./configure --enable-fortran --enable-fortran2003 --enable-production --enable-unsupported --enable-parallel --with-zlib --with-szlib --prefix=$install_dir

Can anyone offer advice please?

Cheers,
Mike

Hi Mike,

I sent this off to the engineer who builds all of our 3rd party libraries to see if he can recreate the issue and determine the problem. Though, it probably wont be until next week before he can get back to me.

Best Regards,
Mat

Thanks, Mat.

In case it helps, here is how OpenMPI 1.8.8 was compiled
https://github.com/rcgsheffield/iceberg_software/blob/master/software/install_scripts/mpi/pgi/openmpi/install_pgi_openMPI_1.8.8.sh

Cheers,
Mike

You probably are aware of this, but make sure CPP does not point to pgprepro. HDF5 really doesn’t seem to like it. Usually though that leads to an INT64 issue or something.

@TheMatt - I’m using the environment module file created by the PGI Compiler installer and that does set CPP to point to pgprepro. It caused a problem with the OpenMPI install and I found a forum post that said to set CPP=cpp. I did this and it worked.

I was about to say ‘it didn’t work with HDF5’ and wanted to show the error message but when I used the following configure

env CC=mpicc FC=mpif90 LDFLAGS=-lnuma CPP=cpp ./configure --enable-fortran --enable-fortran2003 --enable-production --enable-unsupported --enable-parallel --enable-cxx --with-zlib --with-szlib --prefix=$install_dir

It worked perfectly! Heaven knows what I had tried when I thought I had tried this.

Thanks for the pointer.

Best Wishes,
Mike