[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#58394] [PATCH]: gnu: libcxx: Update to 14.0.6.
From: |
Zhu Zihao |
Subject: |
[bug#58394] [PATCH]: gnu: libcxx: Update to 14.0.6. |
Date: |
Sun, 09 Oct 2022 22:59:58 +0800 |
User-agent: |
mu4e 1.8.9; emacs 29.0.50 |
signature.asc
Description: PGP signature
>From 41b6beb2ee5770f791984fb7411a69ba77544681 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Fri, 7 Oct 2022 11:14:26 +0800
Subject: [PATCH 1/2] gnu: libcxx: Use G-expressions.
* gnu/packages/llvm.scm (libcxx)[arguments]: Use G-expressions.
(libcxx-6)[arguments]: Use G-expressions.
---
gnu/packages/llvm.scm | 39 +++++++++++++++++++++++----------------
1 file changed, 23 insertions(+), 16 deletions(-)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 49eb25db1f..00918bfb90 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -25,6 +25,7 @@
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1540,22 +1541,23 @@ (define-public libcxx
"0d2bj5i6mk4caq7skd5nsdmz8c2m5w5anximl5wz3x32p08zz089"))))
(build-system cmake-build-system)
(arguments
- `(#:phases
- (modify-phases (@ (guix build cmake-build-system) %standard-phases)
- (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))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (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))))))
(native-inputs
(list clang llvm))
(home-page "https://libcxx.llvm.org")
@@ -1578,6 +1580,11 @@ (define-public libcxx-6
(sha256
(base32
"0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments libcxx)
+ ((#:phases p)
+ #~(modify-phases #$p
+ (delete 'enter-subdirectory)))))
(native-inputs
(list clang-6 llvm-6))))
--
2.37.3
>From b70e093e1ce01de0f607d70911e1539462c17a40 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 8 Oct 2022 16:26:44 +0800
Subject: [PATCH 2/2] gnu: libcxx: Update to 14.0.6.
* gnu/packages/llvm.scm(libcxx)[source]: Use "llvm-monorepo".
[arguments]<#:configure-flags>: Use clang & clang++, skip RPATH_CHANGE in CMake.
<#:phases>: Add phase "enter-subdirectory".
[native-inputs]: Add Python 3 for lit.
(libcxx-6)[arguments]: Don't inherit from libcxx.
---
gnu/packages/llvm.scm | 47 +++++++++++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 13 deletions(-)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 00918bfb90..ad0cb088be 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -1531,19 +1531,27 @@ (define-public lldb
(define-public libcxx
(package
(name "libcxx")
- (version "9.0.1")
- (source
- (origin
- (method url-fetch)
- (uri (llvm-uri "libcxx" version))
- (sha256
- (base32
- "0d2bj5i6mk4caq7skd5nsdmz8c2m5w5anximl5wz3x32p08zz089"))))
+ (version "14.0.6")
+ (source (llvm-monorepo version))
(build-system cmake-build-system)
(arguments
(list
+ #:tests? #f
+ #:configure-flags
+ #~(list "-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi"
+ "-DCMAKE_C_COMPILER=clang"
+ "-DCMAKE_CXX_COMPILER=clang++"
+ ;; libc++.so is actually a GNU ld style linker script, however,
+ ;; CMake still tries to fix the RUNPATH of it during the install
+ ;; step. This argument tells CMake to use the install directory
+ ;; as RUNPATH and don't attempt to patch it.
+ ;; See also:
https://gitlab.kitware.com/cmake/cmake/-/issues/22963
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
#:phases
#~(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")))
@@ -1559,7 +1567,7 @@ (define-public libcxx
(getenv "CPLUS_INCLUDE_PATH"))
#t))))))
(native-inputs
- (list clang llvm))
+ (list clang llvm python))
(home-page "https://libcxx.llvm.org")
(synopsis "C++ standard library")
(description
@@ -1581,10 +1589,23 @@ (define-public libcxx-6
(base32
"0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n"))))
(arguments
- (substitute-keyword-arguments (package-arguments libcxx)
- ((#:phases p)
- #~(modify-phases #$p
- (delete 'enter-subdirectory)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (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))))))
(native-inputs
(list clang-6 llvm-6))))
--
2.37.3
--
Retrieve my PGP public key:
gpg --recv-keys B3EBC086AB0EBC0F45E0B4D433DB374BCEE4D9DC
Zihao
- [bug#58394] [PATCH]: gnu: libcxx: Update to 14.0.6.,
Zhu Zihao <=