-
Notifications
You must be signed in to change notification settings - Fork 559
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
OpenMP Detection Assumes GNU-Style Preprocessor Directive for Fortran (Incompatible with IBM XLF) #485
Comments
CC: @trilinos/framework Looking at the implementation for this in TriBITS (not sure who wrote this) I see:
It seems that updated versions of FindOpenMP.cmake do in fact define an Si, Can you please try replacing:
with:
in your copy of Trilinos in the file:
and see if that works? If it does not work out of the box, then it looks like updated versions of FindOpenMP.cmake allow you to override these as CMake cache vars with If this works, then we can update TriBITS for this change and snapshot back into Trilinos. |
@bartlettroscoe I had set the various |
Si, since it looks like this error occurs right in the compiler setup phase in the initial CMake configure, you should get feedback pretty fast (before you start building any Trilinos code). Otherwise, after the cmake configure completes (successfully, perhaps after some iteration), then I would build a single Fortran source/object file. For details on how to do that, see: |
As described in #1427, setup for OpenMP is controlled by FindOpenMP.cmake which is in the set of standard CMake modules. The solution is to try upgrading CMake and otherwise report the problems to Kitware (and we can make suggested changes). CC: @trilinos/framework |
This issue has had no activity for 365 days and is marked for closure. It will be closed after an additional 30 days of inactivity. |
This issue was closed due to inactivity for 395 days. |
Origin repo remote tracking branch: 'github/master' Origin repo remote repo URL: 'github = git@github.com:TriBITSPub/TriBITS.git' Git describe: Vera4.0-RC1-start-1173-g332f7a44 At commit: commit e82c4544fbd50769b85bab45cb98ef009ca4643c Author: Roscoe A. Bartlett <rabartl@sandia.gov> Date: Fri Jun 10 11:08:38 2022 -0600 Summary: Remove internal quotes for git log --pretty=format:<fmnt> strings (#485)
…Pub/TriBITS#299) Somehow, the Trilinos 'develop' branch got a different version of the modules tribits/common_tools/FindTPLBLAS.cmake and FindTPLLAPACK.cmake that what is in the TriBITS 'master' branch. That problem with that is that if you are building Trilinos with external TriBITS with: -DTrilinos_TRIBITS_DIR:STRING=TriBITS/tribits you get different behavior for finding BLAS and LAPACK than if you are using the versions in Trilinos. That is not good and it has cost people real lost time (e.g. the testing of Trilinos PR trilinos#10614 with an offline email discussion as part of working TriBITSPub/TriBITS#299). The fix implemented here was to: * Copy these modules from Trilinos/cmake/tribits/common_tools/ to Trilinos/cmake/TPLs/. * Point BLAS and LAPACK in Trilinos/TPLsList.cmake to FindTPL*.cmake files under cmake/TPLs/ instead of cmake/tribits/common_tools/. * Make the versions of the FindTPL*.cmake under cmake/tribits/common_tpls/ on the Trilinos develop branch to be identical to what is in the currently snapshotted version of TriBITS in the merged-in 'tribits_github_snapshot' branch. The current version of TriBITS 'master' snapshotted in is given in the most current snapshotted commit: commit fb578c9 (github/tribits_github_snapshot, tribits_github_snapshot) Author: Roscoe A. Bartlett <rabartl@sandia.gov> Date: Fri Jun 10 13:40:24 2022 -0600 Automatic snapshot commit from tribits at e82c4544 Origin repo remote tracking branch: 'github/master' Origin repo remote repo URL: 'github = git@github.com:TriBITSPub/TriBITS.git' At commit: commit e82c4544fbd50769b85bab45cb98ef009ca4643c Author: Roscoe A. Bartlett <rabartl@sandia.gov> Date: Fri Jun 10 11:08:38 2022 -0600 Summary: Remove internal quotes for git log --pretty=format:<fmnt> strings (trilinos#485) Later, we could sync up the FindTPLBLAS.cmake and FindTPLLAPACK.cmake modules but that will break someone's backward compatibility.
Trilinos OpenMP detection of flags for Fortran compiler does not work correctly with IBM XLF compiler on POWER8 platform. The detection assumes that the
-D
flag works for passing preprocessor defines through to the compiler. This is not the case for the IBMxlf
andxlf90
compilers where-WF,-D
needs to be used if we expect the C preprocessor to be called. The correct check should be for-qsmp=omp
to be found although its not clear this is correctly tested for (possible I have missed it in the error output).Yields (incorrect behavior) error of:
The text was updated successfully, but these errors were encountered: