diff options
Diffstat (limited to 'gnu/packages/llvm.scm')
-rw-r--r-- | gnu/packages/llvm.scm | 88 |
1 files changed, 59 insertions, 29 deletions
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 13223fbb66..bb5a4a141c 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -3,9 +3,9 @@ ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> -;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> -;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de> @@ -47,15 +47,15 @@ (define-public llvm (package (name "llvm") - (version "6.0.1") + (version "7.0.1") (source (origin (method url-fetch) - (uri (string-append "http://llvm.org/releases/" + (uri (string-append "https://llvm.org/releases/" version "/llvm-" version ".src.tar.xz")) (sha256 (base32 - "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn")))) + "16s196wqzdw4pmri15hadzqgdi926zln3an2viwyq0kini6zr3d3")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2 @@ -95,21 +95,6 @@ languages is in development. The compiler infrastructure includes mirror sets of programming tools as well as libraries with equivalent functionality.") (license license:ncsa))) -;; TODO: Build Mesa with LLVM 7 in the next staging cycle. -;; TODO: Make LLVM 7 the default LLVM once Clang is also upgraded. -(define-public llvm-7.0.1 - (package (inherit llvm) - (name "llvm") - (version "7.0.1") - (source - (origin - (method url-fetch) - (uri (string-append "http://llvm.org/releases/" - version "/llvm-" version ".src.tar.xz")) - (sha256 - (base32 - "16s196wqzdw4pmri15hadzqgdi926zln3an2viwyq0kini6zr3d3")))))) - (define* (clang-runtime-from-llvm llvm hash #:optional (patches '())) (package @@ -118,7 +103,7 @@ of programming tools as well as libraries with equivalent functionality.") (source (origin (method url-fetch) - (uri (string-append "http://llvm.org/releases/" + (uri (string-append "https://llvm.org/releases/" version "/compiler-rt-" version ".src.tar.xz")) (sha256 (base32 hash)) (patches (map search-patch patches)))) @@ -150,7 +135,7 @@ compiler. In LLVM this library is called \"compiler-rt\".") (source (origin (method url-fetch) - (uri (string-append "http://llvm.org/releases/" + (uri (string-append "https://llvm.org/releases/" version "/cfe-" version ".src.tar.xz")) (sha256 (base32 hash)) (patches (map search-patch patches)))) @@ -190,7 +175,7 @@ compiler. In LLVM this library is called \"compiler-rt\".") (compiler-rt (assoc-ref inputs "clang-runtime"))) (case (string->number ,(version-major (package-version clang-runtime))) - ((6) + ((or 6 7) ;; Link to libclang_rt files from clang-runtime. (substitute* "lib/Driver/ToolChain.cpp" (("getDriver\\(\\)\\.ResourceDir") @@ -274,13 +259,58 @@ project includes the Clang front end, the Clang static analyzer, and several code analysis tools.") (license license:ncsa))) +(define-public libcxx + (package + (name "libcxx") + (version (package-version llvm)) + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/libcxx-" version ".src.tar.xz")) + (sha256 + (base32 + "0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n")))) + (build-system cmake-build-system) + (native-inputs + `(("clang" ,clang) + ("llvm" ,llvm))) + (home-page "https://libcxx.llvm.org") + (synopsis "C++ standard library") + (description + "This package provides an implementation of the C++ standard library for +use with Clang, targeting C++11, C++14 and above.") + (license license:expat))) + (define-public clang-runtime (clang-runtime-from-llvm llvm - "1fcr3jn24yr8lh36nc0c4ikli4744i2q9m1ik67p1jymwwaixkgl")) + "065ybd8fsc4h2hikbdyricj6pyv4r7r7kpcikhb2y5zf370xybkq")) (define-public clang (clang-from-llvm llvm clang-runtime + "067lwggnbg0w1dfrps790r5l6k8n5zwhlsw7zb6zvmfpwpfn4nx4" + #:patches '("clang-7.0-libc-search-path.patch"))) + +(define-public llvm-6 + (package + (inherit llvm) + (version "6.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://llvm.org/releases/" + version "/llvm-" version ".src.tar.xz")) + (sha256 + (base32 + "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn")))))) + +(define-public clang-runtime-6 + (clang-runtime-from-llvm + llvm-6 + "1fcr3jn24yr8lh36nc0c4ikli4744i2q9m1ik67p1jymwwaixkgl")) + +(define-public clang-6 + (clang-from-llvm llvm-6 clang-runtime "0rxn4rh7rrnsqbdgp4gzc8ishbkryhpl1kd3mpnxzpxxhla3y93w" #:patches '("clang-6.0-libc-search-path.patch"))) @@ -291,7 +321,7 @@ code analysis tools.") (source (origin (method url-fetch) - (uri (string-append "http://llvm.org/releases/" + (uri (string-append "https://llvm.org/releases/" version "/llvm-" version ".src.tar.xz")) (sha256 (base32 @@ -341,7 +371,7 @@ code analysis tools.") (source (origin (method url-fetch) - (uri (string-append "http://llvm.org/releases/" + (uri (string-append "https://llvm.org/releases/" version "/llvm-" version ".src.tar.xz")) (sha256 (base32 @@ -365,7 +395,7 @@ code analysis tools.") (source (origin (method url-fetch) - (uri (string-append "http://llvm.org/releases/" + (uri (string-append "https://llvm.org/releases/" version "/llvm-" version ".src.tar.xz")) (sha256 (base32 @@ -388,7 +418,7 @@ code analysis tools.") (source (origin (method url-fetch) - (uri (string-append "http://llvm.org/releases/" + (uri (string-append "https://llvm.org/releases/" version "/llvm-" version ".src.tar.xz")) (patches (search-patches "llvm-3.5-fix-clang-build-with-gcc5.patch")) @@ -511,7 +541,7 @@ SOURCE-FILES found in SOURCE-PACKAGE." (description "This package allows to filter code through @code{clang-format} to fix its formatting. @code{clang-format} is a tool that formats C/C++/Obj-C code according to a set of style options, see -@url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}."))) +@url{https://clang.llvm.org/docs/ClangFormatStyleOptions.html}."))) (define-public emacs-clang-rename (package |