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

Reply via email to