Skip to content

Commit

Permalink
Merge branch 'master' into eschnett/LaMEM-mpitrampoline
Browse files Browse the repository at this point in the history
* master: (62 commits)
  iso_codes v4.10.0 (JuliaPackaging#5226)
  PTSCOTCH: Require MPItrampoline 5, and build with OpenMPI as well (JuliaPackaging#5180)
  MAGEMin: Require MPItrampoline 5 (JuliaPackaging#5222)
  LAMMPS: Require MPItrampoline 5 (JuliaPackaging#5221)
  CrypoMiniSat: Require MPItrampoline 5 (JuliaPackaging#5219)
  PETSc: Require MPItrampoline 5 (JuliaPackaging#5223)
  [SBML] missing functions patch (JuliaPackaging#5224)
  HYPRE: Require MPItrampoline 5 (JuliaPackaging#5220)
  openPMD_api: Require MPItrampoline 5 (JuliaPackaging#5218)
  COSMA: Simplify configuring OpenMPI (JuliaPackaging#5217)
  AMReX: Require MPItrampoline 5 (JuliaPackaging#5215)
  Register Elfutils executables. (JuliaPackaging#5214)
  Wizard recipe: DDSCAT-v7.3.3 (JuliaPackaging#5210)
  ADIOS2: Require MPItrampoline 5 (JuliaPackaging#5212)
  Bump compat bounds of Python_jll dependencies. (JuliaPackaging#5211)
  mpi.jl: Require version 5 of MPItrampoline (JuliaPackaging#5209)
  [web3go] Add new package (JuliaPackaging#5195)
  add tls config patch for FLINT 2.9.0 (JuliaPackaging#5207)
  Upgrade enzyme to refs/tags/v0.0.35 (JuliaPackaging#5200)
  [PROJ] bump version to 9.0.1 (JuliaPackaging#5208)
  ...
  • Loading branch information
eschnett committed Jul 25, 2022
2 parents 0c5a0fc + 4f105bc commit ec41da2
Show file tree
Hide file tree
Showing 80 changed files with 1,465 additions and 447 deletions.
15 changes: 5 additions & 10 deletions A/ADIOS2/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ const YGGDRASIL_DIR = "../.."
include(joinpath(YGGDRASIL_DIR, "platforms", "mpi.jl"))

name = "ADIOS2"
version = v"2.8.1"
version = v"2.8.3"
adios_version = v"2.8.2"

# Collection of sources required to complete build
sources = [
ArchiveSource("https://github.com/ornladios/ADIOS2/archive/refs/tags/v$(version).tar.gz",
"3f515b442bbd52e3189866b121613fe3b59edb8845692ea86fad83d1eba35d93"),
ArchiveSource("https://github.com/ornladios/ADIOS2/archive/refs/tags/v$(adios_version).tar.gz",
"9909f6409dc44b2c28c1fda0042dab4b711f25ec3277ef0cb6ffc40f5483910d"),
DirectorySource("./bundled"),
]

Expand All @@ -35,11 +36,7 @@ if [[ "$target" == *-apple-* ]]; then
# and wants to use "-framework" as a stand-alone option. This fails
# gloriously, and cmake concludes that MPI is not available.
archopts="-DMPI_C_ADDITIONAL_INCLUDE_DIRS='' -DMPI_C_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs;-lmpi;-lpmpi' -DMPI_CXX_ADDITIONAL_INCLUDE_DIRS='' -DMPI_CXX_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs;-lmpi;-lpmpi'"
elif grep -q OMPI_MAJOR_VERSION $prefix/include/mpi.h; then
archopts="-DMPI_C_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs;-lmpi;-lopen-rte;-lopen-pal;-lm;-lz' -DMPI_CXX_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs;-lmpi;-lopen-rte;-lopen-pal;-lm;-lz'"
fi
elif grep -q OMPI_MAJOR_VERSION $prefix/include/mpi.h; then
archopts="-DMPI_C_LIBRARIES='-lmpi;-lopen-rte;-lopen-pal;-lm;-lz' -DMPI_CXX_LIBRARIES='-lmpi;-lopen-rte;-lopen-pal;-lm;-lz'"
elif [[ "$target" == x86_64-w64-mingw32 ]]; then
# - The MSMPI Fortran bindings are missing a function; see
# <https://github.com/microsoft/Microsoft-MPI/issues/7>
Expand Down Expand Up @@ -84,9 +81,7 @@ install_license ../Copyright.txt ../LICENSE
augment_platform_block = """
using Base.BinaryPlatforms
$(MPI.augment)
function augment_platform!(platform::Platform)
augment_mpi!(platform)
end
augment_platform!(platform::Platform) = augment_mpi!(platform)
"""

# These are the platforms we will build for by default, unless further
Expand Down
9 changes: 5 additions & 4 deletions A/AMReX/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ include(joinpath(YGGDRASIL_DIR, "platforms", "mpi.jl"))

name = "AMReX"
version_string = "22.07"
version = VersionNumber(version_string)
# version = VersionNumber(version_string)
version = v"22.7.1"

# Collection of sources required to complete build
sources = [
Expand Down Expand Up @@ -83,9 +84,9 @@ dependencies = [

platforms, platform_dependencies = MPI.augment_platforms(platforms)
# Avoid platforms where the MPI implementation isn't supported
# AMReX's cmake stage fails with OpenMPI on almost all architectures
platforms = filter(p -> !(p["mpi"] == "openmpi"), platforms)
# With MPItrampoline, select only those platforms where MPItrampoline is actually built
# OpenMPI
platforms = filter(p -> !(p["mpi"] == "openmpi" && arch(p) == "armv6l" && libc(p) == "glibc"), platforms)
# MPItrampoline
platforms = filter(p -> !(p["mpi"] == "mpitrampoline" && (Sys.iswindows(p) || libc(p) == "musl")), platforms)
platforms = filter(p -> !(p["mpi"] == "mpitrampoline" && Sys.isfreebsd(p)), platforms)
append!(dependencies, platform_dependencies)
Expand Down
2 changes: 1 addition & 1 deletion B/Blosc2/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using BinaryBuilder, Pkg

name = "Blosc2"
version = v"2.0.4"
version = v"2.2.0"

# Collection of sources required to build Blosc2
sources = [
Expand Down
37 changes: 37 additions & 0 deletions B/Btop/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Note that this script can accept some limited command-line arguments, run
# `julia build_tarballs.jl --help` to see a usage message.
using BinaryBuilder

name = "Btop"
version = v"1.2.8"

# Collection of sources required to complete build
sources = [
ArchiveSource("https://github.com/aristocratos/btop/archive/refs/tags/v$(version).tar.gz",
"7944b06e3181cc1080064adf1e9eb4f466af0b84a127df6697430736756a89ac"),
]

# Bash recipe for building across all platforms
script = raw"""
cd $WORKSPACE/srcdir/btop*/
# Don't do lto, doesn't seem to work on FreeBSD
make -j${nproc} OPTFLAGS="-O2 -ftree-loop-vectorize"
make install PREFIX=${prefix}
"""

# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
platforms = expand_cxxstring_abis(supported_platforms(; exclude=Sys.iswindows); skip=Returns(false))

# The products that we will ensure are always built
products = [
ExecutableProduct("btop", :btop)
]

# Dependencies that must be installed before this package can be built
dependencies = Dependency[
]

# Build the tarballs, and possibly a `build.jl` as well.
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies;
julia_compat = "1.6", preferred_gcc_version=v"10")
17 changes: 2 additions & 15 deletions C/COSMA/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const YGGDRASIL_DIR = "../.."
include(joinpath(YGGDRASIL_DIR, "platforms", "mpi.jl"))

name = "COSMA"
version = v"2.5.1"
version = v"2.5.2"
cosma_version = v"2.5.1"

# Collection of sources required to complete build
Expand Down Expand Up @@ -44,18 +44,6 @@ else
OPENMP_CMAKE_FLAGS=
fi
MPI_CMAKE_FLAGS=
if grep -q OMPI_MAJOR_VERSION $prefix/include/mpi.h; then
if [[ "$target" == *-apple-* ]]; then
# MPI_CMAKE_FLAGS="-DMPI_C_ADDITIONAL_INCLUDE_DIRS='' -DMPI_C_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs;-lmpi;-lopen-rte;-lopen-pal;-lm;-lz' -DMPI_C_LIB_NAMES='mpi;open-rte;open-pal' -DMPI_CXX_ADDITIONAL_INCLUDE_DIRS='' -DMPI_CXX_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs;-lmpi;-lopen-rte;-lopen-pal;-lm;-lz' -DMPI_CXX_LIB_NAMES='mpi;open-rte;open-pal' -DMPI_mpi_LIBRARY=$prefix/lib/libmpi.dylib -DMPI_open-rte_LIBRARY=$prefix/lib/libopen-rte.dylib -DMPI_open-pal_LIBRARY=$prefix/lib/libopen-pal.dylib"
MPI_CMAKE_FLAGS="-DMPI_C_ADDITIONAL_INCLUDE_DIRS='' -DMPI_C_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs' -DMPI_C_LIB_NAMES='mpi' -DMPI_CXX_ADDITIONAL_INCLUDE_DIRS='' -DMPI_CXX_LIBRARIES='-Wl,-flat_namespace;-Wl,-commons,use_dylibs' -DMPI_CXX_LIB_NAMES='mpi' -DMPI_mpi_LIBRARY=$prefix/lib/libmpi.dylib"
# elif [[ "$target" == powerpc64le-* ]]; then
else
# MPI_CMAKE_FLAGS="-DMPI_C_ADDITIONAL_INCLUDE_DIRS='' -DMPI_C_LIBRARIES='-Wl,--enable-new-dtags;-lmpi;-lopen-rte;-lopen-pal;-lm;-ldl;-lutil,-lrt' -DMPI_C_LIB_NAMES='mpi;open-rte;open-pal' -DMPI_CXX_ADDITIONAL_INCLUDE_DIRS='' -DMPI_CXX_LIBRARIES='-Wl,--enable-new-dtags;-lmpi;-lopen-rte;-lopen-pal;-lm;-ldl;-lutil,-lrt' -DMPI_CXX_LIB_NAMES='mpi;open-rte;open-pal' -DMPI_mpi_LIBRARY=$prefix/lib/libmpi.so -DMPI_open-rte_LIBRARY=$prefix/lib/libopen-rte.so -DMPI_open-pal_LIBRARY=$prefix/lib/libopen-pal.so"
MPI_CMAKE_FLAGS="-DMPI_C_ADDITIONAL_INCLUDE_DIRS='' -DMPI_C_LIBRARIES='-Wl,--enable-new-dtags' -DMPI_C_LIB_NAMES='mpi' -DMPI_CXX_ADDITIONAL_INCLUDE_DIRS='' -DMPI_CXX_LIBRARIES='-Wl,--enable-new-dtags' -DMPI_CXX_LIB_NAMES='mpi' -DMPI_mpi_LIBRARY=$prefix/lib/libmpi.so"
fi
fi
mkdir build
cd build
Expand All @@ -75,8 +63,7 @@ cmake ../COSMA-* \
-DMPI_CXX_COMPILER=$bindir/mpicxx \
-DOPENBLAS_LIBRARIES=$BLAS_LAPACK_LIB \
-DOPENBLAS_INCLUDE_DIR=$includedir \
$OPENMP_CMAKE_FLAGS \
$MPI_CMAKE_FLAGS
$OPENMP_CMAKE_FLAGS
make -j${nproc}
make install
Expand Down
38 changes: 38 additions & 0 deletions C/CSB/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Note that this script can accept some limited command-line arguments, run
# `julia build_tarballs.jl --help` to see a usage message.
using BinaryBuilder, BinaryBuilderBase, Pkg

name = "CSB"
version = v"1.0.0"

# Collection of sources required to complete build
sources = [
GitSource("https://github.com/fcdimitr/CSB.git", "ccab7d424fd7e5bfee4ebdb750dfa219228c7a56")
]

# Bash recipe for building across all platforms
script = raw"""
cd $WORKSPACE/srcdir/CSB/
meson --cross-file=${MESON_TARGET_TOOLCHAIN%.*}_gcc.meson build
cd build/
ninja -j${nproc}
ninja install
"""

# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
platforms = filter!(p -> proc_family(p) == "intel" && !Sys.iswindows(p), supported_platforms())


# The products that we will ensure are always built
products = [
LibraryProduct("libcsb", :libcsb)
]

# Dependencies that must be installed before this package can be built
dependencies = [
Dependency(PackageSpec(name="cilkrts_jll", uuid="71772805-00bc-5a29-9044-a26d819b7806"))
]

# Build the tarballs, and possibly a `build.jl` as well.
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version = v"7.1.0")
2 changes: 1 addition & 1 deletion C/CryptoMiniSat/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const YGGDRASIL_DIR = "../.."
include(joinpath(YGGDRASIL_DIR, "platforms", "mpi.jl"))

name = "CryptoMiniSat"
version = v"5.8.1"
version = v"5.8.2"
cryptominisat_version = v"5.8.0"

# Collection of sources required to complete build
Expand Down
38 changes: 38 additions & 0 deletions D/DDSCAT/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Note that this script can accept some limited command-line arguments, run
# `julia build_tarballs.jl --help` to see a usage message.
using BinaryBuilder, Pkg

name = "DDSCAT"
version = v"7.3.3"

# Collection of sources required to complete build
sources = [
ArchiveSource("http://ddscat.wikidot.com/local--files/downloads/ddscat$(version)_220120.tgz", "06f2673a45fcff20b8ed9f37d5bedeb84604d7a9fb10f627096833163769d1e7")
]

# Bash recipe for building across all platforms
script = raw"""
cd $WORKSPACE/srcdir/src
make ddscat
mv ddscat "ddscat${exeext}" || true
install -Dvm 755 "ddscat${exeext}" "${bindir}/ddscat${exeext}"
install_license /usr/share/licenses/GPL-3.0+
"""

# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
platforms = expand_gfortran_versions(filter(x->arch(x) != "powerpc64le", supported_platforms()))


# The products that we will ensure are always built
products = [
ExecutableProduct("ddscat", :ddscat)
]

# Dependencies that must be installed before this package can be built
dependencies = [
Dependency(PackageSpec(name="CompilerSupportLibraries_jll", uuid="e66e0078-7015-5450-92f7-15fbd957f2ae")),
]

# Build the tarballs, and possibly a `build.jl` as well.
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6")
21 changes: 20 additions & 1 deletion E/Elfutils/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,32 @@ install_license COPYING*
"""

# Only build for Linux
platforms = filter!(Sys.islinux, supported_platforms())
platforms = supported_platforms()
filter!(Sys.islinux, platforms)
filter!(p -> arch(p) != "armv6l", platforms)

# The products that we will ensure are always built
products = [
LibraryProduct("libasm", :libasm),
LibraryProduct("libdw", :libdw),
LibraryProduct("libelf", :libelf),
ExecutableProduct("eu-addr2line", :eu_addr2line),
ExecutableProduct("eu-ar", :eu_ar),
ExecutableProduct("eu-elfclassify", :eu_elfclassify),
ExecutableProduct("eu-elfcmp", :eu_elfcmp),
ExecutableProduct("eu-elfcompress", :eu_elfcompress),
ExecutableProduct("eu-elflint", :eu_elflint),
ExecutableProduct("eu-findtextrel", :eu_findtextrel),
ExecutableProduct("eu-make-debug-archive", :eu_make_debug_archive),
ExecutableProduct("eu-nm", :eu_nm),
ExecutableProduct("eu-objdump", :eu_objdump),
ExecutableProduct("eu-ranlib", :eu_ranlib),
ExecutableProduct("eu-readelf", :eu_readelf),
ExecutableProduct("eu-size", :eu_size),
ExecutableProduct("eu-stack", :eu_stack),
ExecutableProduct("eu-strings", :eu_strings),
ExecutableProduct("eu-strip", :eu_strip),
ExecutableProduct("eu-unstrip", :eu_unstrip),
]

# Dependencies that must be installed before this package can be built
Expand Down
9 changes: 5 additions & 4 deletions E/Enzyme/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ include(joinpath(YGGDRASIL_DIR, "platforms", "llvm.jl"))
name = "Enzyme"
repo = "https://github.com/EnzymeAD/Enzyme.git"

auto_version = "refs/tags/v0.0.33"
auto_version = "refs/tags/v0.0.35"
version = VersionNumber(split(auto_version, "/")[end])

llvm_versions = [v"11.0.1", v"12.0.1", v"13.0.1", v"14.0.2"]

# Collection of sources required to build attr
sources = [GitSource(repo, "441d19707761539e197a352c2bb904107995181b")]
sources = [GitSource(repo, "4eb8421fdace49a83671e902c0a2c2bccf4f9897")]

# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
Expand All @@ -38,13 +38,14 @@ NATIVE_CMAKE_FLAGS+=(-DBC_LOAD_FLAGS="-target ${target} --sysroot=/opt/${target}
cmake -B build-native -S enzyme -GNinja "${NATIVE_CMAKE_FLAGS[@]}"
# Only build blasheaders (and eventually tblgen)
ninja -C build-native -j ${nproc} blasheaders
# Only build blasheaders and tblgen
ninja -C build-native -j ${nproc} blasheaders enzyme-tblgen
# 2. Cross-compile
CMAKE_FLAGS=()
CMAKE_FLAGS+=(-DENZYME_EXTERNAL_SHARED_LIB=ON)
CMAKE_FLAGS+=(-DBC_LOAD_HEADER=`pwd`/build-native/BCLoad/gsl/blas_headers.h)
CMAKE_FLAGS+=(-DEnzyme_TABLEGEN_EXE=`pwd`/build-native/tools/enzyme-tblgen/enzyme-tblgen)
CMAKE_FLAGS+=(-DENZYME_CLANG=OFF)
# RelWithDebInfo for decent performance, with debugability
CMAKE_FLAGS+=(-DCMAKE_BUILD_TYPE=RelWithDebInfo)
Expand Down
6 changes: 5 additions & 1 deletion F/FLINT/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ using BinaryBuilder, Pkg
# and possibly other packages.
name = "FLINT"
upstream_version = v"2.9.0"
version_offset = v"0.0.0"
version_offset = v"0.0.1"
version = VersionNumber(upstream_version.major * 100 + version_offset.major,
upstream_version.minor * 100 + version_offset.minor,
upstream_version.patch * 100 + version_offset.patch)
Expand All @@ -47,6 +47,10 @@ elif [[ ${target} == *mingw* ]]; then
extraflags=--reentrant
fi
for f in ${WORKSPACE}/srcdir/patches/*.patch; do
atomic_patch -p1 ${f}
done
./configure --prefix=$prefix --disable-static --enable-shared --with-gmp=$prefix --with-mpfr=$prefix --with-blas=$prefix ${extraflags}
make -j${nproc}
make install LIBDIR=$(basename ${libdir})
Expand Down
23 changes: 23 additions & 0 deletions F/FLINT/bundled/patches/fix_tls.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
diff --git a/configure b/configure
index 3eceecf41..304b1d5a9 100755
--- a/configure
+++ b/configure
@@ -687,15 +687,9 @@ if [ "$TLS" = "1" ]; then
echo "__thread int x = 42; int main(int argc, char ** argv) { return x != 42; }" > build/test-tls.c
$CC build/test-tls.c -o ./build/test-tls > /dev/null 2>&1
if [ $? -eq 0 ]; then
- build/test-tls > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- printf "%s\n" "yes"
- echo "yes" >> config.log
- CONFIG_TLS="#define FLINT_USES_TLS 1"
- else
- printf "%s\n" "no"
- echo "no" >> config.log
- fi
+ printf "%s\n" "yes"
+ echo "yes" >> config.log
+ CONFIG_TLS="#define FLINT_USES_TLS 1"
rm -f build/test-tls{,.c}
else
rm -f build/test-tls.c
28 changes: 0 additions & 28 deletions F/FLINT/bundled/patches/remove_endianness_check.patch

This file was deleted.

4 changes: 2 additions & 2 deletions G/GDAL/build_tarballs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ using BinaryBuilder, Pkg

name = "GDAL"
upstream_version = v"3.5.0"
version_offset = v"0.0.0"
version_offset = v"0.0.1"
version = VersionNumber(upstream_version.major * 100 + version_offset.major,
upstream_version.minor * 100 + version_offset.minor,
upstream_version.patch * 100 + version_offset.patch)
Expand Down Expand Up @@ -113,7 +113,7 @@ products = [

# Dependencies that must be installed before this package can be built
dependencies = [
Dependency("GEOS_jll"; compat="~3.10"),
Dependency("GEOS_jll"; compat="~3.11"),
Dependency("PROJ_jll"; compat="~900.0"),
Dependency("Zlib_jll"),
Dependency("SQLite_jll"),
Expand Down
Loading

0 comments on commit ec41da2

Please sign in to comment.