julia: 1.8.0-rc1 (#31064)
This commit is contained in:
parent
1dfdaa1025
commit
33fee003b8
7 changed files with 82 additions and 7 deletions
27
var/spack/repos/builtin/packages/julia/llvm-NDEBUG-1.8.patch
Normal file
27
var/spack/repos/builtin/packages/julia/llvm-NDEBUG-1.8.patch
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
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,6 +26,7 @@ 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.7.3', sha256='06df2a81e6a18d0333ffa58d36f6eb84934c38984898f9e0c3072c8facaa7306', preferred=True)
|
version('1.7.3', sha256='06df2a81e6a18d0333ffa58d36f6eb84934c38984898f9e0c3072c8facaa7306', preferred=True)
|
||||||
version('1.7.2', sha256='0847943dd65001f3322b00c7dc4e12f56e70e98c6b798ccbd4f02d27ce161fef')
|
version('1.7.2', sha256='0847943dd65001f3322b00c7dc4e12f56e70e98c6b798ccbd4f02d27ce161fef')
|
||||||
version('1.7.1', sha256='17d298e50e4e3dd897246ccebd9f40ce5b89077fa36217860efaec4576aa718e')
|
version('1.7.1', sha256='17d298e50e4e3dd897246ccebd9f40ce5b89077fa36217860efaec4576aa718e')
|
||||||
|
@ -52,7 +53,21 @@ class Julia(MakefilePackage):
|
||||||
# but also so that llvm-config --libfiles gives only the dylib. Without
|
# but also so that llvm-config --libfiles gives only the dylib. Without
|
||||||
# it it also gives static libraries, and breaks Julia's build.
|
# it it also gives static libraries, and breaks Julia's build.
|
||||||
depends_on('llvm targets=amdgpu,bpf,nvptx,webassembly version_suffix=jl +link_llvm_dylib ~internal_unwind')
|
depends_on('llvm targets=amdgpu,bpf,nvptx,webassembly version_suffix=jl +link_llvm_dylib ~internal_unwind')
|
||||||
depends_on('libuv')
|
depends_on('libuv', when='@:1.7')
|
||||||
|
depends_on('libuv-julia', when='@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
|
||||||
|
# openlibm.so.4, libblastrampoline.so.5, libgit2.so.1.3, libnghttp2.so.14,
|
||||||
|
# libcurl.so.4
|
||||||
|
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')
|
||||||
|
depends_on('nghttp2@1.47.0:1.47')
|
||||||
|
|
||||||
with when('@1.7.0:1.7'):
|
with when('@1.7.0:1.7'):
|
||||||
# libssh2.so.1, libpcre2-8.so.0, mbedtls.so.13, mbedcrypto.so.5, mbedx509.so.1
|
# libssh2.so.1, libpcre2-8.so.0, mbedtls.so.13, mbedcrypto.so.5, mbedx509.so.1
|
||||||
|
@ -76,16 +91,16 @@ class Julia(MakefilePackage):
|
||||||
depends_on('openlibm@0.7.0:0.7', when='+openlibm')
|
depends_on('openlibm@0.7.0:0.7', when='+openlibm')
|
||||||
|
|
||||||
# Patches for llvm
|
# Patches for llvm
|
||||||
depends_on('llvm', patches='llvm7-symver-jlprefix.patch')
|
depends_on('llvm', patches='llvm7-symver-jlprefix.patch', when='@:1.7')
|
||||||
depends_on('llvm', when='^llvm@11.0.1', patches=patch(
|
depends_on('llvm', when='^llvm@11.0.1', patches=patch(
|
||||||
'https://raw.githubusercontent.com/spack/patches/0b543955683a903d711a3e95ff29a4ce3951ca13/julia/llvm-11.0.1-julia-1.6.patch',
|
'https://raw.githubusercontent.com/spack/patches/0b543955683a903d711a3e95ff29a4ce3951ca13/julia/llvm-11.0.1-julia-1.6.patch',
|
||||||
sha256='8866ee0595272b826b72d173301a2e625855e80680a84af837f1ed6db4657f42'))
|
sha256='8866ee0595272b826b72d173301a2e625855e80680a84af837f1ed6db4657f42'))
|
||||||
depends_on('llvm', when='^llvm@12.0.1', patches=patch(
|
depends_on('llvm', when='^llvm@12.0.1', patches=patch(
|
||||||
'https://github.com/JuliaLang/llvm-project/compare/fed41342a82f5a3a9201819a82bf7a48313e296b...980d2f60a8524c5546397db9e8bbb7d6ea56c1b7.patch',
|
'https://github.com/JuliaLang/llvm-project/compare/fed41342a82f5a3a9201819a82bf7a48313e296b...980d2f60a8524c5546397db9e8bbb7d6ea56c1b7.patch',
|
||||||
sha256='10cb42f80c2eaad3e9c87cb818b6676f1be26737bdf972c77392d71707386aa4'))
|
sha256='10cb42f80c2eaad3e9c87cb818b6676f1be26737bdf972c77392d71707386aa4'))
|
||||||
depends_on('llvm', when='^llvm@13.0.0', patches=patch(
|
depends_on('llvm', when='^llvm@13.0.1', patches=patch(
|
||||||
'https://github.com/JuliaLang/llvm-project/compare/d7b669b3a30345cfcdb2fde2af6f48aa4b94845d...6ced34d2b63487a88184c3c468ceda166d10abba.patch',
|
'https://github.com/JuliaLang/llvm-project/compare/75e33f71c2dae584b13a7d1186ae0a038ba98838...2f4460bd46aa80d4fe0d80c3dabcb10379e8d61b.patch',
|
||||||
sha256='92f022176ab85ded517a9b7aa04df47e19a5def88f291e0c31100128823166c1'))
|
sha256='45f72c59ae5cf45461e9cd8b224ca49b739d885c79b3786026433c6c22f83b5f'))
|
||||||
|
|
||||||
# Patches for libuv
|
# Patches for libuv
|
||||||
depends_on('libuv', when='^libuv@1.39.0', patches=patch(
|
depends_on('libuv', when='^libuv@1.39.0', patches=patch(
|
||||||
|
@ -136,6 +151,7 @@ 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
|
||||||
|
@ -179,6 +195,8 @@ def edit(self, spec, prefix):
|
||||||
# LLVM compatible name for the JIT
|
# LLVM compatible name for the JIT
|
||||||
julia_cpu_target = get_best_target(spec.target, 'clang', spec['llvm'].version)
|
julia_cpu_target = get_best_target(spec.target, 'clang', spec['llvm'].version)
|
||||||
|
|
||||||
|
libuv = 'libuv-julia' if '^libuv-julia' in spec else 'libuv'
|
||||||
|
|
||||||
options = [
|
options = [
|
||||||
'prefix:={0}'.format(prefix),
|
'prefix:={0}'.format(prefix),
|
||||||
'MARCH:={0}'.format(march),
|
'MARCH:={0}'.format(march),
|
||||||
|
@ -214,8 +232,8 @@ def edit(self, spec, prefix):
|
||||||
'USE_BLAS64:=1',
|
'USE_BLAS64:=1',
|
||||||
'LIBBLASNAME:={0}'.format(libblas),
|
'LIBBLASNAME:={0}'.format(libblas),
|
||||||
'LIBLAPACKNAME:={0}'.format(liblapack),
|
'LIBLAPACKNAME:={0}'.format(liblapack),
|
||||||
'override LIBUV:={0}'.format(spec['libuv'].libs.libraries[0]),
|
'override LIBUV:={0}'.format(spec[libuv].libs.libraries[0]),
|
||||||
'override LIBUV_INC:={0}'.format(spec['libuv'].headers.directories[0]),
|
'override LIBUV_INC:={0}'.format(spec[libuv].headers.directories[0]),
|
||||||
'override USE_LLVM_SHLIB:=1',
|
'override USE_LLVM_SHLIB:=1',
|
||||||
# make rebuilds a bit faster for now, not sure if this should be kept
|
# make rebuilds a bit faster for now, not sure if this should be kept
|
||||||
'JULIA_PRECOMPILE:={0}'.format(
|
'JULIA_PRECOMPILE:={0}'.format(
|
||||||
|
|
|
@ -15,6 +15,7 @@ class Libblastrampoline(MakefilePackage):
|
||||||
|
|
||||||
maintainers = ['haampie', 'giordano']
|
maintainers = ['haampie', 'giordano']
|
||||||
|
|
||||||
|
version('5.1.0', sha256='55ac0c8f9cb91b2ed2db014be8394c9dadf3b5f26bd8af6dca9d6f20ca72b8fd')
|
||||||
version('5.0.2', sha256='2e96fa62957719351da3e4dff8cd0949449073708f5564dae0a224a556432356')
|
version('5.0.2', sha256='2e96fa62957719351da3e4dff8cd0949449073708f5564dae0a224a556432356')
|
||||||
version('5.0.1', sha256='1066b4d157276e41ca66ca94f0f8c2900c221b49da2df3c410e6f8bf1ce9b488')
|
version('5.0.1', sha256='1066b4d157276e41ca66ca94f0f8c2900c221b49da2df3c410e6f8bf1ce9b488')
|
||||||
# v5.0.0 contains a bug, fixed in v5.0.1, which causes segmentation faults
|
# v5.0.0 contains a bug, fixed in v5.0.1, which causes segmentation faults
|
||||||
|
|
21
var/spack/repos/builtin/packages/libuv-julia/package.py
Normal file
21
var/spack/repos/builtin/packages/libuv-julia/package.py
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
# 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")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libs(self):
|
||||||
|
return find_libraries(['libuv'], root=self.prefix, recursive=True)
|
|
@ -178,6 +178,7 @@ class Llvm(CMakePackage, CudaPackage):
|
||||||
variant("python", default=False, description="Install python bindings")
|
variant("python", default=False, description="Install python bindings")
|
||||||
|
|
||||||
variant('version_suffix', default='none', description="Add a symbol suffix")
|
variant('version_suffix', default='none', description="Add a symbol suffix")
|
||||||
|
variant('shlib_symbol_version', default='none', description="Add shared library symbol version", when='@13:')
|
||||||
variant('z3', default=False, description='Use Z3 for the clang static analyzer')
|
variant('z3', default=False, description='Use Z3 for the clang static analyzer')
|
||||||
|
|
||||||
provides('libllvm@14', when='@14.0.0:14')
|
provides('libllvm@14', when='@14.0.0:14')
|
||||||
|
@ -577,6 +578,11 @@ def cmake_args(self):
|
||||||
if version_suffix != 'none':
|
if version_suffix != 'none':
|
||||||
cmake_args.append(define('LLVM_VERSION_SUFFIX', version_suffix))
|
cmake_args.append(define('LLVM_VERSION_SUFFIX', version_suffix))
|
||||||
|
|
||||||
|
shlib_symbol_version = spec.variants.get('shlib_symbol_version', None)
|
||||||
|
if shlib_symbol_version is not None and shlib_symbol_version.value != 'none':
|
||||||
|
cmake_args.append(define('LLVM_SHLIB_SYMBOL_VERSION',
|
||||||
|
shlib_symbol_version.value))
|
||||||
|
|
||||||
if python.version >= Version("3"):
|
if python.version >= Version("3"):
|
||||||
cmake_args.append(define("Python3_EXECUTABLE", python.command.path))
|
cmake_args.append(define("Python3_EXECUTABLE", python.command.path))
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -13,6 +13,7 @@ class Nghttp2(AutotoolsPackage):
|
||||||
homepage = "https://nghttp2.org/"
|
homepage = "https://nghttp2.org/"
|
||||||
url = "https://github.com/nghttp2/nghttp2/releases/download/v1.26.0/nghttp2-1.26.0.tar.gz"
|
url = "https://github.com/nghttp2/nghttp2/releases/download/v1.26.0/nghttp2-1.26.0.tar.gz"
|
||||||
|
|
||||||
|
version('1.47.0', sha256='62f50f0e9fc479e48b34e1526df8dd2e94136de4c426b7680048181606832b7c')
|
||||||
version('1.44.0', sha256='3e4824d02ae27eca931e0bb9788df00a26e5fd8eb672cf52cbb89c1463ba16e9')
|
version('1.44.0', sha256='3e4824d02ae27eca931e0bb9788df00a26e5fd8eb672cf52cbb89c1463ba16e9')
|
||||||
version('1.26.0', sha256='daf7c0ca363efa25b2cbb1e4bd925ac4287b664c3d1465f6a390359daa3f0cf1')
|
version('1.26.0', sha256='daf7c0ca363efa25b2cbb1e4bd925ac4287b664c3d1465f6a390359daa3f0cf1')
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ class Openlibm(MakefilePackage):
|
||||||
|
|
||||||
maintainers = ['haampie']
|
maintainers = ['haampie']
|
||||||
|
|
||||||
|
version('0.8.1', sha256='ba8a282ecd92d0033f5656bb20dfc6ea3fb83f90ba69291ac8f7beba42dcffcf')
|
||||||
version('0.8.0', sha256='03620768df4ca526a63dd675c6de95a5c9d167ff59555ce57a61c6bf49e400ee')
|
version('0.8.0', sha256='03620768df4ca526a63dd675c6de95a5c9d167ff59555ce57a61c6bf49e400ee')
|
||||||
version('0.7.5', sha256='be983b9e1e40e696e8bbb7eb8f6376d3ca0ae675ae6d82936540385b0eeec15b')
|
version('0.7.5', sha256='be983b9e1e40e696e8bbb7eb8f6376d3ca0ae675ae6d82936540385b0eeec15b')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue