gnu: cling: Reduce closure by 236 MiB.

This is accomplished by building LLVM only for the host target.

* gnu/packages/llvm.scm (llvm-cling) [configure-flags]: Add
'-DLLVM_TARGETS_TO_BUILD=host;NVPTX'.

Cover-letter:
Update cling to 1.1 and wrap with GCC include paths
This series does two things:

1. Update the cling package and its related inputs
2. Fix cling crashing when wrong or missing GCC includes were not provided.

Cling is built to use the specific GCC version it knows from at build time;
the headers available should match that version.  Wrapping cling with the
gcc-toolchain ones ensures it works correctly out of the box, without the user
having to know to manually match the right GCC (such as in 'guix shell cling
gcc-toolchain@11').
END

Change-Id: Ib24d3b692070e6de9ad4aa558918786d9e25379d
This commit is contained in:
Maxim Cournoyer 2024-09-22 01:04:38 +09:00
parent 866fc620b3
commit ab424da401
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -2306,7 +2306,14 @@ (define llvm-cling
(file-name (git-file-name "llvm-cling" version))
(sha256
(base32
"05libb4mc385n8sq0bilalvidwzzrcyiqsfkn7j179kkx66a8rzy")))))))
"05libb4mc385n8sq0bilalvidwzzrcyiqsfkn7j179kkx66a8rzy"))))
(arguments
;; This reduces the package size on disk from 547 MiB to 311 MiB.
;; Cling is intended to be used as a REPL on the host machine, not as a
;; cross-compiling toolchain.
(substitute-keyword-arguments (package-arguments base)
((#:configure-flags cf ''())
#~(cons* "-DLLVM_TARGETS_TO_BUILD=host;NVPTX" #$cf)))))))
(define clang-cling-runtime
(let ((base clang-runtime-16))