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
* gnu/packages/llvm.scm (llvm-cling-base): New variable
(llvm-cling): Use it. Update to version 16-20240621-02.
[source]: Delete patches.
(clang-cling-runtime): Base on clang-runtime-16.
[phases]: Delete change-directory phase.
(clang-cling): Base on clang-16.
[phases]: Delete change-directory and delete-static-libraries phases (the
later would cause CMake to fail due to baking the static targets in).
(cling): Update to 1.1.
[source]: Delete patches.
[arguments] <#:tests?>: Reference upstream discussion in comment.
[phases] <patch-paths>: Adjust file name of clang lib directory.
<set-CLANG>: New phase.
[native-inputs]: Add clang-cling, used by the test suite.
* gnu/packages/patches/clang-cling-13-libc-search-path.patch
* gnu/packages/patches/clang-cling-13-remove-crypt-interceptors.patch
* gnu/packages/patches/clang-cling-runtime-13-glibc-2.36-compat.patch
* gnu/packages/patches/cling-use-shared-library.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): De-register deleted files.
Change-Id: Ia8b58188ad9de2795a52289bd46ed15a8e722bfa
(cling) [phases] <patch-paths>: Do not patch CLING_CXX_RLTV anymore; this is
now handled more correctly by wrapping the 'cling' executable. Adjust file
name of clang lib directory. <wrap-with-include-paths, fix-wrapper>: New
phases.
[inputs]: Add gcc-toolchain*, a delayed version of gcc-toolchain, used in the
wrap phase.
Fixes: https://issues.guix.gnu.org/57116
Change-Id: I29f9eee8f4a0e91eadc2eeff2a70d58db3ed0a26
* gnu/packages/patches/clang-runtime-12-remove-crypt-interceptors.patch: New
file.
* gnu/local.mk (dist_PATCH_DATA): Register it.
* gnu/packages/llvm.scm (clang-runtime-12)[source]: Use it.
Change-Id: I78e078ff09beb2943ba9387813ebc29069ae8f7d
New patches were applied to clang-runtime only, not the whole LLVM base
source, hence they were not applied to the cling variants.
* gnu/packages/llvm.scm (llvm-cling) [source]: Add
clang-cling-runtime-13-glibc-2.36-compat.patch and
clang-cling-13-remove-crypt-interceptors.patch patches.
* gnu/packages/patches/clang-cling-13-remove-crypt-interceptors.patch: New file.
* gnu/packages/patches/clang-cling-runtime-13-glibc-2.36-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register them.
Change-Id: I4c5ee5f65b2bc04935865ad8e67bc2c3833da2eb
* gnu/packages/gl.scm (mesa)[inputs]: When building for aarch64-linux
use clang-18 and llvm-18 instead of llvm-for-mesa.
[native-inputs]: When building for aarch64-linux add libclc.
[arguments]: Adjust the 'disable-failing-test phase when building for
aarch64-linux to skip a test.
(mesa-opencl)[native-inputs]: When building for aarch64-linux don't add
clang-15.
* gnu/packages/check.scm (python-lit),
* gnu/packages/llvm.scm (libclc),
* gnu/packages/vulkan.scm (spirv-llvm-translator): Add a note about it
being a dependency for mesa.
Change-Id: I0bf5ab019ffd0626ad2d0c38bafceec401e3c886
* gnu/packages/llvm.scm (llvm-18)[arguments]: When building for
i686-linux delete the 'make-dynamic-linker-cache phase.
Change-Id: Icbbbccf74ad39d4f8d0270cc213f978c487edb75
* gnu/packages/llvm.scm (llvm-17)[arguments]: When building for
i686-linux delete the 'make-dynamic-linker-cache phase.
Change-Id: I0745d9b1bda47ad4ad10680234c9257215de1c4b
* gnu/packages/llvm.scm (clang-from-llvm)[arguments]: When building for
i686-linux on clang 15 or newer delete the 'make-dynamic-linker-cache
phase.
Change-Id: I0c8c273ce8eca100a97a9a64a4524558acd7cfbd
* gnu/packages/llvm.scm (clang-runtime-from-llvm)[native-inputs]: When
building clang-runtime-18 or newer use gcc-13.
(%llvm-monorepo-hashes): Add entry for llvm-18.
(%llvm-patches): Add entry for llvm-18.
(llvm-18, clang-runtime-18, clang-18, libomp-18, clang-toolchain-18):
New variables.
* gnu/packages/patches/clang-18.0-libc-search-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Change-Id: I4027065398300104c6a310187007448f5b2780c1
* gnu/packages/llvm.scm (%llvm-patches): Add a patch for 17.0.6.
* gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Change-Id: I9dfd23d2f0fb10620c4aa73a6480151d6e6daa9a
* gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for
versions 17, 16, 15, 13, 9 and remove entry for version 10.
Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd
* gnu/packages/llvm.scm (lldb): Update to 17.0.6.
[inputs]: Change from LLVM-15 and CLANG-15 to LLVM-17 and CLANG-17.
Change-Id: Iad04ee722c81ecb223ea4d57d25ea57ca7df59a0
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This is a follow-up to 15ba54d0e9.
* gnu/packages/llvm.scm (llvm-cling)[arguments]: Use gexps for phases.
Change-Id: I12f048b1a6a350838572832ad33357046610b18d
* gnu/packages/llvm.scm (llvm-14)[arguments]: When building for
powerpc-linux adjust the configure-flags to always link shared libraries
with -latomic.
Change-Id: If020528bf1717595b66e6e0826dbe7a0c1128322
* gnu/packages/llvm.scm (libclc): Update to 15.0.7.
[source]: Use the llvm-monorepo.
[arguments]: Remove configure-flag for python, add one for llvm-spirv.
Add a phase to skip 2 tests. Remove trailing #t from phases.
[propagated-inputs]: Add spirv-llvm-translator, spirv-tools.
[native-inputs]: Replace clang-9 with 15, llvm-9 with 15.
[properties]: Add release-monitoring-url.
Change-Id: I06e2e7be0dc5733a2cc17429928b1761ab987906