julia: add latest 1.8.x and 1.6.x releases and update deps, remove deprecated versions (#32956)
* julia: add latest 1.8.x and 1.6.x releases and update deps, remove deprecated versions * get libuv verisons right * resurrect libuv 1.44.1
This commit is contained in:
parent
831d7979ca
commit
dcf157d3a9
@ -1,27 +0,0 @@
|
|||||||
From c9c2082a162e916d0f86241453b30473dcd63044 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Harmen Stoppels <harmenstoppels@gmail.com>
|
|
||||||
Date: Tue, 24 May 2022 14:03:48 +0200
|
|
||||||
Subject: [PATCH] llvm: add NDEBUG when assertion mode is off
|
|
||||||
|
|
||||||
`llvm-config --cxxflags` unfortunately does not set `-DNDEBUG`, which
|
|
||||||
Julia needs to set correctly when including LLVM header files.
|
|
||||||
---
|
|
||||||
src/Makefile | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/Makefile b/src/Makefile
|
|
||||||
index e6d83b1e1f4e9..263a4b34155d6 100644
|
|
||||||
--- a/src/Makefile
|
|
||||||
+++ b/src/Makefile
|
|
||||||
@@ -110,6 +110,11 @@ PUBLIC_HEADER_TARGETS := $(addprefix $(build_includedir)/julia/,$(notdir $(PUBLI
|
|
||||||
LLVM_LDFLAGS := $(shell $(LLVM_CONFIG_HOST) --ldflags)
|
|
||||||
LLVM_CXXFLAGS := $(shell $(LLVM_CONFIG_HOST) --cxxflags)
|
|
||||||
|
|
||||||
+# llvm-config --cxxflags does not return -DNDEBUG
|
|
||||||
+ifeq ($(shell $(LLVM_CONFIG_HOST) --assertion-mode),OFF)
|
|
||||||
+LLVM_CXXFLAGS += -DNDEBUG
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
ifeq ($(JULIACODEGEN),LLVM)
|
|
||||||
ifneq ($(USE_SYSTEM_LLVM),0)
|
|
||||||
CG_LLVMLINK += $(LLVM_LDFLAGS) $(shell $(LLVM_CONFIG_HOST) --libs --system-libs)
|
|
@ -26,55 +26,20 @@ class Julia(MakefilePackage):
|
|||||||
maintainers = ["glennpj", "vchuravy", "haampie"]
|
maintainers = ["glennpj", "vchuravy", "haampie"]
|
||||||
|
|
||||||
version("master", branch="master")
|
version("master", branch="master")
|
||||||
version("1.8.0-rc1", sha256="ed0395880c32c48a284b115279d27d79ab1ca6fb53a4b97a8d25eba54ec97306")
|
version("1.8.2", sha256="3e2cea35bf5df963ed7b75a83e8febfc000acf1e664ecd657a0772508eb1fb5d")
|
||||||
version(
|
version("1.8.1", sha256="066f4ca7a2ad39b003e2af77dbecfbfb9b0a1cb1664033f657ffdbe2f374d956")
|
||||||
"1.7.3",
|
version("1.8.0", sha256="0fa980286d6d912f24ed9f90a02930560d985e0ada8233a4ae5610884feb2438")
|
||||||
sha256="06df2a81e6a18d0333ffa58d36f6eb84934c38984898f9e0c3072c8facaa7306",
|
|
||||||
preferred=True,
|
version("1.7.3", sha256="06df2a81e6a18d0333ffa58d36f6eb84934c38984898f9e0c3072c8facaa7306")
|
||||||
)
|
|
||||||
version("1.7.2", sha256="0847943dd65001f3322b00c7dc4e12f56e70e98c6b798ccbd4f02d27ce161fef")
|
version("1.7.2", sha256="0847943dd65001f3322b00c7dc4e12f56e70e98c6b798ccbd4f02d27ce161fef")
|
||||||
version("1.7.1", sha256="17d298e50e4e3dd897246ccebd9f40ce5b89077fa36217860efaec4576aa718e")
|
version("1.7.1", sha256="17d298e50e4e3dd897246ccebd9f40ce5b89077fa36217860efaec4576aa718e")
|
||||||
version("1.7.0", sha256="8e870dbef71bc72469933317a1a18214fd1b4b12f1080784af7b2c56177efcb4")
|
version("1.7.0", sha256="8e870dbef71bc72469933317a1a18214fd1b4b12f1080784af7b2c56177efcb4")
|
||||||
version(
|
|
||||||
"1.6.6",
|
version("1.6.7", sha256="74af1dc7b5841757a06a899923a62cac04665c09829324e8bf53cfb66f7b3d61")
|
||||||
sha256="a8023708cadb2649395769810e6cec8afc8e352aa6d407189b6c88b86d7f5090",
|
version("1.6.6", sha256="a8023708cadb2649395769810e6cec8afc8e352aa6d407189b6c88b86d7f5090")
|
||||||
preferred=True,
|
|
||||||
)
|
|
||||||
version("1.6.5", sha256="b70ae299ff6b63a9e9cbf697147a48a31b4639476d1947cb52e4201e444f23cb")
|
version("1.6.5", sha256="b70ae299ff6b63a9e9cbf697147a48a31b4639476d1947cb52e4201e444f23cb")
|
||||||
version("1.6.4", sha256="a4aa921030250f58015201e28204bff604a007defc5a379a608723e6bb1808d4")
|
version("1.6.4", sha256="a4aa921030250f58015201e28204bff604a007defc5a379a608723e6bb1808d4")
|
||||||
|
|
||||||
# We've deprecated these versions, so that we can remove them in Spack 0.18
|
|
||||||
# They are still available in Spack 0.17. Julia 0.17.0 is the first version that
|
|
||||||
# can be built enitrely from Spack packages, without a network connection during
|
|
||||||
# the build.
|
|
||||||
for v in [
|
|
||||||
"1.6.3",
|
|
||||||
"1.6.2",
|
|
||||||
"1.6.1",
|
|
||||||
"1.6.0",
|
|
||||||
"1.5.4",
|
|
||||||
"1.5.3",
|
|
||||||
"1.5.2",
|
|
||||||
"1.5.1",
|
|
||||||
"1.5.0",
|
|
||||||
"1.4.2",
|
|
||||||
"1.4.1",
|
|
||||||
"1.4.0",
|
|
||||||
"1.3.1",
|
|
||||||
"1.2.0",
|
|
||||||
"1.1.1",
|
|
||||||
"1.0.0",
|
|
||||||
"0.6.2",
|
|
||||||
"0.5.2",
|
|
||||||
"0.5.1",
|
|
||||||
"0.5.0",
|
|
||||||
"0.4.7",
|
|
||||||
"0.4.6",
|
|
||||||
"0.4.5",
|
|
||||||
"0.4.3",
|
|
||||||
]:
|
|
||||||
version(v, deprecated=True)
|
|
||||||
|
|
||||||
variant("precompile", default=True, description="Improve julia startup time")
|
variant("precompile", default=True, description="Improve julia startup time")
|
||||||
variant("openlibm", default=True, description="Use openlibm instead of libm")
|
variant("openlibm", default=True, description="Use openlibm instead of libm")
|
||||||
|
|
||||||
@ -87,7 +52,8 @@ class Julia(MakefilePackage):
|
|||||||
" version_suffix=jl +link_llvm_dylib ~internal_unwind"
|
" version_suffix=jl +link_llvm_dylib ~internal_unwind"
|
||||||
)
|
)
|
||||||
depends_on("libuv", when="@:1.7")
|
depends_on("libuv", when="@:1.7")
|
||||||
depends_on("libuv-julia", when="@1.8:")
|
depends_on("libuv-julia@1.42.0", when="@1.8.0:1.8.1")
|
||||||
|
depends_on("libuv-julia@1.44.2", when="@1.8.2:")
|
||||||
|
|
||||||
with when("@1.8.0:1.8"):
|
with when("@1.8.0:1.8"):
|
||||||
# libssh2.so.1, libpcre2-8.so.0, mbedtls.so.14, mbedcrypto.so.7, mbedx509.so.1
|
# libssh2.so.1, libpcre2-8.so.0, mbedtls.so.14, mbedcrypto.so.7, mbedx509.so.1
|
||||||
@ -96,7 +62,6 @@ class Julia(MakefilePackage):
|
|||||||
depends_on("libblastrampoline@5.1.0:5")
|
depends_on("libblastrampoline@5.1.0:5")
|
||||||
depends_on("libgit2@1.3.0:1.3")
|
depends_on("libgit2@1.3.0:1.3")
|
||||||
depends_on("libssh2@1.10.0:1.10")
|
depends_on("libssh2@1.10.0:1.10")
|
||||||
depends_on("libuv-julia@1.44.1")
|
|
||||||
depends_on("llvm@13.0.1 shlib_symbol_version=jl")
|
depends_on("llvm@13.0.1 shlib_symbol_version=jl")
|
||||||
depends_on("mbedtls@2.28.0:2.28")
|
depends_on("mbedtls@2.28.0:2.28")
|
||||||
depends_on("openlibm@0.8.1:0.8", when="+openlibm")
|
depends_on("openlibm@0.8.1:0.8", when="+openlibm")
|
||||||
@ -195,7 +160,8 @@ class Julia(MakefilePackage):
|
|||||||
|
|
||||||
# Patches for julia
|
# Patches for julia
|
||||||
patch("julia-1.6-system-libwhich-and-p7zip-symlink.patch", when="@1.6.0:1.6")
|
patch("julia-1.6-system-libwhich-and-p7zip-symlink.patch", when="@1.6.0:1.6")
|
||||||
patch("use-add-rpath.patch")
|
patch("use-add-rpath.patch", when="@:1.8.0")
|
||||||
|
patch("use-add-rpath-2.patch", when="@1.8.1:")
|
||||||
|
|
||||||
# Fix gfortran abi detection https://github.com/JuliaLang/julia/pull/44026
|
# Fix gfortran abi detection https://github.com/JuliaLang/julia/pull/44026
|
||||||
patch("fix-gfortran.patch", when="@1.7.0:1.7.2")
|
patch("fix-gfortran.patch", when="@1.7.0:1.7.2")
|
||||||
@ -209,7 +175,6 @@ class Julia(MakefilePackage):
|
|||||||
|
|
||||||
# Make sure Julia sets -DNDEBUG when including LLVM header files.
|
# Make sure Julia sets -DNDEBUG when including LLVM header files.
|
||||||
patch("llvm-NDEBUG.patch", when="@1.7.0:1.7")
|
patch("llvm-NDEBUG.patch", when="@1.7.0:1.7")
|
||||||
patch("llvm-NDEBUG-1.8.patch", when="@1.8.0:1.8")
|
|
||||||
|
|
||||||
def patch(self):
|
def patch(self):
|
||||||
# The system-libwhich-libblastrampoline.patch causes a rebuild of docs as it
|
# The system-libwhich-libblastrampoline.patch causes a rebuild of docs as it
|
||||||
|
38
var/spack/repos/builtin/packages/julia/use-add-rpath-2.patch
Normal file
38
var/spack/repos/builtin/packages/julia/use-add-rpath-2.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index d38311dce7..3c7ad0fcff 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -344,7 +344,7 @@ ifneq ($(DARWIN_FRAMEWORK),1)
|
||||||
|
endif
|
||||||
|
else ifneq (,$(findstring $(OS),Linux FreeBSD))
|
||||||
|
for j in $(JL_TARGETS) ; do \
|
||||||
|
- $(PATCHELF) --set-rpath '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j; \
|
||||||
|
+ $(PATCHELF) --add-rpath '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j; \
|
||||||
|
done
|
||||||
|
endif
|
||||||
|
|
||||||
|
@@ -364,11 +364,11 @@ endif
|
||||||
|
|
||||||
|
# Set rpath for libjulia-internal, which is moving from `../lib` to `../lib/julia`. We only need to do this for Linux/FreeBSD
|
||||||
|
ifneq (,$(findstring $(OS),Linux FreeBSD))
|
||||||
|
- $(PATCHELF) --set-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
|
||||||
|
- $(PATCHELF) --set-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
|
||||||
|
+ $(PATCHELF) --add-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
|
||||||
|
+ $(PATCHELF) --add-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
|
||||||
|
ifeq ($(BUNDLE_DEBUG_LIBS),1)
|
||||||
|
- $(PATCHELF) --set-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
|
||||||
|
- $(PATCHELF) --set-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
|
||||||
|
+ $(PATCHELF) --add-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
|
||||||
|
+ $(PATCHELF) --add-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
@@ -400,7 +400,7 @@ ifeq ($(OS),FreeBSD)
|
||||||
|
# don't set libgfortran's RPATH, it won't be able to find its friends on systems
|
||||||
|
# that don't have the exact GCC port installed used for the build.
|
||||||
|
for lib in $(DESTDIR)$(private_libdir)/libgfortran*$(SHLIB_EXT)*; do \
|
||||||
|
- $(PATCHELF) --set-rpath '$$ORIGIN' $$lib; \
|
||||||
|
+ $(PATCHELF) --add-rpath '$$ORIGIN' $$lib; \
|
||||||
|
done
|
||||||
|
endif
|
||||||
|
|
@ -9,15 +9,13 @@ class LibuvJulia(AutotoolsPackage):
|
|||||||
"""Multi-platform library with a focus on asynchronous IO"""
|
"""Multi-platform library with a focus on asynchronous IO"""
|
||||||
|
|
||||||
homepage = "https://libuv.org"
|
homepage = "https://libuv.org"
|
||||||
url = "https://github.com/JuliaLang/libuv/archive/refs/heads/julia-uv2-1.44.1.tar.gz"
|
url = "https://github.com/JuliaLang/libuv/archive/refs/heads/julia-uv2-1.44.2.tar.gz"
|
||||||
|
git = "https://github.com/JuliaLang/libuv.git"
|
||||||
|
|
||||||
# julia's libuv fork doesn't tag releases, only has release branches, so we
|
# julia's libuv fork doesn't tag (all?) releases, so we fix commits.
|
||||||
# fix commits.
|
version("1.44.2", commit="e6f0e4900e195c8352f821abe2b3cffc3089547b")
|
||||||
version(
|
version("1.44.1", commit="1b2d16477fe1142adea952168d828a066e03ee4c")
|
||||||
"1.44.1",
|
version("1.42.0", commit="3a63bf71de62c64097989254e4f03212e3bf5fc8")
|
||||||
sha256="f931e7825702cbb6d07486d92e5436990cf20f91e2b56d6f759822c0f832b13e",
|
|
||||||
url="https://github.com/JuliaLang/libuv/archive/1b2d16477fe1142adea952168d828a066e03ee4c.tar.gz",
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def libs(self):
|
def libs(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user