gnu: LLVM: Promote LLVM 9 to the default 'llvm' package.

* gnu/packages/llvm.scm (llvm-8): Rename to ...
(llvm): ... this.  Update to 9.0.1.
[license]: Change to ASL2.0.
(clang-runtime-from-llvm)[license]: Inherit from LLVM.
(clang-from-llvm)[license]: Conditionally choose license based on version.
(llvm-9, clang-runtime-8, clang-8, clang-toolchain-8): New public variables.
(llvm-7): Inherit from LLVM-8 (for the license change).
(llvm-6): Inherit from LLVM-7.
(llvm-3.9.1): Inherit from LLVM-6.
(llvm-3.8): Inherit from LLVM-3.9.1.
(llvm-3.7): Inherit from LLVM-3.8.
(llvm-3.6): Inherit from LLVM-3.7.
(llvm-3.5): Inherit from LLVM-3.6.
(libcxx, libclc, libomp): Update to 9.0.1.
This commit is contained in:
Marius Bakke 2020-02-24 00:54:06 +01:00
parent b77a901e06
commit 00ede15708
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA

View file

@ -83,17 +83,17 @@ (define (llvm-download-uri component version)
(string-append "https://releases.llvm.org/" version "/" component "-" (string-append "https://releases.llvm.org/" version "/" component "-"
version ".src.tar.xz"))) version ".src.tar.xz")))
(define-public llvm-8 (define-public llvm
(package (package
(name "llvm") (name "llvm")
(version "8.0.0") (version "9.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (llvm-download-uri "llvm" version)) (uri (llvm-download-uri "llvm" version))
(sha256 (sha256
(base32 (base32
"0k124sxkfhfi1rca6kzkdraf4axhx99x3cw2rk55056628dvwwl8")))) "16hwp3qa54c3a3v7h8nlw0fh5criqh0hlr1skybyk0cz70gyx880"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2 `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
@ -131,9 +131,7 @@ (define-public llvm-8
front-ends derived from GCC 4.0.1. A new front-end for the C family of front-ends derived from GCC 4.0.1. A new front-end for the C family of
languages is in development. The compiler infrastructure includes mirror sets languages is in development. The compiler infrastructure includes mirror sets
of programming tools as well as libraries with equivalent functionality.") of programming tools as well as libraries with equivalent functionality.")
(license license:ncsa))) (license license:asl2.0))) ;with LLVM exceptions, see LICENSE.txt
(define-public llvm llvm-8)
(define* (clang-runtime-from-llvm llvm hash (define* (clang-runtime-from-llvm llvm hash
#:optional (patches '())) #:optional (patches '()))
@ -161,7 +159,7 @@ (define* (clang-runtime-from-llvm llvm hash
functions for C and C++ programs. It also provides header files that allow C functions for C and C++ programs. It also provides header files that allow C
and C++ source code to interface with the \"sanitization\" passes of the clang and C++ source code to interface with the \"sanitization\" passes of the clang
compiler. In LLVM this library is called \"compiler-rt\".") compiler. In LLVM this library is called \"compiler-rt\".")
(license license:ncsa) (license (package-license llvm))
;; <https://compiler-rt.llvm.org/> doesn't list MIPS as supported. ;; <https://compiler-rt.llvm.org/> doesn't list MIPS as supported.
(supported-systems (delete "mips64el-linux" %supported-systems)))) (supported-systems (delete "mips64el-linux" %supported-systems))))
@ -307,7 +305,9 @@ (define* (clang-from-llvm llvm clang-runtime hash
Objective-C++ programming languages. It uses LLVM as its back end. The Clang Objective-C++ programming languages. It uses LLVM as its back end. The Clang
project includes the Clang front end, the Clang static analyzer, and several project includes the Clang front end, the Clang static analyzer, and several
code analysis tools.") code analysis tools.")
(license license:ncsa))) (license (if (version>=? version "9.0")
license:asl2.0 ;with LLVM exceptions
license:ncsa))))
(define (make-clang-toolchain clang) (define (make-clang-toolchain clang)
(package (package
@ -357,44 +357,49 @@ (define (make-clang-toolchain clang)
(define-public clang-runtime (define-public clang-runtime
(clang-runtime-from-llvm (clang-runtime-from-llvm
llvm llvm
"1c919wsm17xnv7lr8bhpq2wkq8113lzlw6hzhfr737j59x3wfddl")) "0xwh79g3zggdabxgnd0bphry75asm1qz7mv3hcqihqwqr6aspgy2"))
(define-public clang (define-public clang
(clang-from-llvm llvm clang-runtime (clang-from-llvm llvm clang-runtime
"0svk1f70hvpwrjp6x5i9kqwrqwxnmcrw5s7f4cxyd100mdd12k08" "0ls2h3iv4finqyflyhry21qhc9cm9ga7g1zq21020p065qmm2y2p"
#:patches '("clang-7.0-libc-search-path.patch"))) #:patches '("clang-9.0-libc-search-path.patch")))
(define-public clang-toolchain (define-public clang-toolchain
(make-clang-toolchain clang)) (make-clang-toolchain clang))
(define-public llvm-9 (define-public llvm-9 llvm)
(define-public clang-runtime-9 clang-runtime)
(define-public clang-9 clang)
(define-public clang-toolchain-9 clang-toolchain)
(define-public llvm-8
(package (package
(inherit llvm) (inherit llvm)
(version "9.0.1") (version "8.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (llvm-download-uri "llvm" version)) (uri (llvm-download-uri "llvm" version))
(sha256 (sha256
(base32 (base32
"16hwp3qa54c3a3v7h8nlw0fh5criqh0hlr1skybyk0cz70gyx880")))) "0k124sxkfhfi1rca6kzkdraf4axhx99x3cw2rk55056628dvwwl8"))))
(license license:asl2.0))) (license license:ncsa)))
(define-public clang-runtime-9 (define-public clang-runtime-8
(clang-runtime-from-llvm (clang-runtime-from-llvm
llvm-9 llvm-8
"0xwh79g3zggdabxgnd0bphry75asm1qz7mv3hcqihqwqr6aspgy2")) "1c919wsm17xnv7lr8bhpq2wkq8113lzlw6hzhfr737j59x3wfddl"))
(define-public clang-9 (define-public clang-8
(clang-from-llvm llvm-9 clang-runtime-9 (clang-from-llvm llvm-8 clang-runtime-8
"0ls2h3iv4finqyflyhry21qhc9cm9ga7g1zq21020p065qmm2y2p" "0svk1f70hvpwrjp6x5i9kqwrqwxnmcrw5s7f4cxyd100mdd12k08"
#:patches '("clang-9.0-libc-search-path.patch"))) #:patches '("clang-7.0-libc-search-path.patch")))
(define-public clang-toolchain-9 (define-public clang-toolchain-8
(make-clang-toolchain clang-9)) (make-clang-toolchain clang-8))
(define-public llvm-7 (define-public llvm-7
(package (package
(inherit llvm) (inherit llvm-8)
(version "7.0.1") (version "7.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -418,7 +423,7 @@ (define-public clang-toolchain-7
(define-public llvm-6 (define-public llvm-6
(package (package
(inherit llvm) (inherit llvm-7)
(version "6.0.1") (version "6.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -441,7 +446,7 @@ (define-public clang-toolchain-6
(make-clang-toolchain clang-6)) (make-clang-toolchain clang-6))
(define-public llvm-3.9.1 (define-public llvm-3.9.1
(package (inherit llvm) (package (inherit llvm-6)
(name "llvm") (name "llvm")
(version "3.9.1") (version "3.9.1")
(source (source
@ -466,7 +471,7 @@ (define-public clang-3.9.1
#:patches '("clang-3.8-libc-search-path.patch"))) #:patches '("clang-3.8-libc-search-path.patch")))
(define-public llvm-3.8 (define-public llvm-3.8
(package (inherit llvm) (package (inherit llvm-3.9.1)
(name "llvm") (name "llvm")
(version "3.8.1") (version "3.8.1")
(source (source
@ -490,7 +495,7 @@ (define-public clang-3.8
#:patches '("clang-3.8-libc-search-path.patch"))) #:patches '("clang-3.8-libc-search-path.patch")))
(define-public llvm-3.7 (define-public llvm-3.7
(package (inherit llvm) (package (inherit llvm-3.8)
(version "3.7.1") (version "3.7.1")
(source (source
(origin (origin
@ -513,7 +518,7 @@ (define-public clang-3.7
#:patches '("clang-3.5-libc-search-path.patch"))) #:patches '("clang-3.5-libc-search-path.patch")))
(define-public llvm-3.6 (define-public llvm-3.6
(package (inherit llvm) (package (inherit llvm-3.7)
(version "3.6.2") (version "3.6.2")
(source (source
(origin (origin
@ -535,7 +540,7 @@ (define-public clang-3.6
#:patches '("clang-3.5-libc-search-path.patch"))) #:patches '("clang-3.5-libc-search-path.patch")))
(define-public llvm-3.5 (define-public llvm-3.5
(package (inherit llvm) (package (inherit llvm-3.6)
(version "3.5.2") (version "3.5.2")
(source (source
(origin (origin
@ -572,14 +577,14 @@ (define-public llvm-for-extempore
(define-public libcxx (define-public libcxx
(package (package
(name "libcxx") (name "libcxx")
(version (package-version llvm)) (version "9.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (llvm-download-uri "libcxx" version)) (uri (llvm-download-uri "libcxx" version))
(sha256 (sha256
(base32 (base32
"1qlx3wlxrnc5cwc1fcfc2vhfsl7j4294hi8y5kxj8hy8wxsjd462")))) "0d2bj5i6mk4caq7skd5nsdmz8c2m5w5anximl5wz3x32p08zz089"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("clang" ,clang) `(("clang" ,clang)
@ -610,7 +615,7 @@ (define-public libcxx-6
(define-public libclc (define-public libclc
(package (package
(name "libclc") (name "libclc")
(version (package-version llvm)) (version "9.0.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -620,7 +625,7 @@ (define-public libclc
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"052h16wjcnqginzp7ki4il2xmm25v9nyk0wcz7cg03gbryhl7aqa")))) "1d1qayvrvvc1di7s7jfxnjvxq2az4lwq1sw1b2gq2ic0nksvajz0"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -649,13 +654,13 @@ (define-public libclc
(define-public libomp (define-public libomp
(package (package
(name "libomp") (name "libomp")
(version (package-version llvm)) (version "9.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (llvm-download-uri "openmp" version)) (uri (llvm-download-uri "openmp" version))
(sha256 (sha256
(base32 (base32
"1mf9cpgvix34xlpv0inkgl3qmdvgvp96f7sksqizri0n5xfp1cgp")) "1knafnpp0f7hylx8q20lkd6g1sf0flly572dayc5d5kghh7hd52w"))
(file-name (string-append "libomp-" version ".tar.xz")))) (file-name (string-append "libomp-" version ".tar.xz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
;; XXX: Note this gets built with GCC because building with Clang itself ;; XXX: Note this gets built with GCC because building with Clang itself