-
-
Notifications
You must be signed in to change notification settings - Fork 254
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sync 1.14 branch with develop (#3705)
* Address nagfor exceptions stoppage. (#3658) * added cmake ieee flag for nagfor * generalized determining the nag compiler * fixing some misc. NAG warnings * Simplify. (#3659) * Address @jhendersonHDF review * Add expedited testing support to t_filters_parallel (#3665) * Remove clang warnings (#3656) * Fixes test failure for gfortran -O2 and -O3, -fdefault-real-16 (#3662) * added cmake ieee flag for nagfor * fixes gfortran -O2 and -O3, -fdefault-real-16 * fixed sync * updated release notes * Fix link error on clang17/gfortran13/macOS-13 (#3666) (#3671) * Correct fortran CMake generator expressions (#3670) * Add AOCC GitHub Action (#3504) (#3657) * Fix uninitialized subfiling test variable (#3675) Picked up by gcc 10 on skybridge. Probably spurious, but no harm in initializing it to a "bad" value. * Add support for AOCC & Flang w/ the Autotools (#3674) * Adds a config/clang-fflags options file to support Flang * Corrects missing "-Wl," from linker options in the libtool wrappers when using Flang, the MPI Fortran compiler wrappers, and building the shared library. This would often result in unrecognized options like -soname. * Enable -nomp w/ Flang to avoid linking to the OpenMPI library. CMake can build the parallel, shared library w/ Fortran using AOCC and Flang, so no changes were needed for that build system. Fixes GitHub issues #3439, #1588, #366, #280 * Fix a strncpy call to use dest size not src (#3677) A strncpy call in a path construction call used the size of the src buffer instead of the dest buffer as the limit n. This was switched to use the dest size and properly terminate the string if truncation occurs. * Remove CANBE_UNUSED() from subfiling VFD (#3678) This macro was an attempt to quiet warnings about release mode unused variables that only appear in asserts. It resolves to a void cast, which doesn't quiet warnings when an assignment has already taken place. * Suppress MPI_Waitall warnings w/ MPICH (#3680) MPICH defines MPI_STATUSES_IGNORE (a pointer) to 1, which raises warnings w/ gcc. This is a known issue that the MPICH devs are not going to fix. See here: pmodels/mpich#5687 This fix suppresses those issues w/ gcc * Fix a possible NULL pointer dereference in tests (#3676) The dtypes test could dereference a NULL pointer if a strdup call failed. * Fix printf warnings in t_mpi (#3679) * Fix printf warnings in t_mpi The type of MPI_Offset varies with implementation. In MPICH, it's long, which raises warnings when we attempt to use long long format specifiers. Casting to long long fixes the warnings. * Fix invalid memory access in S3 comms (#3681) In the ros3 VFD, passing an empty string parameter to an internal API call could result in accessing the -1th element of a string. This would cause failures on big-endian systems like s390x. This parameter is now checked before writing to the string. Fixes GitHub #1168 * Add Doxygen for H5Pset_fapl_sec2() (#3685) * * switch to using time function instead of date function (#3690) * Initialize API context MPI types to MPI_BYTE (#3688) * Add test info output to t_filters_parallel (#3696) * Suppress format string warnings in subfiling test (#3699) * Fix unused variable in tselect.c (#3701) * Fix unused variable warning in H5F_sfile_assert_num (#3700) * Restore floating-point suffixes in tests (#3698) A prior commit removed too many F suffixes. This restores the suffixes for float variables. * Sync with changes from develop --------- Co-authored-by: Scot Breitenfeld <[email protected]> Co-authored-by: H. Joe Lee <[email protected]> Co-authored-by: Allen Byrne <[email protected]> Co-authored-by: Dana Robinson <[email protected]>
- Loading branch information
1 parent
da9d4e7
commit 4a02890
Showing
43 changed files
with
742 additions
and
499 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
name: linux autotools aocc ompi | ||
|
||
on: | ||
push: | ||
pull_request: | ||
branches: | ||
- hdf5_1_14 | ||
paths-ignore: | ||
- '.github/CODEOWNERS' | ||
- '.github/FUNDING.yml' | ||
- 'doc/**' | ||
- 'release_docs/**' | ||
- 'ACKNOWLEDGEMENTS' | ||
- 'COPYING**' | ||
- '**.md' | ||
|
||
# Using concurrency to cancel any in-progress job or run | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.sha || github.event.pull_request.number }} | ||
cancel-in-progress: true | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Install System dependencies | ||
run: | | ||
sudo apt update | ||
sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen openssl libtool libtool-bin build-essential libncurses-dev libquadmath0 libstdc++6 libxml2 | ||
- name: Install AOCC 4.1.0 | ||
run: | | ||
wget https://download.amd.com/developer/eula/aocc/aocc-4-1/aocc-compiler-4.1.0.tar | ||
tar -xvf aocc-compiler-4.1.0.tar | ||
cd aocc-compiler-4.1.0 | ||
bash install.sh | ||
source /home/runner/work/hdf5/hdf5/setenv_AOCC.sh | ||
which clang | ||
which flang | ||
clang -v | ||
- name: Install OpenMPI 4.1.5 | ||
run: | | ||
export LD_LIBRARY_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/usr/local/lib | ||
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz | ||
tar zxvf openmpi-4.1.5.tar.gz | ||
cd openmpi-4.1.5 | ||
./configure CC=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/bin/clang FC=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/bin/flang --prefix=/usr/local | ||
make | ||
sudo make install | ||
- name: Install HDF5 | ||
env: | ||
NPROCS: 2 | ||
run: | | ||
export LD_LIBRARY_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/usr/local/lib/openmpi:/usr/local/lib | ||
export LD_RUN_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/usr/local/lib/openmpi:/usr/local/lib | ||
export PATH=/usr/local/bin:$PATH | ||
./autogen.sh | ||
./configure --prefix=/tmp --enable-parallel --enable-shared CC=/usr/local/bin/mpicc LDFLAGS="-L/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib -L/usr/local/lib/openmpi" | ||
make -j | ||
make check -j | ||
make install | ||
make uninstall |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
# -*- shell-script -*- | ||
# | ||
# Copyright by The HDF Group. | ||
# All rights reserved. | ||
# | ||
# This file is part of HDF5. The full HDF5 copyright notice, including | ||
# terms governing use, modification, and redistribution, is contained in | ||
# the COPYING file, which can be found at the root of the source code | ||
# distribution tree, or in https://www.hdfgroup.org/licenses. | ||
# If you do not have access to either file, you may request a copy from | ||
# [email protected]. | ||
|
||
|
||
# This file should be sourced into configure if the compiler is the | ||
# Clang Fortran compiler (flang) or a derivative. It is careful not to do | ||
# anything if the compiler is not Clang; otherwise 'cc_flags_set' is set | ||
# to 'yes' | ||
# | ||
|
||
# Get the compiler version in a way that works for clang | ||
# unless a compiler version is already known | ||
# | ||
# cc_vendor: The compiler name: flang | ||
# cc_version: Version number: 6.0.0, 7.3.0, ... 10.0.1 | ||
# | ||
if test "X-" = "X-$f9x_flags_set"; then | ||
# flang -v will return version number following "clang" | ||
f9x_version="`$FC $FCFLAGS $H5_FCFLAGS -v 2>&1 |\ | ||
grep 'clang version' | sed 's/.*clang version \([-a-z0-9\.]*\).*/\1/'`" | ||
if test -n "$f9x_version"; then | ||
f9x_vendor="flang" | ||
fi | ||
if test "X-" != "X-$f9x_version"; then | ||
|
||
# Get the compiler version numbers | ||
f9x_vers_major=`echo $f9x_version | cut -f1 -d.` | ||
f9x_vers_minor=`echo $f9x_version | cut -f2 -d.` | ||
f9x_vers_patch=`echo $f9x_version | cut -f3 -d.` | ||
test -n "$f9x_vers_major" || f9x_vers_major=0 | ||
test -n "$f9x_vers_minor" || f9x_vers_minor=0 | ||
test -n "$f9x_vers_patch" || f9x_vers_patch=0 | ||
fi | ||
fi | ||
|
||
if test "X-flang" = "X-$f9x_vendor"; then | ||
|
||
echo "compiler '$FC' is $f9x_vendor-$f9x_version" | ||
|
||
FC_BASENAME=flang | ||
F9XSUFFIXFLAG="" | ||
FSEARCH_DIRS="" | ||
|
||
############################### | ||
# Architecture-specific flags # | ||
############################### | ||
|
||
arch= | ||
# Nothing currently. (Uncomment code below and modify to add any) | ||
#case "$host_os-$host_cpu" in | ||
# *-i686) | ||
# arch="-march=i686" | ||
# ;; | ||
#esac | ||
|
||
H5_FCFLAGS="$H5_FCFLAGS $arch" | ||
|
||
############## | ||
# Production # | ||
############## | ||
|
||
PROD_FCFLAGS= | ||
|
||
######### | ||
# Debug # | ||
######### | ||
|
||
DEBUG_FCFLAGS= | ||
|
||
######################## | ||
# Enhanced Diagnostics # | ||
######################## | ||
|
||
NO_DIAGS_FCFLAGS= | ||
DIAGS_FCFLAGS= | ||
|
||
########### | ||
# Symbols # | ||
########### | ||
|
||
NO_SYMBOLS_FCFLAGS= | ||
SYMBOLS_FCFLAGS= | ||
|
||
############# | ||
# Profiling # | ||
############# | ||
|
||
PROFILE_FCFLAGS= | ||
|
||
################ | ||
# Optimization # | ||
################ | ||
|
||
HIGH_OPT_FCFLAGS="-O3" | ||
NO_OPT_FCFLAGS="-O0" | ||
DEBUG_OPT_FCFLAGS="-O0" | ||
|
||
############ | ||
# Warnings # | ||
############ | ||
|
||
########### | ||
# General # | ||
########### | ||
|
||
# We don't use OpenMP, so don't link to it | ||
H5_FCFLAGS="$H5_FCFLAGS -nomp" | ||
|
||
###################### | ||
# Developer warnings # | ||
###################### | ||
|
||
NO_DEVELOPER_WARNING_FCFLAGS= | ||
DEVELOPER_WARNING_FCFLAGS= | ||
|
||
############################# | ||
# Version-specific warnings # | ||
############################# | ||
|
||
################# | ||
# Flags are set # | ||
################# | ||
f9x_flags_set=yes | ||
fi | ||
|
||
# Clear f9x info if no flags set | ||
if test "X$f9x_flags_set" = "X"; then | ||
f9x_vendor= | ||
f9x_version= | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.