Skip to content
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
8afb2d9
HDF5: New version 1.14.4
eschnett May 2, 2024
77ccf09
HDF5: Update autogenerated files
eschnett May 2, 2024
9e8be98
HDF5: Correct syntax error
eschnett May 3, 2024
3d29a22
HDF5: Correct libtool error
eschnett May 4, 2024
cb20059
HDF5: Correct build problems
eschnett May 4, 2024
85ce7d1
HDF5: Update compat bounds
eschnett May 5, 2024
f4639b4
HDF5: Update compat bounds
eschnett May 5, 2024
9a59617
HDF5: Update compat bounds
eschnett May 5, 2024
6190847
HDF5: Pass CC etc. to configure
eschnett May 5, 2024
9a772f9
HDF5: Simplify build script
eschnett May 6, 2024
233f8cc
HDF5: Re-add AM_V_P work-around
eschnett May 6, 2024
5465dba
HDF5: Work on configuring for Windows
eschnett May 6, 2024
f2358f8
HDF5: Correct Windows ROS3-VFD options
eschnett May 6, 2024
8d54e91
HDF5: Bisect Windows errors
eschnett May 7, 2024
7b60716
HDF5: Bisect Windows errors
eschnett May 7, 2024
69d928d
HDF5: Bisect Windows errors
eschnett May 7, 2024
19bf39f
HDF5: Bisect Windows errors
eschnett May 7, 2024
acb6937
HDF5: Bisect Windows errors
eschnett May 7, 2024
04a0178
HDF5: Bisect Windows errors
eschnett May 7, 2024
2aa3cc9
HDF5: Bisect Windows errors
eschnett May 7, 2024
86bbd8e
HDF5: Bisect Windows errors
eschnett May 7, 2024
cf1c487
HDF5: Bisect Windows errors
eschnett May 7, 2024
225bb4c
HDF5: Update to 1.14.4.3
eschnett May 29, 2024
786b09d
Merge branch 'master' into eschnett/HDF5-1.14.4
eschnett Oct 2, 2024
d1b11fc
HDF5: Update to 1.14.5
eschnett Oct 2, 2024
c20661a
HDF5: Update compat versions
eschnett Jan 23, 2025
c36075c
HDF5: Remove debug statements
eschnett Jan 23, 2025
390b93a
HDF5: Debug Windows builds
eschnett Jan 23, 2025
cc7d988
HDF5: Remove outdated code
eschnett Jan 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 36 additions & 25 deletions H/HDF5/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ const YGGDRASIL_DIR = "../.."
include(joinpath(YGGDRASIL_DIR, "platforms", "mpi.jl"))

name = "HDF5"
version = v"1.14.3"
version = v"1.14.4"
version_dir = "$(version).2"
version_file ="$(version)-2"

# Collection of sources required to complete build
sources = [
ArchiveSource("https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$(version.major).$(version.minor)/hdf5-$(version)/src/hdf5-$(version).tar.bz2",
"9425f224ed75d1280bb46d6f26923dd938f9040e7eaebf57e66ec7357c08f917"),
ArchiveSource("https://github.com/HDFGroup/hdf5/releases/download/hdf5_$(version_dir)/hdf5-$(version_file).tar.gz",
"618934b9d45e34f328393e1fde73a8a67e973f8e5a6bae8b609d098a84cb0efe"),
DirectorySource("./bundled"),
]

Expand Down Expand Up @@ -108,18 +110,20 @@ FLAGS=()
if [[ ${target} == *-mingw* ]]; then
FLAGS+=(LDFLAGS='-no-undefined')
# For OpenSSL's libcrypto for ROS3-VFD
export CFLAGS="${CFLAGS} -L${prefix}/lib64"
export FCFLAGS="${FCFLAGS} -L${prefix}/lib64"
export CFLAGS="${CFLAGS} -L${prefix}/lib"
export FCFLAGS="${FCFLAGS} -L${prefix}/lib"
fi

# Check which VFD are available
ENABLE_DIRECT_VFD=yes
ENABLE_MIRROR_VFD=yes
ENABLE_ROS3_VFD=yes
if [[ ${target} == *-darwin* ]]; then
ENABLE_DIRECT_VFD=no
elif [[ ${target} == *-w64-mingw32 ]]; then
ENABLE_DIRECT_VFD=no
ENABLE_MIRROR_VFD=no
ENABLE_ROS3_VFD=no # libcrypto isn't found (why?)
fi

# Configure MPI
Expand All @@ -130,23 +134,24 @@ if grep -q MSMPI_VER ${prefix}/include/mpi.h; then
# Do not enable MPI; the function MPI_File_close is not defined
# in the 32-bit version of Microsoft MPI 10.1.12498.18
:
elif false; then
# DISABLED
else
# 64-bit system
# DISABLED
# Do not enable MPI
# Mingw-w64 runtime failure:
# 32 bit pseudo relocation at 0000000007828E2C out of range, targeting 00007FFDE78BAD90, yielding the value 00007FFDE0091F60.
# Consider: https://www.symscape.com/configure-msmpi-for-mingw-w64
# gendef msmpi.dll - creates msmpi.def
# x86_64-w64-mingw32-dlltool -d msmpi.def -l libmsmpi.a -D msmpi.dll - creates libmsmpi.a

# Hide static libraries
rm ${prefix}/lib/msmpi*.lib
# Make shared libraries visible
ln -s msmpi.dll ${libdir}/libmsmpi.dll
ENABLE_PARALLEL=yes
export FCFLAGS="${FCFLAGS} -I${prefix}/src -I${prefix}/include -fno-range-check"
export LIBS="-L${libdir} -lmsmpi"
# # Hide static libraries
# rm ${prefix}/lib/msmpi*.lib
# # Make shared libraries visible
# ln -s msmpi.dll ${libdir}/libmsmpi.dll
# ENABLE_PARALLEL=yes
# export FCFLAGS="${FCFLAGS} -I${prefix}/src -I${prefix}/include -fno-range-check"
# export LIBS="-L${libdir} -lmsmpi"
:
fi
else
ENABLE_PARALLEL=yes
Expand Down Expand Up @@ -174,7 +179,7 @@ fi
--enable-hl=yes \
--enable-mirror-vfd="$ENABLE_MIRROR_VFD" \
--enable-parallel="$ENABLE_PARALLEL" \
--enable-ros3-vfd=yes \
--enable-ros3-vfd="$ENABLE_ROS3_VFD" \
--enable-static=no \
--enable-tests=no \
--enable-tools=yes \
Expand Down Expand Up @@ -218,6 +223,13 @@ fi
atomic_patch -p1 ${WORKSPACE}/srcdir/patches/fortran-src-Makefile.patch
atomic_patch -p1 ${WORKSPACE}/srcdir/patches/hl-fortran-src-Makefile.patch

# Remove empty `-l` flags from libtool
# (Why are they there? They should not be.)
# Run the command several times to handle multiple (overlapping) occurrences.
sed -i 's/"-l /"/g;s/ -l / /g;s/-l"/"/g' libtool
sed -i 's/"-l /"/g;s/ -l / /g;s/-l"/"/g' libtool
sed -i 's/"-l /"/g;s/ -l / /g;s/-l"/"/g' libtool

# `AM_V_P` is not defined. This must be a shell command that returns
# true or false depending on whether `make` should be verbose. This is
# probably caused by a bug in automake, or in how automake was used.
Expand All @@ -242,7 +254,7 @@ platforms = supported_platforms()
platforms = expand_cxxstring_abis(platforms)
platforms = expand_gfortran_versions(platforms)

platforms, platform_dependencies = MPI.augment_platforms(platforms; MPItrampoline_compat="5.3.1", OpenMPI_compat="4.1.6, 5")
platforms, platform_dependencies = MPI.augment_platforms(platforms; MPItrampoline_compat="5.3.3", OpenMPI_compat="4.1.6, 5")
# TODO: Use MPI only on non-Windows platforms
# platforms = [filter(!Sys.iswindows, mpi_platforms); filter(Sys.iswindows, platforms)]

Expand All @@ -255,7 +267,7 @@ platforms = filter(p -> !(p["mpi"] == "mpitrampoline" && Sys.isfreebsd(p)), plat

# The products that we will ensure are always built
products = [
# # HDF5 tools
# HDF5 tools
ExecutableProduct("h5clear", :h5clear),
ExecutableProduct("h5copy", :h5copy),
ExecutableProduct("h5debug", :h5debug),
Expand Down Expand Up @@ -286,12 +298,13 @@ products = [
# Dependencies that must be installed before this package can be built
dependencies = [
# To ensure that the correct version of libgfortran is found at runtime
Dependency(PackageSpec(name="CompilerSupportLibraries_jll", uuid="e66e0078-7015-5450-92f7-15fbd957f2ae")),
Dependency("LibCURL_jll"; compat="7.73,8"),
Dependency("OpenSSL_jll"; compat="3.0.8"),
Dependency("Zlib_jll"),
# Dependency("dlfcn_win32_jll"; platforms=filter(Sys.iswindows, platforms)),
Dependency("libaec_jll"), # This is the successor of szlib
Dependency(PackageSpec(name="CompilerSupportLibraries_jll", uuid="e66e0078-7015-5450-92f7-15fbd957f2ae"), v"1.1.1";
compat="1.1"),
Dependency("LibCURL_jll", v"8.7.1"; compat="7, 8"),
Dependency("OpenSSL_jll", v"3.0.13"; compat="3"),
Dependency("Zlib_jll", v"1.3.1"; compat="1.2"),
# Dependency("dlfcn_win32_jll", v"1.3.1"; compat="1.3", platforms=filter(Sys.iswindows, platforms)),
Dependency("libaec_jll", v"1.1.2"; compat="1.1"), # This is the successor of szlib
]
append!(dependencies, platform_dependencies)

Expand All @@ -303,5 +316,3 @@ ENV["MPITRAMPOLINE_DELAY_INIT"] = "1"
# GCC 5 reports an ICE on i686-linux-gnu-libgfortran3-cxx11-mpi+mpich
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies;
augment_platform_block, clang_use_lld=false, julia_compat="1.6", preferred_gcc_version=v"6")

# Trigger build: 1
Loading