summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLarry Knox <lrknox@hdfgroup.org>2019-01-08 03:01:06 (GMT)
committerLarry Knox <lrknox@hdfgroup.org>2019-01-08 03:01:06 (GMT)
commit74a41f92a48d553a33b80d84d0981623327074af (patch)
treec952c99eed26f4a3d1fc8443d9b505a938884e29
parent9c12b625fd092bc3e87eb21f1fa554951ff4bdd8 (diff)
parente27df5a5fe365480b0809ce523b0e9cd1096a43d (diff)
downloadhdf5-74a41f92a48d553a33b80d84d0981623327074af.zip
hdf5-74a41f92a48d553a33b80d84d0981623327074af.tar.gz
hdf5-74a41f92a48d553a33b80d84d0981623327074af.tar.bz2
Merge pull request #1443 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:develop to develop
* commit 'e27df5a5fe365480b0809ce523b0e9cd1096a43d': Add variables to set up module switch between configure and build for cross compiling on CrayXC40. Remove install-exec-hook from hl/fortran/Makefile.am. Add check for existing links in hl/fortran/src/Makefile.am. Configure build directory in batch scripts. Add libhdf5_hl_fortran symlinks for libhdf5hl_fortran files. Set ctest*.lsf.in.cmake scripts for sierra. Correct src/CMakelists.txt syntax error. Correct syntax error in CMakeLists.txt. Add .lsf batch scripts and insert the build directory into the scripts during configuration.
-rw-r--r--bin/batch/ctestP.lsf.in.cmake19
-rw-r--r--bin/batch/ctestP.sl.in.cmake (renamed from bin/batch/sbatch_ctestP.sl)3
-rw-r--r--bin/batch/ctestS.lsf.in.cmake18
-rw-r--r--bin/batch/ctestS.sl.in.cmake (renamed from bin/batch/sbatch_ctestS.sl)3
-rw-r--r--bin/batch/knl_ctestP.sl.in.cmake (renamed from bin/batch/knl_ctestP.sl)4
-rw-r--r--bin/batch/knl_ctestS.sl.in.cmake (renamed from bin/batch/knl_ctestS.sl)4
-rw-r--r--bin/batch/knl_ctestSP.sl28
-rw-r--r--bin/batch/sbatch_ctestSP.sl25
-rw-r--r--config/cmake/scripts/CTestScript.cmake14
-rw-r--r--hl/fortran/src/Makefile.am6
-rw-r--r--src/CMakeLists.txt15
11 files changed, 74 insertions, 65 deletions
diff --git a/bin/batch/ctestP.lsf.in.cmake b/bin/batch/ctestP.lsf.in.cmake
new file mode 100644
index 0000000..2777f39
--- /dev/null
+++ b/bin/batch/ctestP.lsf.in.cmake
@@ -0,0 +1,19 @@
+#!/bin/tcsh
+### LSF syntax
+#BSUB -nnodes 1 #number of nodes
+#BSUB -W 30 #walltime in minutes
+#BSUB -G guests #account
+#BSUB -e ctestPerrors.txt #stderr
+#BSUB -o ctestPoutput.txt #stdout
+#BSUB -J hdf5_ctestP #job
+##BSUB -q pbatch #queue to use
+#BSUB -q pdebug
+
+##date; hostname
+##echo -n 'JobID is '; echo $LSB_JOBID
+
+cd @HDF5_BINARY_DIR@
+echo "Run parallel test command. Test output will be in build/ctestP.out"
+ctest . -R 'TEST_PAR|PH5DIFF|PERFORM' -E t_cache_image -C Release -T test >& ctestP.out
+
+echo "Done running ctest parallel command."
diff --git a/bin/batch/sbatch_ctestP.sl b/bin/batch/ctestP.sl.in.cmake
index e967dce..230a642 100644
--- a/bin/batch/sbatch_ctestP.sl
+++ b/bin/batch/ctestP.sl.in.cmake
@@ -7,8 +7,7 @@
#SBATCH --export=ALL
#SBATCH --job-name=h5_ctestS
-
-cd build
+cd @HDF5_BINARY_DIR@
CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM -E t_cache_image -C Release -T test"
echo "Run $CMD. Test output will be in build/ctestP.out"
diff --git a/bin/batch/ctestS.lsf.in.cmake b/bin/batch/ctestS.lsf.in.cmake
new file mode 100644
index 0000000..5692574
--- /dev/null
+++ b/bin/batch/ctestS.lsf.in.cmake
@@ -0,0 +1,18 @@
+#!/bin/tcsh
+### LSF syntax
+#BSUB -nnodes 1 #number of nodes
+#BSUB -W 29 #walltime in minutes
+#BSUB -G guests #account
+#BSUB -e ctestSerrors.txt #stderr
+#BSUB -o ctestSoutput.txt #stdout
+#BSUB -J hdf5_ctestS #job
+##BSUB -q pbatch #queue to use
+#BSUB -q pdebug
+
+cd @HDF5_BINARY_DIR@
+echo "Run command. Test output will be in build/ctestS.out"
+ctest . -E 'TEST_PAR|H5DIFF|PERFORM' -C Release -j 32 -T test >& ctestS.out
+
+##$CMD >& ctestS.out
+echo "Done running command."
+
diff --git a/bin/batch/sbatch_ctestS.sl b/bin/batch/ctestS.sl.in.cmake
index a103356..9802e13 100644
--- a/bin/batch/sbatch_ctestS.sl
+++ b/bin/batch/ctestS.sl.in.cmake
@@ -7,8 +7,7 @@
#SBATCH --export=ALL
#SBATCH --job-name=h5_ctestS
-
-cd build
+cd @HDF5_BINARY_DIR@
CMD="ctest . -E TEST_PAR|H5DIFF|PERFORM -C Release -j 32 -T test"
echo "Run $CMD. Test output will be in build/ctestS.out"
diff --git a/bin/batch/knl_ctestP.sl b/bin/batch/knl_ctestP.sl.in.cmake
index 3a03fe2..687804b 100644
--- a/bin/batch/knl_ctestP.sl
+++ b/bin/batch/knl_ctestP.sl.in.cmake
@@ -1,6 +1,6 @@
#!/bin/bash
-#SBATCH -p knl -C quad,flat
+#SBATCH -C knl,quad,cache
#SBATCH --nodes=1
#SBATCH -t 00:30:00
#SBATCH --mail-type=BEGIN,END,FAIL
@@ -8,7 +8,7 @@
#SBATCH --export=ALL
#SBATCH --job-name=h5_ctestS
-cd build
+cd @HDF5_BINARY_DIR@
#run parallel tests except t_cache_image test
CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM -E t_cache_image -C Release -T test"
diff --git a/bin/batch/knl_ctestS.sl b/bin/batch/knl_ctestS.sl.in.cmake
index 5b77c5b..de1335c 100644
--- a/bin/batch/knl_ctestS.sl
+++ b/bin/batch/knl_ctestS.sl.in.cmake
@@ -1,6 +1,6 @@
#!/bin/bash
-#SBATCH -p knl -C quad,flat
+#SBATCH -C knl,quad,cache
#SBATCH --nodes=1
#SBATCH -t 00:30:00
#SBATCH --mail-type=BEGIN,END,FAIL
@@ -8,7 +8,7 @@
#SBATCH --export=ALL
#SBATCH --job-name=h5_ctestS
-cd build
+cd @HDF5_BINARY_DIR@
CMD="ctest . -E TEST_PAR|H5DIFF|PERFORM -C Release -j 32 -T test"
echo "Run $CMD. Test output will be in build/ctestS.out"
diff --git a/bin/batch/knl_ctestSP.sl b/bin/batch/knl_ctestSP.sl
deleted file mode 100644
index 56da347..0000000
--- a/bin/batch/knl_ctestSP.sl
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-#SBATCH -p knl -C quad,flat
-#SBATCH --nodes=1
-#SBATCH -t 01:00:00
-#SBATCH --mail-type=BEGIN,END,FAIL
-##SBATCH --mail-user=<username>@sandia.gov
-#SBATCH --export=ALL
-#SBATCH --job-name=h5_ctestS
-
-module load cmake
-module load craype-hugepages4M
-
-cd build
-CMD="ctest . -E TEST_PAR|H5DIFF|PERFORM -C Release -j 32 -T test"
-
-echo "Run $CMD. Test output will be in build/ctestS.out"
-$CMD >& ctestS.out
-echo "Done running $CMD"
-
-
-#run parallel tests except t_cache_image test
-CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM -E t_cache_image -C Release -T test"
-
-echo "Run $CMD. Test output will be in build/ctestP.out"
-$CMD >& ctestP.out
-echo "Done running $CMD"
-
diff --git a/bin/batch/sbatch_ctestSP.sl b/bin/batch/sbatch_ctestSP.sl
deleted file mode 100644
index 5d79d9b..0000000
--- a/bin/batch/sbatch_ctestSP.sl
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-#SBATCH --nodes=1
-#SBATCH -t 01:00:00
-#SBATCH --mail-type=BEGIN,END,FAIL
-##SBATCH --mail-user=<username>@sandia.gov
-#SBATCH --export=ALL
-#SBATCH --job-name=h5_ctestS
-
-
-cd build
-CMD="ctest . -E TEST_PAR|H5DIFF|PERFORM -C Release -j 32 -T test"
-
-echo "Run $CMD. Test output will be in build/ctestS.out"
-$CMD >& ctestS.out
-echo "Done running $CMD"
-
-
-#run parallel tests except t_cache_image test
-CMD="ctest . -R TEST_PAR|PH5DIFF|PERFORM -E t_cache_image -C Release -T test"
-
-echo "Run $CMD. Test output will be in build/ctestP.out"
-$CMD >& ctestP.out
-echo "Done running $CMD"
-
diff --git a/config/cmake/scripts/CTestScript.cmake b/config/cmake/scripts/CTestScript.cmake
index 2b0ac81..eb466d2 100644
--- a/config/cmake/scripts/CTestScript.cmake
+++ b/config/cmake/scripts/CTestScript.cmake
@@ -254,6 +254,15 @@ message (STATUS "Dashboard script configuration:\n${vars}\n")
file (APPEND ${CTEST_SCRIPT_DIRECTORY}/FailedCTest.txt "Failed Configure: ${res}\n")
endif ()
+ # On Cray XC40, configuring fails in the Fortran section when using the craype-mic-knl module.
+ # When the configure phase is done with the craype-haswell module and the build phase is done
+ # with the craype-mic-knl module, configure succeeds and tests pass on the knl compute nodes
+ # for Intel, Cray, GCC and Clang compilers. If the variables aren't set or if not
+ # cross compiling, the module switch will not occur.
+ if (CMAKE_CROSSCOMPILING AND COMPILENODE_HWCOMPILE_MODULE AND COMPUTENODE_HWCOMPILE_MODULE)
+ execute_process (COMMAND module switch ${COMPILENODE_HWCOMPILE_MODULE} ${COMPUTENODE_HWCOMPILE_MODULE})
+ endif ()
+
ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND RETURN_VALUE res NUMBER_ERRORS errval)
if (LOCAL_SUBMIT)
ctest_submit (PARTS Build)
@@ -268,7 +277,7 @@ message (STATUS "Dashboard script configuration:\n${vars}\n")
ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
else ()
file(STRINGS ${CTEST_BINARY_DIRECTORY}/Testing/TAG TAG_CONTENTS REGEX "^2([0-9]+)[-]([0-9]+)$")
- execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_SOURCE_DIRECTORY}/bin/batch/${LOCAL_BATCH_SCRIPT_NAME})
+ execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_NAME})
message(STATUS "Check for existence of ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml")
execute_process(COMMAND ls ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml RESULT_VARIABLE result OUTPUT_QUIET ERROR_QUIET)
while(result)
@@ -281,8 +290,9 @@ message (STATUS "Dashboard script configuration:\n${vars}\n")
endif ()
message(STATUS "Found ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml for serial tests. Renaming to SerialTest.xml")
file (RENAME ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/SerialTest.xml)
+ file (RENAME ${CTEST_BINARY_DIRECTORY}/Testing/Temporary/LastTest_${TAG_CONTENTS}.log ${CTEST_BINARY_DIRECTORY}/Testing/Temporary/LastTest_${TAG_CONTENTS}_Serial.log)
unset(result CACHE)
- execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_SOURCE_DIRECTORY}/bin/batch/${LOCAL_BATCH_SCRIPT_PARALLEL_NAME})
+ execute_process (COMMAND ${LOCAL_BATCH_SCRIPT_COMMAND} ${CTEST_BINARY_DIRECTORY}/${LOCAL_BATCH_SCRIPT_PARALLEL_NAME})
message(STATUS "Check for existence of ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml")
execute_process(COMMAND ls ${CTEST_BINARY_DIRECTORY}/Testing/${TAG_CONTENTS}/Test.xml RESULT_VARIABLE result OUTPUT_QUIET ERROR_QUIET)
while(result)
diff --git a/hl/fortran/src/Makefile.am b/hl/fortran/src/Makefile.am
index 200a2ce..37e074c 100644
--- a/hl/fortran/src/Makefile.am
+++ b/hl/fortran/src/Makefile.am
@@ -55,10 +55,12 @@ libhdf5hl_fortran_la_LIBADD=$(LIBH5_HL) $(LIBH5F)
# actual lib file.
install-exec-hook:
cd $(DESTDIR)$(libdir) && \
- if test -f libhdf5hl_fortran.a; then \
+ if test -f libhdf5hl_fortran.a -a \
+ ! -f libhdf5_hl_fortran.a; then \
$(LN_S) libhdf5hl_fortran.a libhdf5_hl_fortran.a; \
fi; \
- if test -f libhdf5hl_fortran.so; then \
+ if test -f libhdf5hl_fortran.so -a \
+ ! -f libhdf5_hl_fortran.so; then \
$(LN_S) libhdf5hl_fortran.so libhdf5_hl_fortran.so; \
fi;
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 40b64f5..ff7402b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -943,6 +943,21 @@ if (BUILD_SHARED_LIBS)
file (MAKE_DIRECTORY "${HDF5_BINARY_DIR}/shared")
endif ()
+if (LOCAL_BATCH_TEST)
+ if (LOCAL_BATCH_SCRIPT_NAME)
+ configure_file (
+ ${HDF5_SOURCE_DIR}/bin/batch/${LOCAL_BATCH_SCRIPT_NAME}.in.cmake
+ ${HDF5_BINARY_DIR}/${LOCAL_BATCH_SCRIPT_NAME} ESCAPE_QUOTES @ONLY
+ )
+ endif ()
+ if (LOCAL_BATCH_SCRIPT_PARALLEL_NAME)
+ configure_file (
+ ${HDF5_SOURCE_DIR}/bin/batch/${LOCAL_BATCH_SCRIPT_PARALLEL_NAME}.in.cmake
+ ${HDF5_BINARY_DIR}/${LOCAL_BATCH_SCRIPT_PARALLEL_NAME} ESCAPE_QUOTES @ONLY
+ )
+ endif ()
+endif ()
+
if (NOT EXISTS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c)
add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c)
target_include_directories(H5detect PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")