Skip to content

Conversation

@bwbarrett
Copy link
Member

The portable platform file hasn't been updated since Feb 10, 2010 (3ca8adb), so it was a bit out of date, including not understanding CLANG and the Nvidia-rebranded PGI compiler, so pull in the latest version from GASNet. Update some of the infrastructure so that we can pull in the GASNet version unchanged and make future updates easier.

This should allow us to pull in #9398.

Fix escapling and simplify handling of literals in the OPAL_CHECK_-
COMPILER_VERSION_ID macro.  The macros were under-escaped,, which
was not causing problems but was also wrong.  The use of m4_lower()
meant that the argument to the helper macros had to be a string
literal, so enforce that requirement explicitly and then remove
the evals that are unnecessary given the lack of shell expansion.

Signed-off-by: Brian Barrett <[email protected]>
@bwbarrett bwbarrett requested a review from jsquyres October 5, 2021 03:19
@jsquyres
Copy link
Member

jsquyres commented Oct 5, 2021

Got some compile warnings. In ompi_info (similar ones appear in the op/avx component):

In file included from param.c:50:0:
../../../ompi/include/mpi_portable_platform.h:31:5: warning: "_PORTABLE_PLATFORM_H" is not defined [-Wundef]
 #if _PORTABLE_PLATFORM_H != PLATFORM_HEADER_VERSION \
     ^
../../../ompi/include/mpi_portable_platform.h:31:29: warning: "PLATFORM_HEADER_VERSION" is not defined [-Wundef]
 #if _PORTABLE_PLATFORM_H != PLATFORM_HEADER_VERSION \
                             ^
../../../ompi/include/mpi_portable_platform.h:32:9: warning: "PLATFORM_HEADER_VERSION" is not defined [-Wundef]
      || PLATFORM_HEADER_VERSION < 16
         ^
In file included from param.c:50:0:
../../../ompi/include/mpi_portable_platform.h:1056:7: warning: "_PLATFORM_ARCH_BIG_ENDIAN" is not defined [-Wundef]
 #elif _PLATFORM_ARCH_BIG_ENDIAN
       ^
../../../ompi/include/mpi_portable_platform.h:1091:7: warning: "_PLATFORM_ARCH_32" is not defined [-Wundef]
 #elif _PLATFORM_ARCH_32
       ^

And in oshmem_info:


../../../ompi/include/mpi_portable_platform.h:32:9: warning: "PLATFORM_HEADER_VERSION" is not defined [-Wundef]
      || PLATFORM_HEADER_VERSION < 16
         ^
In file included from param.c:43:0:
../../../ompi/include/mpi_portable_platform.h:1056:7: warning: "_PLATFORM_ARCH_BIG_ENDIAN" is not defined [-Wundef]
 #elif _PLATFORM_ARCH_BIG_ENDIAN
       ^
../../../ompi/include/mpi_portable_platform.h:1091:7: warning: "_PLATFORM_ARCH_32" is not defined [-Wundef]
 #elif _PLATFORM_ARCH_32
       ^
param.c: In function 'oshmem_info_do_config':
param.c:150:19: error: implicit declaration of function '_STRINGIFY' [-Werror=implicit-function-declaration]
                   _STRINGIFY(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME));
                   ^
In file included from ../../../ompi/include/ompi_config.h:29:0,
                 from ../../../oshmem/include/oshmem_config.h:21,
                 from param.c:18:
../../../opal/include/opal_config.h:1691:49: error: 'GNU' undeclared (first use in this function)
 #define OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME GNU
                                                 ^
param.c:150:30: note: in expansion of macro 'OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME'
                   _STRINGIFY(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME));
                              ^
../../../opal/include/opal_config.h:1691:49: note: each undeclared identifier is reported only once for each function it appears in
 #define OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME GNU
                                                 ^
param.c:150:30: note: in expansion of macro 'OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME'
                   _STRINGIFY(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME));
                              ^
../../../opal/include/opal_config.h:1697:50: error: too many decimal points in number
 #define OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR 4.8.5
                                                  ^
param.c:152:30: note: in expansion of macro 'OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR'
                   _STRINGIFY(OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR));
                              ^

rhc54 added a commit to rhc54/openpmix that referenced this pull request Oct 5, 2021
Ported from open-mpi/ompi#9470
"The portable platform file hasn't been updated since Feb 10, 2010 (3ca8adb), so it was a bit out of date, including not understanding CLANG and the Nvidia-rebranded PGI compiler, so pull in the latest version from GASNet. Update some of the infrastructure so that we can pull in the GASNet version unchanged and make future updates easier."

Signed-off-by: Ralph Castain <[email protected]>
Update the portable platform file from GASNet, as we had last
pulled changes sometime before 2013.  At the same time, make
the infrastructure slightly easier to make future updates.

To simplify updates, we move the GASNet header to
opal_portable_platform_real.h and provide wrappers in
opal_portable_platform.h and mpi.h to avoid compiler warnings from
the GASNet header.  In theory, future updates should be as somple
as copying gasnet_portable_platform.h into
opal_portable_platform_real.h.

Somewhere in the last decade, GASNet switched from _STRINGIFY
to PLATFORM_STRINGIFY, so update all the places we used _STRINGIFY.

Signed-off-by: Brian Barrett <[email protected]>
@bwbarrett bwbarrett force-pushed the feature/update-portable-platform branch from f6b5891 to d6bfdf2 Compare October 5, 2021 17:07
@ibm-ompi
Copy link

ibm-ompi commented Oct 5, 2021

The IBM CI (GNU/Scale) build failed! Please review the log, linked below.

Gist: https://gist.github.com/ibm-ompi/88b480fb98dfd2bdac939f023e1f8fe6

@gpaulsen
Copy link
Member

gpaulsen commented Oct 5, 2021

restarting IBM CI in 2 minutes.

@gpaulsen
Copy link
Member

gpaulsen commented Oct 5, 2021

bot:ibm:retest

@bwbarrett
Copy link
Member Author

bot:aws:retest (Cray timeout)

@jsquyres jsquyres merged commit 009c94a into open-mpi:master Oct 6, 2021
rhc54 added a commit to rhc54/prrte that referenced this pull request Oct 6, 2021
Ported from open-mpi/ompi#9470
"The portable platform file hasn't been updated since Feb 10, 2010 (3ca8adb), so it was a bit out of date, including not understanding CLANG and the Nvidia-rebranded PGI compiler, so pull in the latest version from GASNet. Update some of the infrastructure so that we can pull in the GASNet version unchanged and make future updates easier."

Signed-off-by: Ralph Castain <[email protected]>
rhc54 added a commit to rhc54/prrte that referenced this pull request Oct 6, 2021
Ported from open-mpi/ompi#9470
"The portable platform file hasn't been updated since Feb 10, 2010 (3ca8adb), so it was a bit out of date, including not understanding CLANG and the Nvidia-rebranded PGI compiler, so pull in the latest version from GASNet. Update some of the infrastructure so that we can pull in the GASNet version unchanged and make future updates easier."

Signed-off-by: Ralph Castain <[email protected]>
(cherry picked from commit e35eff2)
rhc54 added a commit to rhc54/openpmix that referenced this pull request Oct 6, 2021
Ported from open-mpi/ompi#9470
"The portable platform file hasn't been updated since Feb 10, 2010 (3ca8adb), so it was a bit out of date, including not understanding CLANG and the Nvidia-rebranded PGI compiler, so pull in the latest version from GASNet. Update some of the infrastructure so that we can pull in the GASNet version unchanged and make future updates easier."

Signed-off-by: Ralph Castain <[email protected]>
(cherry picked from commit 1bb5f81)
@bwbarrett bwbarrett deleted the feature/update-portable-platform branch November 30, 2021 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants