AFTER fixing the inline asm problem detailed in https://www.open-mpi.org/community/lists/devel/2016/05/18886.php, I still cannot build with xlc. The issue arises in the pmix code and originates from a disagreement between pmix_hash_table.h and pmix_hash_table.c.
The header declares 8 functions with a return type of "pmix_status_t" (which is an enum), while pmix_hash_table.c defines the same functions with a return type of "int". Meanwhile 1 function has the "opposite" problem (integer decl vs enum defn). The errors seen: libtool: compile: xlc -DHAVE_CONFIG_H -I. -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix -I./include/private/autogen -I./include/pmix/autogen -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/BLD/opal/mca/pmix/pmix112/pmix -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/include -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/BLD/opal/mca/pmix/pmix112/pmix/include -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2 -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/BLD -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/include -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/BLD/opal/include -D_REENTRANT -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/hwloc/hwloc1112/hwloc/include -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/BLD/opal/mca/hwloc/hwloc1112/hwloc/include -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/event/libevent2022/libevent -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/event/libevent2022/libevent/include -I/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/BLD/opal/mca/event/libevent2022/libevent/include -q64 -g -c /home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c -Wp,-qmakedep=gcc,-MFsrc/class/.deps/pmix_hash_table.TPlo -qpic -DPIC -o src/class/.libs/pmix_hash_table.o "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 73.15: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_init differs from previous declaration on line 73 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 73.15: 1506-050 (I) Return type "enum {...}" in redeclaration is not compatible with the previous return type "int". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 299.5: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_remove_value_uint64 differs from previous declaration on line 181 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 299.5: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 365.5: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_get_value_ptr differs from previous declaration on line 196 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 365.5: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 392.5: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_set_value_ptr differs from previous declaration on line 209 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 392.5: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 433.5: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_remove_value_ptr differs from previous declaration on line 220 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 433.5: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 466.1: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_get_first_key_uint32 differs from previous declaration on line 245 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 466.1: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 493.1: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_get_next_key_uint32 differs from previous declaration on line 263 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 493.1: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 538.1: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_get_first_key_uint64 differs from previous declaration on line 281 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 538.1: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 565.1: 1506-343 (S) Redeclaration of opal_pmix_pmix112_pmix_hash_table_get_next_key_uint64 differs from previous declaration on line 299 of "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.h". "/home/hargrove/SCRATCH/OMPI/openmpi-2.0.0rc2-linux-ppc64-xlc-12.1/openmpi-2.0.0rc2/opal/mca/pmix/pmix112/pmix/src/class/pmix_hash_table.c", line 565.1: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "enum {...}". make[4]: *** [src/class/pmix_hash_table.lo] Error 1 I suspect that all of these functions should be returning the enum type. -Paul -- Paul H. Hargrove phhargr...@lbl.gov Computer Languages & Systems Software (CLaSS) Group Computer Science Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900