mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-28 03:51:53 +02:00
gnu: libcxx: Fix cross-compilation build.
* gnu/packages/llvm.scm (libcxx) [arguments] <#:test-target>: New argument. <#:tests?>: Add explanatory comment. <#:implicit-inputs?>: Set to #f. <#:phases>: Remove adjust-CPLUS_INCLUDE_PATH. [native-inputs]: Explicitly provide standard inputs, filtering out gcc. Remove extraneous llvm and libunwind-headers. Replace python with python-minimal. Change-Id: I8cbc73ef90dce0a57bf2f8198c3176932bf24185 Reviewed-by: Greg Hogan <code@greghogan.com>
This commit is contained in:
+12
-18
@@ -17,7 +17,7 @@
|
||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
|
||||
;;; Copyright © 2020, 2021, 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2020-2022, 2024-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
|
||||
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
|
||||
@@ -54,6 +54,7 @@
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system trivial)
|
||||
@@ -1905,7 +1906,9 @@ which highly leverage existing libraries in the larger LLVM project.")
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f
|
||||
#:test-target "check-cxx"
|
||||
#:tests? #f ;prohibitively expensive to run
|
||||
#:implicit-inputs? #f ;to avoid conflicting GCC headers
|
||||
#:configure-flags
|
||||
#~(list "-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi;libunwind"
|
||||
"-DCMAKE_C_COMPILER=clang"
|
||||
@@ -1920,23 +1923,14 @@ which highly leverage existing libraries in the larger LLVM project.")
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'enter-subdirectory
|
||||
(lambda _
|
||||
(chdir "runtimes")))
|
||||
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gcc (assoc-ref inputs "gcc")))
|
||||
;; Hide GCC's C++ headers so that they do not interfere with
|
||||
;; the ones we are attempting to build.
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-join (delete (string-append gcc "/include/c++")
|
||||
(string-split (getenv "CPLUS_INCLUDE_PATH")
|
||||
#\:))
|
||||
":"))
|
||||
(format #t
|
||||
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
|
||||
(getenv "CPLUS_INCLUDE_PATH"))
|
||||
#t))))))
|
||||
(chdir "runtimes"))))))
|
||||
(native-inputs
|
||||
(list clang-19 libunwind-headers llvm python))
|
||||
(modify-inputs (standard-packages)
|
||||
;; Remove GCC from the build environment, to avoid its C++
|
||||
;; headers (include/c++), which would interfere and cause build
|
||||
;; failures.
|
||||
(delete "gcc")
|
||||
(prepend clang-19 python-minimal)))
|
||||
(home-page "https://libcxx.llvm.org")
|
||||
(synopsis "C++ standard library")
|
||||
(description
|
||||
|
||||
Reference in New Issue
Block a user