From 8f31a687ff6956c6f602a8d6f83585a48e7fcbe3 Mon Sep 17 00:00:00 2001 From: Ludvig af Klinteberg Date: Tue, 10 Sep 2024 11:09:28 +0200 Subject: [PATCH 1/3] Update FINUFFT source to v2.3.0 --- F/finufft/build_tarballs.jl | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/F/finufft/build_tarballs.jl b/F/finufft/build_tarballs.jl index bd452ec33fe..ebfd070fe8b 100644 --- a/F/finufft/build_tarballs.jl +++ b/F/finufft/build_tarballs.jl @@ -6,17 +6,14 @@ using BinaryBuilderBase include(joinpath(@__DIR__, "..", "..", "platforms", "microarchitectures.jl")) name = "finufft" -version = v"2.2.0" -commit_hash = "51892059a4b457a99a2569ac11e9e91cd2e289e7"; +version = v"2.3.0" +commit_hash = "fffdaeacb10d5d055ce5b313868a7e981cea594b" # Collection of sources required to complete build sources = [ GitSource("https://github.com/flatironinstitute/finufft.git", commit_hash) ] -# Bash recipe for building across all platforms - now using cmake which fixes the broken binaries for Apple Silicon -# Tests on Linux/x86_64 yielded a slow binary with avx512 for some reason, so disable that again? -# NOTE: This may have been due to use of GCC8, which is not recommended by FINUFFT -# TODO: Check performance on computer with AVX512, to see if we can remove this fix +# Bash recipe for building across all platforms script = raw""" cd $WORKSPACE/srcdir/finufft*/ @@ -27,7 +24,8 @@ cmake .. \ -DCMAKE_INSTALL_PREFIX="${prefix}" \ -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TARGET_TOOLCHAIN}" \ -DFINUFFT_FFTW_SUFFIX="" \ - -DFINUFFT_ARCH_FLAGS="" + -DFINUFFT_ARCH_FLAGS="" \ + -DFINUFFT_STATIC_LINKING="OFF" cmake --build . --parallel $nproc cmake --install . """ From 5ba3fbad3ca317734649fa2d8052cca9ce763c96 Mon Sep 17 00:00:00 2001 From: Ludvig af Klinteberg Date: Tue, 10 Sep 2024 15:35:54 +0200 Subject: [PATCH 2/3] Remove arm and powerpc builds --- F/finufft/build_tarballs.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/F/finufft/build_tarballs.jl b/F/finufft/build_tarballs.jl index ebfd070fe8b..1804c79aa01 100644 --- a/F/finufft/build_tarballs.jl +++ b/F/finufft/build_tarballs.jl @@ -30,8 +30,10 @@ cmake --build . --parallel $nproc cmake --install . """ +# xsimd library does not work with armv6, armv7, powerpc +abstract_platforms = filter!(p -> !(contains(arch(p), "armv") || contains(arch(p), "powerpc")), supported_platforms()) # Expand for microarchitectures on x86_64 (library doesn't have CPU dispatching) -platforms = expand_cxxstring_abis(expand_microarchitectures(supported_platforms(), ["x86_64", "avx", "avx2", "avx512"]); skip=!Sys.iswindows) +platforms = expand_cxxstring_abis(expand_microarchitectures(abstract_platforms, ["x86_64", "avx", "avx2", "avx512"]); skip=!Sys.iswindows) augment_platform_block = """ $(MicroArchitectures.augment) From 43cc7bbcd43d592ac329793ebd06ee7e909d0a50 Mon Sep 17 00:00:00 2001 From: Ludvig af Klinteberg Date: Tue, 10 Sep 2024 16:13:49 +0200 Subject: [PATCH 3/3] Remove freebsd aarch64 --- F/finufft/build_tarballs.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/F/finufft/build_tarballs.jl b/F/finufft/build_tarballs.jl index 1804c79aa01..a8696c10817 100644 --- a/F/finufft/build_tarballs.jl +++ b/F/finufft/build_tarballs.jl @@ -30,10 +30,13 @@ cmake --build . --parallel $nproc cmake --install . """ +platforms = supported_platforms() # xsimd library does not work with armv6, armv7, powerpc -abstract_platforms = filter!(p -> !(contains(arch(p), "armv") || contains(arch(p), "powerpc")), supported_platforms()) +filter!(p -> !(contains(arch(p), "armv") || contains(arch(p), "powerpc")), platforms) +# FreeBSD aarch64 does not build, remove for now +filter!(p -> !(p["os"]=="freebsd" && p["arch"]=="aarch64"), platforms) # Expand for microarchitectures on x86_64 (library doesn't have CPU dispatching) -platforms = expand_cxxstring_abis(expand_microarchitectures(abstract_platforms, ["x86_64", "avx", "avx2", "avx512"]); skip=!Sys.iswindows) +platforms = expand_cxxstring_abis(expand_microarchitectures(platforms, ["x86_64", "avx", "avx2", "avx512"]); skip=!Sys.iswindows) augment_platform_block = """ $(MicroArchitectures.augment)