Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0.0rc1: XLC build errors with ompi_datatype_module.c #3811

Closed
jsquyres opened this issue Jul 5, 2017 · 8 comments
Closed

v3.0.0rc1: XLC build errors with ompi_datatype_module.c #3811

jsquyres opened this issue Jul 5, 2017 · 8 comments

Comments

@jsquyres
Copy link
Member

jsquyres commented Jul 5, 2017

From @PHHargrove on https://www.mail-archive.com/[email protected]/msg20275.html:

With xlc-12.1 and 13.1 (big-endian PPC64, both LP64 and ILP32) there are numerous problems compiling with ompi_datatype_module.c (a prefix of which are shown below).

libtool: compile:  xlc -DHAVE_CONFIG_H -I. -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype -I../../opal/include -I../../ompi/include -I../../oshmem/include -I../../opal/mca/hwloc/hwloc1113/hwloc/include/private/autogen -I../../opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/autogen -I../../ompi/mpiext/cuda/c -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1 -I../.. -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/opal/include -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/orte/include -I../../orte/include -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/include -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/oshmem/include -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/BLD/opal/mca/event/libevent2022/libevent/include -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/opal/mca/event/libevent2022/libevent -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/opal/mca/event/libevent2022/libevent/include -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/BLD/opal/mca/hwloc/hwloc1113/hwloc/include -I/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/opal/mca/hwloc/hwloc1113/hwloc/include -D_REENTRANT -q32 -g -c /home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c -Wp,-qmakedep=gcc,-MF.deps/ompi_datatype_module.TPlo  -qpic -DPIC -o .libs/ompi_datatype_module.o
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 166.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 166.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 166.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 166.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 167.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 167.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 167.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 167.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 167.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 168.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 168.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 168.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 168.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 169.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 169.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 169.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 169.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 170.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 170.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 170.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 170.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 195.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 195.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 195.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 195.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 200.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 200.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 200.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 200.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 205.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 205.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 205.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 205.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 210.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 210.54: 1506-196 (W) Initialization between types "unsigned int*" and "int" is not allowed.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 210.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t".
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 210.54: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members.
"/home/hargrove/SCRATCH/OMPI/openmpi-3.0.0rc1-linux-ppc32-xlc-12.1/openmpi-3.0.0rc1/ompi/datatype/ompi_datatype_module.c", line 220.54: 1506-514 (S) Array element designator cannot be applied to an object of type "struct opal_datatype_t"
[...output truncated...]
@jsquyres jsquyres added the bug label Jul 5, 2017
@jsquyres jsquyres added this to the v3.0.0 milestone Jul 5, 2017
@jjhursey jjhursey self-assigned this Jul 5, 2017
@ggouaillardet
Copy link
Contributor

@PHHargrove can you please give the inline path a try ?

diff --git a/ompi/datatype/ompi_datatype_internal.h b/ompi/datatype/ompi_datatype_internal.h
index 4323f0c..f4f5848 100644
--- a/ompi/datatype/ompi_datatype_internal.h
+++ b/ompi/datatype/ompi_datatype_internal.h
@@ -467,7 +467,7 @@ extern const ompi_datatype_t* ompi_datatype_basicDatatypes[OMPI_DATATYPE_MPI_MAX
         .name = OPAL_DATATYPE_INIT_NAME(TYPE ## SIZE),                               \
         .desc = OPAL_DATATYPE_INIT_DESC_PREDEFINED(TYPE ## SIZE),                    \
         .opt_desc = OPAL_DATATYPE_INIT_DESC_PREDEFINED(TYPE ## SIZE),                \
-        .ptypes = OPAL_DATATYPE_INIT_PTYPES_ARRAY(TYPE ## SIZE)                      \
+        .ptypes = OPAL_DATATYPE_INIT_PTYPES_ARRAY_UNAVAILABLE                        \
     }
 
 #define OMPI_DATATYPE_INIT_PREDEFINED_BASIC_TYPE_FORTRAN( TYPE, NAME, SIZE, ALIGN, FLAGS ) \

@bosilca does that sound like the right fix ?

@PHHargrove
Copy link
Member

@ggouaillardet
That patch did the trick on the three systems where I observed the problem (xlc-12.1 LP64 and ILP32 builds, xlc-13.1 LP64).

On the xlc-12.1 system the LP64 build gets all the way to a successful make check and run of ring_c, etc.

The xlc-12.1/ILP32 and xlc13-1/LP64 builds each yielded a new issue ☹️ , #3816 and
#3817 respectively.

@jsquyres
Copy link
Member Author

jsquyres commented Jul 7, 2017

@ggouaillardet Did you file a PR corresponding to the patch you included above?

@ggouaillardet
Copy link
Contributor

@jsquyres not yet, i am waiting for some feedback from @bosilca first

@jsquyres
Copy link
Member Author

jsquyres commented Jul 7, 2017

👍

@PHHargrove
Copy link
Member

Still present in 3.0.0rc2

@gpaulsen
Copy link
Member

Josh Hursey is addressing this by discontinuing support for PPC BigEndian in configure for v3.x
#4090

@jjhursey
Copy link
Member

This has been resolved by PR #4103

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants