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
4 changed files with 56 additions and 82 deletions
|
@ -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"]
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.8.0-rc1", sha256="ed0395880c32c48a284b115279d27d79ab1ca6fb53a4b97a8d25eba54ec97306")
|
||||
version(
|
||||
"1.7.3",
|
||||
sha256="06df2a81e6a18d0333ffa58d36f6eb84934c38984898f9e0c3072c8facaa7306",
|
||||
preferred=True,
|
||||
)
|
||||
version("1.8.2", sha256="3e2cea35bf5df963ed7b75a83e8febfc000acf1e664ecd657a0772508eb1fb5d")
|
||||
version("1.8.1", sha256="066f4ca7a2ad39b003e2af77dbecfbfb9b0a1cb1664033f657ffdbe2f374d956")
|
||||
version("1.8.0", sha256="0fa980286d6d912f24ed9f90a02930560d985e0ada8233a4ae5610884feb2438")
|
||||
|
||||
version("1.7.3", sha256="06df2a81e6a18d0333ffa58d36f6eb84934c38984898f9e0c3072c8facaa7306")
|
||||
version("1.7.2", sha256="0847943dd65001f3322b00c7dc4e12f56e70e98c6b798ccbd4f02d27ce161fef")
|
||||
version("1.7.1", sha256="17d298e50e4e3dd897246ccebd9f40ce5b89077fa36217860efaec4576aa718e")
|
||||
version("1.7.0", sha256="8e870dbef71bc72469933317a1a18214fd1b4b12f1080784af7b2c56177efcb4")
|
||||
version(
|
||||
"1.6.6",
|
||||
sha256="a8023708cadb2649395769810e6cec8afc8e352aa6d407189b6c88b86d7f5090",
|
||||
preferred=True,
|
||||
)
|
||||
|
||||
version("1.6.7", sha256="74af1dc7b5841757a06a899923a62cac04665c09829324e8bf53cfb66f7b3d61")
|
||||
version("1.6.6", sha256="a8023708cadb2649395769810e6cec8afc8e352aa6d407189b6c88b86d7f5090")
|
||||
version("1.6.5", sha256="b70ae299ff6b63a9e9cbf697147a48a31b4639476d1947cb52e4201e444f23cb")
|
||||
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("openlibm", default=True, description="Use openlibm instead of libm")
|
||||
|
||||
|
@ -87,7 +52,8 @@ class Julia(MakefilePackage):
|
|||
" version_suffix=jl +link_llvm_dylib ~internal_unwind"
|
||||
)
|
||||
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"):
|
||||
# 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("libgit2@1.3.0:1.3")
|
||||
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("mbedtls@2.28.0:2.28")
|
||||
depends_on("openlibm@0.8.1:0.8", when="+openlibm")
|
||||
|
@ -195,7 +160,8 @@ class Julia(MakefilePackage):
|
|||
|
||||
# Patches for julia
|
||||
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
|
||||
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.
|
||||
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):
|
||||
# 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"""
|
||||
|
||||
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
|
||||
# fix commits.
|
||||
version(
|
||||
"1.44.1",
|
||||
sha256="f931e7825702cbb6d07486d92e5436990cf20f91e2b56d6f759822c0f832b13e",
|
||||
url="https://github.com/JuliaLang/libuv/archive/1b2d16477fe1142adea952168d828a066e03ee4c.tar.gz",
|
||||
)
|
||||
# julia's libuv fork doesn't tag (all?) releases, so we fix commits.
|
||||
version("1.44.2", commit="e6f0e4900e195c8352f821abe2b3cffc3089547b")
|
||||
version("1.44.1", commit="1b2d16477fe1142adea952168d828a066e03ee4c")
|
||||
version("1.42.0", commit="3a63bf71de62c64097989254e4f03212e3bf5fc8")
|
||||
|
||||
@property
|
||||
def libs(self):
|
||||
|
|
Loading…
Reference in a new issue