~ruther/guix-local

2ad67a1063a556409080fd51c9b93dfa63927880 — Zheng Junjie 5 months ago b4c4a75
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
1 files changed, 46 insertions(+), 2 deletions(-)

M gnu/packages/llvm.scm
M gnu/packages/llvm.scm => gnu/packages/llvm.scm +46 -2
@@ 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?)