aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2021-04-24 13:04:55 +0200
committerMarius Bakke <marius@gnu.org>2021-04-28 17:59:32 +0200
commit8fa86141b709195a44f8fbf8fa19c6e877f6c8a2 (patch)
treeee61415f963b213bdf05e52ef563b626d02b6651
parent01e33a031e493477d930b9383d397fea012a3b1a (diff)
downloadguix-8fa86141b709195a44f8fbf8fa19c6e877f6c8a2.tar.gz
guix-8fa86141b709195a44f8fbf8fa19c6e877f6c8a2.zip
gnu: LLVM, Clang: Add 12.0.0.
* gnu/packages/patches/clang-12-tools-extra-directory.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/llvm.scm (llvm-12, clang-runtime-12, clang-12, clang-toolchain-12): New variables. (llvm-11): Inherit from LLVM-12.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/llvm.scm47
-rw-r--r--gnu/packages/patches/clang-12-tools-extra-directory.patch16
3 files changed, 60 insertions, 4 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 6e4a06cc34..91066c9cfc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -902,6 +902,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-9.0-libc-search-path.patch \
%D%/packages/patches/clang-10.0-libc-search-path.patch \
%D%/packages/patches/clang-11.0-libc-search-path.patch \
+ %D%/packages/patches/clang-12-tools-extra-directory.patch \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 605bd8629a..b510f319f9 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -476,21 +476,21 @@ output), and Binutils.")
("libc-debug" ,glibc "debug")
("libc-static" ,glibc "static")))))
-(define-public llvm-11
+(define-public llvm-12
(package
(name "llvm")
- (version "11.0.0")
+ (version "12.0.0")
(source
(origin
(method url-fetch)
(uri (llvm-uri "llvm" version))
(sha256
(base32
- "0s94lwil98w7zb7cjrbnxli0z7gklb312pkw74xs1d6zk346hgwi"))))
+ "0l4b79gwfvxild974aigcq1yigypjsk2j5p59syhl6ksd744gp29"))))
(build-system cmake-build-system)
(outputs '("out" "opt-viewer"))
(native-inputs
- `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
+ `(("python" ,python)
("perl" ,perl)))
(inputs
`(("libffi" ,libffi)))
@@ -538,6 +538,45 @@ 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-12
+ (clang-runtime-from-llvm
+ llvm-12
+ "0d444qihq9jhqnfv003cr704v363va72zl6qaw2algj1c85cva45"))
+
+(define-public clang-12
+ (clang-from-llvm llvm-12 clang-runtime-12
+ "1vd9rhhrd8ghdg111lac7w8by71y9l14yh5zxfijsm6lj4p4avp2"
+ #:patches '("clang-11.0-libc-search-path.patch")
+ #:tools-extra
+ (origin
+ (method url-fetch)
+ (uri (llvm-uri "clang-tools-extra"
+ (package-version llvm-12)))
+ (patches
+ (search-patches "clang-12-tools-extra-directory.patch"))
+ (sha256
+ (base32
+ "0p3dzr0qa7mar83y66xa5m5apynf6ia0lsdsq6axwnm64ysy0hdd")))))
+
+(define-public clang-toolchain-12
+ (make-clang-toolchain clang-12))
+
+(define-public llvm-11
+ (package
+ (inherit llvm-12)
+ (version "11.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (llvm-uri "llvm" version))
+ (sha256
+ (base32
+ "0s94lwil98w7zb7cjrbnxli0z7gklb312pkw74xs1d6zk346hgwi"))))
+ (native-inputs
+ `(;; TODO: Switch to Python 3 in the next rebuild cycle.
+ ("python" ,python-2)
+ ("perl" ,perl)))))
+
(define-public clang-runtime-11
(clang-runtime-from-llvm
llvm-11
diff --git a/gnu/packages/patches/clang-12-tools-extra-directory.patch b/gnu/packages/patches/clang-12-tools-extra-directory.patch
new file mode 100644
index 0000000000..0a236da26e
--- /dev/null
+++ b/gnu/packages/patches/clang-12-tools-extra-directory.patch
@@ -0,0 +1,16 @@
+Help CMake locate the "tools-extra" directory.
+
+Taken from <https://bugs.llvm.org/show_bug.cgi?id=49990#c3>.
+
+diff --git a/clang-tools-extra/clangd/quality/CompletionModel.cmake b/clang-tools-extra/clangd/quality/CompletionModel.cmake
+--- a/clangd/quality/CompletionModel.cmake
++++ b/clangd/quality/CompletionModel.cmake
+@@ -5,7 +5,7 @@
+ # will define a C++ class called ${cpp_class} - which may be a
+ # namespace-qualified class name.
+ function(gen_decision_forest model filename cpp_class)
+- set(model_compiler ${CMAKE_SOURCE_DIR}/../clang-tools-extra/clangd/quality/CompletionModelCodegen.py)
++ set(model_compiler ${CMAKE_CURRENT_LIST_DIR}/quality/CompletionModelCodegen.py)
+
+ set(output_dir ${CMAKE_CURRENT_BINARY_DIR})
+ set(header_file ${output_dir}/${filename}.h)