guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 2ad67a1063a556409080fd51c9b93dfa63927880
Author: Zheng Junjie <[email protected]>
AuthorDate: Mon Sep 22 11:47:05 2025 +0800

    gnu: Add LLVM 21.
    
    * gnu/packages/llvm.scm (clang-runtime-from-llvm)[native-inputs]: When
    building clang-runtime-21 or newer use gcc-15.
    (%llvm-monorepo-hashes): Add entry for llvm-21.
    (llvm-21, clang-runtime-21, clang-21, libomp-21, clang-toolchain-21, 
lld-21):
    New variables.
    
    Change-Id: I0bb32127c913fa567e1c4e2b5b1f0307d60f5e14
---
 gnu/packages/llvm.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 46 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 985a9ef6cf..c8b7f71b9a 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -160,7 +160,10 @@ as \"x86_64-linux\"."
          (llvm-monorepo (package-version llvm))))
     (build-system cmake-build-system)
     (native-inputs
-     (cond ((version>=? version "19")
+     (cond ((version>=? version "21")
+            (modify-inputs (package-native-inputs llvm)
+              (prepend gcc-15)))
+           ((version>=? version "19")
             (package-native-inputs llvm))
            ((version>=? version "18")
             ;; clang-18.1.8 doesn't build with gcc-14
@@ -582,7 +585,8 @@ output), and Binutils.")
     ("17.0.6" . "1a7rq3rgw5vxm8y39fyzr4kv7w97lli4a0c1qrkchwk8p0n07hgh")
     ("18.1.8" . "1l9wm0g9jrpdf309kxjx7xrzf13h81kz8bbp0md14nrz38qll9la")
     ("19.1.7" . "18hkfhsm88bh3vnj21q7f118vrcnf7z6q1ylnwbknyb3yvk0343i")
-    ("20.1.8" . "0v0lwf58i96vcwsql3hlgy72z3ncfvqwgyghyn26m2ri8vy83k6a")))
+    ("20.1.8" . "0v0lwf58i96vcwsql3hlgy72z3ncfvqwgyghyn26m2ri8vy83k6a")
+    ("21.1.1" . "01xf0yl9xf1f29v2afyzs0rl4sqa7n7wd5bdv4qgih8cnbfmj7r0")))
 
 (define %llvm-patches
   '(("14.0.6" . ("clang-14.0-libc-search-path.patch"
@@ -599,6 +603,8 @@ output), and Binutils.")
     ("19.1.7" . ("clang-18.0-libc-search-path.patch"
                  "clang-17.0-link-dsymutil-latomic.patch"))
     ("20.1.8" . ("clang-18.0-libc-search-path.patch"
+                 "clang-17.0-link-dsymutil-latomic.patch"))
+    ("21.1.1" . ("clang-18.0-libc-search-path.patch"
                  "clang-17.0-link-dsymutil-latomic.patch"))))
 
 (define (llvm-monorepo version)
@@ -1223,6 +1229,37 @@ Library.")
 (define-public clang-toolchain-20
   (make-clang-toolchain clang-20 libomp-20))
 
+(define-public llvm-21
+  (make-llvm "21.1.1"))
+
+(define-public clang-runtime-21
+  (clang-runtime-from-llvm llvm-21))
+
+(define-public clang-21
+  (clang-from-llvm
+   llvm-21 clang-runtime-21
+   #:tools-extra
+   (origin
+     (method url-fetch)
+     (uri (llvm-uri "clang-tools-extra"
+                    (package-version llvm-21)))
+     (sha256
+      (base32
+       "0sv0snykw4zl45apj9dfm5yrs8grhmmmnss7nmg5ab8v9n52zpl0")))))
+
+(define-public libomp-21
+  (package
+    (inherit libomp-15)
+    (version (package-version llvm-21))
+    (source (llvm-monorepo version))
+    (native-inputs
+     (modify-inputs (package-native-inputs libomp-15)
+       (replace "clang" clang-21)
+       (replace "llvm" llvm-21)))))
+
+(define-public clang-toolchain-21
+  (make-clang-toolchain clang-21 libomp-21))
+
 ;; Default LLVM and Clang version.
 (define-public libomp libomp-13)
 (define-public llvm llvm-13)
@@ -1396,6 +1433,13 @@ components which highly leverage existing libraries in 
the larger LLVM Project."
     (source (llvm-monorepo version))
     (inputs (list llvm-20))))
 
+(define-public lld-21
+  (package
+    (inherit lld-15)
+    (version (package-version llvm-21))
+    (source (llvm-monorepo version))
+    (inputs (list llvm-21))))
+
 (define-public lld lld-14)
 
 (define* (make-lld-wrapper lld #:key lld-as-ld?)

Reply via email to