aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/llvm.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/llvm.scm')
-rw-r--r--gnu/packages/llvm.scm231
1 files changed, 125 insertions, 106 deletions
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 358fbfff0a..c500430dd5 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -87,68 +87,6 @@ as \"x86_64-linux\"."
(string-append "https://releases.llvm.org/" version "/" component "-"
version ".src.tar.xz")))
-(define-public llvm-10
- (package
- (name "llvm")
- (version "10.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (llvm-uri "llvm" version))
- (sha256
- (base32
- "1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz"))))
- (build-system cmake-build-system)
- (outputs '("out" "opt-viewer"))
- (native-inputs
- `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
- ("perl" ,perl)))
- (inputs
- `(("libffi" ,libffi)))
- (propagated-inputs
- `(("zlib" ,zlib))) ;to use output from llvm-config
- (arguments
- `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
- "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
- "-DBUILD_SHARED_LIBS:BOOL=TRUE"
- "-DLLVM_ENABLE_FFI:BOOL=TRUE"
- "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
- "-DLLVM_INSTALL_UTILS=ON") ; Needed for rustc.
-
- ;; Don't use '-g' during the build, to save space.
- #:build-type "Release"
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'shared-lib-workaround
- ;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
- ;; doesn't seem to get the correct rpath to be able to run
- ;; from the build directory. Set LD_LIBRARY_PATH as a
- ;; workaround.
- (lambda _
- (setenv "LD_LIBRARY_PATH"
- (string-append (getcwd) "/lib"))
- #t))
- (add-after 'install 'install-opt-viewer
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (opt-viewer-out (assoc-ref outputs "opt-viewer"))
- (opt-viewer-share-dir (string-append opt-viewer-out "/share"))
- (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
- (mkdir-p opt-viewer-share-dir)
- (rename-file (string-append out "/share/opt-viewer")
- opt-viewer-dir))
- #t)))))
- (home-page "https://www.llvm.org")
- (synopsis "Optimizing compiler infrastructure")
- (description
- "LLVM is a compiler infrastructure designed for compile-time, link-time,
-runtime, and idle-time optimization of programs from arbitrary programming
-languages. It currently supports compilation of C and C++ programs, using
-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
-of programming tools as well as libraries with equivalent functionality.")
- (license license:asl2.0))) ;with LLVM exceptions, see LICENSE.txt
-
(define* (clang-runtime-from-llvm llvm hash
#:optional (patches '()))
(package
@@ -512,6 +450,101 @@ output), and Binutils.")
("libc-debug" ,glibc "debug")
("libc-static" ,glibc "static")))))
+(define-public llvm-11
+ (package
+ (name "llvm")
+ (version "11.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (llvm-uri "llvm" version))
+ (sha256
+ (base32
+ "0s94lwil98w7zb7cjrbnxli0z7gklb312pkw74xs1d6zk346hgwi"))))
+ (build-system cmake-build-system)
+ (outputs '("out" "opt-viewer"))
+ (native-inputs
+ `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
+ ("perl" ,perl)))
+ (inputs
+ `(("libffi" ,libffi)))
+ (propagated-inputs
+ `(("zlib" ,zlib))) ;to use output from llvm-config
+ (arguments
+ `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
+ "-DBUILD_SHARED_LIBS:BOOL=TRUE"
+ "-DLLVM_ENABLE_FFI:BOOL=TRUE"
+ "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
+ "-DLLVM_INSTALL_UTILS=ON") ; Needed for rustc.
+
+ ;; Don't use '-g' during the build, to save space.
+ #:build-type "Release"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'shared-lib-workaround
+ ;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
+ ;; doesn't seem to get the correct rpath to be able to run
+ ;; from the build directory. Set LD_LIBRARY_PATH as a
+ ;; workaround.
+ (lambda _
+ (setenv "LD_LIBRARY_PATH"
+ (string-append (getcwd) "/lib"))
+ #t))
+ (add-after 'install 'install-opt-viewer
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (opt-viewer-out (assoc-ref outputs "opt-viewer"))
+ (opt-viewer-share-dir (string-append opt-viewer-out "/share"))
+ (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
+ (mkdir-p opt-viewer-share-dir)
+ (rename-file (string-append out "/share/opt-viewer")
+ opt-viewer-dir))
+ #t)))))
+ (home-page "https://www.llvm.org")
+ (synopsis "Optimizing compiler infrastructure")
+ (description
+ "LLVM is a compiler infrastructure designed for compile-time, link-time,
+runtime, and idle-time optimization of programs from arbitrary programming
+languages. It currently supports compilation of C and C++ programs, using
+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
+of programming tools as well as libraries with equivalent functionality.")
+ (license license:asl2.0))) ;with LLVM exceptions, see LICENSE.txt
+
+(define-public clang-runtime-11
+ (clang-runtime-from-llvm
+ llvm-11
+ "0d5j5l8phwqjjscmk8rmqn0i2i0abl537gdbkagl8fjpzy1gyjip"))
+
+(define-public clang-11
+ (clang-from-llvm llvm-11 clang-runtime-11
+ "02ajkij85966vd150iy246mv16dsaph1kfi0y8wnncp8w6nar5hg"
+ #:patches '("clang-11.0-libc-search-path.patch")
+ #:tools-extra
+ (origin
+ (method url-fetch)
+ (uri (llvm-uri "clang-tools-extra"
+ (package-version llvm-11)))
+ (sha256
+ (base32
+ "02bcwwn54661madhq4nxc069s7p7pj5gpqi8ww50w3anbpviilzy")))))
+
+(define-public clang-toolchain-11
+ (make-clang-toolchain clang-11))
+
+(define-public llvm-10
+ (package
+ (inherit llvm-11)
+ (version "10.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (llvm-uri "llvm" version))
+ (sha256
+ (base32
+ "1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz"))))))
+
(define-public clang-runtime-10
(clang-runtime-from-llvm
llvm-10
@@ -564,39 +597,9 @@ output), and Binutils.")
(define-public clang-toolchain-9
(make-clang-toolchain clang-9))
-;; Default LLVM and Clang version.
-(define-public llvm llvm-9)
-(define-public clang-runtime clang-runtime-9)
-(define-public clang clang-9)
-(define-public clang-toolchain clang-toolchain-9)
-
-(define-public lld
- (package
- (name "lld")
- (version (package-version llvm-10))
- (source (origin
- (method url-fetch)
- (uri (llvm-uri "lld" version))
- (sha256
- (base32
- "026pwcbczcg0j5c9h7hxxrn3ki81ia9m9sfn0sy0bvzffv2xg85r"))))
- (build-system cmake-build-system)
- (inputs
- `(("llvm" ,llvm-10)))
- (arguments
- `(#:build-type "Release"
- ;; TODO: Tests require the lit tool, which isn't installed by the LLVM
- ;; package.
- #:tests? #f))
- (home-page "https://lld.llvm.org/")
- (synopsis "Linker from the LLVM project")
- (description "LLD is a high-performance linker, built as a set of reusable
-components which highly leverage existing libraries in the larger LLVM Project.")
- (license license:asl2.0))) ; With LLVM exception
-
(define-public llvm-8
(package
- (inherit llvm)
+ (inherit llvm-9)
(version "8.0.0")
(source (origin
(method url-fetch)
@@ -821,19 +824,35 @@ components which highly leverage existing libraries in the larger LLVM Project."
"0846h8vn3zlc00jkmvrmy88gc6ql6014c02l4jv78fpvfigmgssg"
#:patches '("clang-3.5-libc-search-path.patch")))
-(define-public llvm-for-extempore
- (package (inherit llvm-3.8)
- (name "llvm-for-extempore")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://extempore.moso.com.au/extras/"
- "llvm-3.8.0.src-patched-for-extempore.tar.xz"))
- (sha256
- (base32
- "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))
- ;; Extempore refuses to build on architectures other than x86_64
- (supported-systems '("x86_64-linux"))))
+;; Default LLVM and Clang version.
+(define-public llvm llvm-9)
+(define-public clang-runtime clang-runtime-9)
+(define-public clang clang-9)
+(define-public clang-toolchain clang-toolchain-9)
+
+(define-public lld
+ (package
+ (name "lld")
+ (version "11.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (llvm-uri "lld" version))
+ (sha256
+ (base32
+ "077xyh7sij6mhp4dc4kdcmp9whrpz332fa12rwxnzp3wgd5bxrzg"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("llvm" ,llvm-11)))
+ (arguments
+ `(#:build-type "Release"
+ ;; TODO: Tests require the lit tool, which isn't installed by the LLVM
+ ;; package.
+ #:tests? #f))
+ (home-page "https://lld.llvm.org/")
+ (synopsis "Linker from the LLVM project")
+ (description "LLD is a high-performance linker, built as a set of reusable
+components which highly leverage existing libraries in the larger LLVM Project.")
+ (license license:asl2.0))) ; With LLVM exception
(define-public libcxx
(package