Skip to content

Commit 877602b

Browse files
committed
Merge branch 'master' into vehre/failed-images
2 parents dca0738 + ae0a625 commit 877602b

27 files changed

+762
-1346
lines changed

.VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# version, i.e., code is from SCM/git. This project uses semantic
33
# versioning. For details see http://semver.org
44

5-
1.8.5
5+
1.8.7

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@
88
| --------------------------------- | ---------------------------|
99
| ![Issue Stats][PR response img] | ![Codecov branch][coverage]|
1010

11+
## Summary of changes ##
12+
13+
Summarize what you changed
14+
15+
## Rationale for changes ##
16+
17+
Why did you make these changes?
18+
19+
## Additional info and certifications ##
20+
1121
This pull request (PR) is a:
1222
- [ ] Bug fix
1323
- [ ] Feature addition
@@ -46,13 +56,6 @@ I certify that:
4656
check and following the directions on the CLA assistant webpage
4757
- [ ] I have ensured that the test coverage hasn't gone down and added new [unit tests] to cover an new code added to the library
4858

49-
## Summary of changes ##
50-
51-
Summarize what you changed
52-
53-
## Rationale for changes ##
54-
55-
Why did you make these changes?
5659

5760
## For contributors and SI team members with code review priviledges ##
5861

.travis.yml

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ before_install:
8686
git tag -v ${TRAVIS_TAG}
8787
fi
8888
set +o errexit
89-
-
90-
-
91-
-
89+
-
90+
-
91+
-
9292
- |
9393
set -o errexit
9494
if [[ $TRAVIS ]] && [[ "X$TRAVIS_OS_NAME" = "Xosx" ]]; then
@@ -191,49 +191,49 @@ after_success:
191191
- gcov-6 --version
192192
- bash <(curl -s https://codecov.io/bash) -x $(which gcov-6)
193193

194-
before_deploy:
195-
- git archive -v --prefix "OpenCoarrays-${TRAVIS_TAG}/" -o "OpenCoarrays-${TRAVIS_TAG}.tar.gz" ${TRAVIS_TAG}
196-
- |
197-
echo '# To verify cryptographic checksums `shasum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Mac OS X,' > "opencoarrays-${TRAVIS_TAG}-SHA256.txt
198-
echo '# `sha256sum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Linux.' >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
199-
if [[ "X$(uname -s)" == "XDarwin" ]]; then
200-
shasum -a 256 "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
201-
else
202-
sha256sum "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
203-
fi
204-
- |
205-
set -o errexit
206-
openssl aes-256-cbc -K $encrypted_ef4535c39461_key -iv $encrypted_ef4535c39461_iv -in subkey-328B3A0E-secret.asc.enc -out ./subkey-328B3A0E-secret.asc -d
207-
gpg --allow-secret-key-import --import ./subkey-328B3A0E-secret.asc && rm subkey-328B3A0E-secret.asc
208-
rm subkey-328B3A0E-secret.* || true
209-
unset encrypted_ef4535c39461_key || true
210-
unset encrypted_ef4535c39461_iv || true
211-
gpg --armor --detach-sign -u 328B3A0E --comment 'Mac users can use GPGTools - https://gpgtools.org' \
212-
--comment "Download Izaak Beekman's GPG public key from your" \
213-
--comment 'trusted key server or from' \
214-
--comment 'https://izaakbeekman.com/izaak.pubkey.txt' \
215-
--comment 'Next add it to your GPG keyring, e.g.,' \
216-
--comment '`curl https://izaakbeekman.com/izaak.pubkey.txt | gpg --import`' \
217-
--comment "Make sure you have verified that the release archive's" \
218-
--comment 'SHA256 checksum matches the provided' \
219-
--comment "opencoarrays-${TRAVIS_TAG}-SHA256.txt and ensure that this file" \
220-
--comment "and it's signature are in the same directory. Then" \
221-
--comment 'verify with:' \
222-
--comment '`gpg --verify opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt.asc`' \
223-
"opencoarrays-${TRAVIS_TAG}-SHA256.txt"
224-
set +o errexit
194+
# before_deploy:
195+
# - git archive -v --prefix "OpenCoarrays-${TRAVIS_TAG}/" -o "OpenCoarrays-${TRAVIS_TAG}.tar.gz" ${TRAVIS_TAG}
196+
# - |
197+
# echo '# To verify cryptographic checksums `shasum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Mac OS X,' > "opencoarrays-${TRAVIS_TAG}-SHA256.txt
198+
# echo '# `sha256sum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Linux.' >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
199+
# if [[ "X$(uname -s)" == "XDarwin" ]]; then
200+
# shasum -a 256 "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
201+
# else
202+
# sha256sum "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
203+
# fi
204+
# - |
205+
# set -o errexit
206+
# openssl aes-256-cbc -K $encrypted_ef4535c39461_key -iv $encrypted_ef4535c39461_iv -in subkey-328B3A0E-secret.asc.enc -out ./subkey-328B3A0E-secret.asc -d
207+
# gpg --allow-secret-key-import --import ./subkey-328B3A0E-secret.asc && rm subkey-328B3A0E-secret.asc
208+
# rm subkey-328B3A0E-secret.* || true
209+
# unset encrypted_ef4535c39461_key || true
210+
# unset encrypted_ef4535c39461_iv || true
211+
# gpg --armor --detach-sign -u 328B3A0E --comment 'Mac users can use GPGTools - https://gpgtools.org' \
212+
# --comment "Download Izaak Beekman's GPG public key from your" \
213+
# --comment 'trusted key server or from' \
214+
# --comment 'https://izaakbeekman.com/izaak.pubkey.txt' \
215+
# --comment 'Next add it to your GPG keyring, e.g.,' \
216+
# --comment '`curl https://izaakbeekman.com/izaak.pubkey.txt | gpg --import`' \
217+
# --comment "Make sure you have verified that the release archive's" \
218+
# --comment 'SHA256 checksum matches the provided' \
219+
# --comment "opencoarrays-${TRAVIS_TAG}-SHA256.txt and ensure that this file" \
220+
# --comment "and it's signature are in the same directory. Then" \
221+
# --comment 'verify with:' \
222+
# --comment '`gpg --verify opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt.asc`' \
223+
# "opencoarrays-${TRAVIS_TAG}-SHA256.txt"
224+
# set +o errexit
225225

226-
deploy:
227-
provider: releases
228-
api_key:
229-
secure: lBj4VgKhU74xfzPc0CDIji6cFrN/xEQIHLHjMcnDPWEF5JQe79aunMS5qiYu5ttve6khGI1WMFEe7clUO3TXiDUPyRMS4M8B2q3fuvUIsIbYgWcKq7ut+x6+dEQDj4DE3yWpPb8IDugWFp4vno1eQ2Rid1yr6Vn+rjnbE2i6z5SkXPnIv1ziQ9G+TF4ChUA8IOd1T78gJmML86P0rbt6nW8eVuJbza2y1ggHAY//q/b6rrbOFw5PqiOBqZ/BRrKJ5d2U2mvsoZtNn4OYyXw4eKEvNDIydwaIZROXfPRmN9zJ5G7+01QA5jlXpq17KfPBr7MXkn7nrQ5q9Z2ji4hRHk/AFzM/etfl1k4WCshYs13NlORpnU0vZtCMmmmsXWxj2kpsOHLWZQKdUAPs3olMPIG6aVnO5Abk1vrVSNy/ZeknbBTKCGScET1qRSaj6d43ynBwGkqHgaJdLBAwGe0Dpap6SsLGsAg56ZqHTngGlXB1KsbJKMkUsSC5RAgEuh9m55nsMaRlTYTrv+YADAQts7lV8yMCciMeJlrd3EYryyn4ZY1O82eOofhZZ5vQUktbXHtg6YnzguFwQyn+9yY/CQfi/vu2Aoq79NJEO/9UJ82ogn6gOoIebzb0xgIONjw4M68luR2U1CXtibzSYKWLGTeOj43khqZdbOpp6xncIv0=
230-
file:
231-
- "OpenCoarrays-${TRAVIS_TAG}.tar.gz"
232-
- "opencoarrays-${TRAVIS_TAG}-SHA256.txt"
233-
- "opencoarrays-${TRAVIS_TAG}-SHA256.txt.asc"
234-
skip_cleanup: true
235-
on:
236-
tags: true
226+
# deploy:
227+
# provider: releases
228+
# api_key:
229+
# secure: lBj4VgKhU74xfzPc0CDIji6cFrN/xEQIHLHjMcnDPWEF5JQe79aunMS5qiYu5ttve6khGI1WMFEe7clUO3TXiDUPyRMS4M8B2q3fuvUIsIbYgWcKq7ut+x6+dEQDj4DE3yWpPb8IDugWFp4vno1eQ2Rid1yr6Vn+rjnbE2i6z5SkXPnIv1ziQ9G+TF4ChUA8IOd1T78gJmML86P0rbt6nW8eVuJbza2y1ggHAY//q/b6rrbOFw5PqiOBqZ/BRrKJ5d2U2mvsoZtNn4OYyXw4eKEvNDIydwaIZROXfPRmN9zJ5G7+01QA5jlXpq17KfPBr7MXkn7nrQ5q9Z2ji4hRHk/AFzM/etfl1k4WCshYs13NlORpnU0vZtCMmmmsXWxj2kpsOHLWZQKdUAPs3olMPIG6aVnO5Abk1vrVSNy/ZeknbBTKCGScET1qRSaj6d43ynBwGkqHgaJdLBAwGe0Dpap6SsLGsAg56ZqHTngGlXB1KsbJKMkUsSC5RAgEuh9m55nsMaRlTYTrv+YADAQts7lV8yMCciMeJlrd3EYryyn4ZY1O82eOofhZZ5vQUktbXHtg6YnzguFwQyn+9yY/CQfi/vu2Aoq79NJEO/9UJ82ogn6gOoIebzb0xgIONjw4M68luR2U1CXtibzSYKWLGTeOj43khqZdbOpp6xncIv0=
230+
# file:
231+
# - "OpenCoarrays-${TRAVIS_TAG}.tar.gz"
232+
# - "opencoarrays-${TRAVIS_TAG}-SHA256.txt"
233+
# - "opencoarrays-${TRAVIS_TAG}-SHA256.txt.asc"
234+
# skip_cleanup: true
235+
# on:
236+
# tags: true
237237
# repo: sourceryinstitute/opencoarrays
238238

239239
notifications:

CMakeLists.txt

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.0)
1+
cmake_minimum_required(VERSION 3.2)
22

33
# Set the type/configuration of build to perform
44
set ( CMAKE_CONFIGURATION_TYPES "Debug" "Release" "MinSizeRel" "RelWithDebInfo" "CodeCoverage" )
@@ -90,7 +90,7 @@ the C compiler if it matches the Fortran compiler ID." )
9090
endif()
9191
set( CMAKE_Fortran_COMPILER_VERSION "${DETECTED_VER}" )
9292
endif()
93-
93+
9494
# We have populated CMAKE_Fortran_COMPILER_VERSION if it was missing
9595
if(gfortran_compiler AND (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER 5.0.0))
9696
set(opencoarrays_aware_compiler true)
@@ -155,7 +155,7 @@ endif()
155155

156156
find_package( MPI )
157157

158-
if ( (NOT MPI_C_FOUND) OR (NOT MPI_Fortran_FOUND) )
158+
if ( (NOT MPI_C_FOUND) OR (NOT MPI_Fortran_FOUND) OR (NOT MPIEXEC))
159159
find_program (MY_MPI_EXEC NAMES mpirun mpiexec lamexec srun
160160
PATHS "${CMAKE_SOURCE_DIR/prerequisites/installations/mpich/3.1.4}" "${CMAKE_SOURCE_DIR}/prerequisites/installations/mpich/*" ENV PATH
161161
HINTS "${FTN_COMPILER_DIR}" "${C_COMPILER_DIR}"
@@ -164,6 +164,68 @@ if ( (NOT MPI_C_FOUND) OR (NOT MPI_Fortran_FOUND) )
164164
find_package( MPI REQUIRED )
165165
endif()
166166

167+
# Test for consistent MPI environment
168+
if (NOT MPIEXEC)
169+
message ( ERROR "CMake failed to find `mpiexec` or similar. If building with `./install.sh` please
170+
report this bug to the OpenCoarrays developers at
171+
https://github.com/sourceryinstitute/opencoarrays/issues, otherwise use point CMake
172+
to the desired MPI runtime.")
173+
endif()
174+
175+
get_filename_component(MPIEXEC_RELATIVE_LOC "${MPIEXEC}"
176+
PROGRAM)
177+
get_filename_component(MPIEXEC_ABS_LOC "${MPIEXEC_RELATIVE_LOC}"
178+
REALPATH)
179+
get_filename_component(MPIEXEC_DIR "${MPIEXEC_ABS_LOC}"
180+
DIRECTORY)
181+
182+
get_filename_component(MPICC_RELATIVE_LOC "${MPI_C_COMPILER}"
183+
PROGRAM)
184+
get_filename_component(MPICC_ABS_LOC "${MPICC_RELATIVE_LOC}"
185+
REALPATH)
186+
get_filename_component(MPICC_DIR "${MPICC_ABS_LOC}"
187+
DIRECTORY)
188+
189+
get_filename_component(MPIFC_RELATIVE_LOC "${MPI_Fortran_COMPILER}"
190+
PROGRAM)
191+
get_filename_component(MPIFC_ABS_LOC "${MPIFC_RELATIVE_LOC}"
192+
REALPATH)
193+
get_filename_component(MPIFC_DIR "${MPIFC_ABS_LOC}"
194+
DIRECTORY)
195+
196+
if ((MPIEXEC_DIR STREQUAL MPICC_DIR) AND (MPIEXEC_DIR STREQUAL MPIFC_DIR))
197+
message ( STATUS "MPI runtime and compile time environments appear to be consistent")
198+
else()
199+
message ( WARNING "MPIEXEC is in \"${MPIEXEC_DIR},\"
200+
which differs from the location of MPICC and/or MPIFC which are in
201+
\"${MPICC_DIR}\" and \"${MPIFC_DIR},\" respectively.
202+
This is likely indicative of a problem. If building with `./install.sh` please report
203+
this to the OpenCoarrays developers by filing a new issue at:
204+
https://github.com/sourceryinstitute/OpenCoarrays/issues/new")
205+
endif()
206+
207+
#-----------------------------------------------
208+
# Work around bug #317 present on fedora systems
209+
#-----------------------------------------------
210+
if( (MPI_C_LINK_FLAGS MATCHES "noexecstack") OR (MPI_Fortran_LINK_FLAGS MATCHES "noexecstack") )
211+
message ( WARNING
212+
"The `noexecstack` linker flag was found in the MPI_<lang>_LINK_FLAGS variable. This is
213+
known to cause segmentation faults for some Fortran codes. See, e.g.,
214+
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71729 or
215+
https://github.com/sourceryinstitute/OpenCoarrays/issues/317.
216+
217+
`noexecstack` is being replaced with `execstack`"
218+
)
219+
string(REPLACE "noexecstack"
220+
"execstack" MPI_C_LINK_FLAGS_FIXED ${MPI_C_LINK_FLAGS})
221+
string(REPLACE "noexecstack"
222+
"execstack" MPI_Fortran_LINK_FLAGS_FIXED ${MPI_Fortran_LINK_FLAGS})
223+
set(MPI_C_LINK_FLAGS "${MPI_C_LINK_FLAGS_FIXED}" CACHE STRING
224+
"MPI C linking flags" FORCE)
225+
set(MPI_Fortran_LINK_FLAGS "${MPI_Fortran_LINK_FLAGS_FIXED}" CACHE STRING
226+
"MPI Fortran linking flags" FORCE)
227+
endif()
228+
167229
#--------------------------------------------------------
168230
# Make sure a simple "hello world" C mpi program compiles
169231
#--------------------------------------------------------

GETTING_STARTED.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ If the `caf` compiler wrapper cannot process the source code in question, invoke
107107
the underlying communication library directly:
108108

109109
```bash
110-
mpif90 -fcoarray=lib -L/opt/opencoarrays/ tally.f90 \ -lcaf_mpi -o htally-I<OpenCoarrays-install-path>/mod
110+
mpif90 -fcoarray=lib -L/opt/opencoarrays/ tally.f90 \ -lcaf_mpi -o htally -I<OpenCoarrays-install-path>/mod
111111
```
112112

113113
and also run the program with the lower-level communication library:

0 commit comments

Comments
 (0)