[PATCH] gnu: Fix make-gcc-libc

DoneSubmitted by Carl Dong.
Details
2 participants
  • Carl Dong
  • Ludovic Courtès
Owner
unassigned
Severity
normal
C
C
Carl Dong wrote on 25 Oct 2019 17:40
(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
hSjH-FjbLGYW5vPHJ-VSp_Wgss1FA56r1qXDALf_s6GqNauS0PQJ3qoSA6rLju7GTKhozjqHAxZaXRXd1RnHGYnD6Bsl8O40OEJpWkYRJDs=@carldong.me
Reviewers, would like some insight into whether it's okay to remove theFLAGS_FOR_TARGET. From what I can tell it comes from CROSS-GCC-ARGUMENTS in (gnupackages cross-base) which might not be needed here since we're notcross-building. I've tested this toolchain built without FLAGS_FOR_TARGET and it_seems_ to work fine.
-----
Until now the following wouldn't build:
Toggle snippet (7 lines)(use-modules (gnu packages commencement) (gnu packages gcc) (gnu packages base))
(make-gcc-libc gcc-9 glibc-2.27)
* gnu/packages/base.scm (make-gcc-libc)[phases]: Add environmentvariables to place the target libc on the system header search path.[make-flags]: Remove unncessary FLAGS_FOR_TARGET.[native-inputs]: Construct in a way that doesn't require emptyinginputs.--- gnu/packages/base.scm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-)
Toggle diff (39 lines)diff --git a/gnu/packages/base.scm b/gnu/packages/base.scmindex 4e80a2fadb..3a3360dc7a 100644--- a/gnu/packages/base.scm+++ b/gnu/packages/base.scm@@ -981,18 +981,23 @@ with the Linux kernel.") (substitute-keyword-arguments (ensure-keyword-arguments (package-arguments base-gcc) '(#:implicit-inputs? #f))- ((#:make-flags flags)- `(let ((libc (assoc-ref %build-inputs "libc")))- ;; FLAGS_FOR_TARGET are needed for the target libraries to receive- ;; the -Bxxx for the startfiles.- (cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")- ,flags)))))+ ((#:phases phases)+ `(modify-phases ,phases+ (add-before 'configure 'treat-glibc-as-system-header+ (lambda _+ (let ((libc (assoc-ref %build-inputs "libc")))+ ;; GCCs build processes requires that the libc+ ;; we're building against is on the system header+ ;; search path.+ (for-each (lambda (var)+ (setenv var (string-append libc "/include")))+ '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))+ #t))))))) (native-inputs- `(("libc" ,libc)- ("libc:static" ,libc "static")- ,@(append (package-inputs base-gcc)- (fold alist-delete (%final-inputs) '("libc" "libc:static")))))- (inputs '())))+ `(,@(package-native-inputs base-gcc)+ ,@(append (fold alist-delete (%final-inputs) '("libc" "libc:static")))+ ("libc" ,libc)+ ("libc:static" ,libc "static")))))
(define-public (make-glibc-locales glibc) (package
--2.23.0
C
C
Carl Dong wrote on 25 Oct 2019 18:21
[PATCH 2/2] ci: Add 'make-gcc-toolchain' packages
(name . 37924@debbugs.gnu.org)(address . 37924@debbugs.gnu.org)
rnS1pu4_DHD_IOqgX3DNBHPRyPiBzy6LCTsgOcvZaT4Nkk8N1UfyHAteBHrA5ABj5ZR1K_VzBQy7wL6XAOoQEh27GD8PF37fvjDeD3do9eI=@carldong.me
* gnu/ci.scm (%core-packages): Add 'glibc-2.28', a toolchain withdefault 'gcc', and a toolchain targeting 'glibc-2.28'.--- gnu/ci.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Toggle diff (17 lines)diff --git a/gnu/ci.scm b/gnu/ci.scmindex 5d5a826647..74df3c34ab 100644--- a/gnu/ci.scm+++ b/gnu/ci.scm@@ -110,9 +110,11 @@ SYSTEM." ;; Note: Don't put the '-final' package variants because (1) that's ;; implicit, and (2) they cannot be cross-built (due to the explicit input ;; chain.)- (list gcc-4.8 gcc-4.9 gcc-5 glibc binutils+ (list gcc-4.8 gcc-4.9 gcc-5 glibc glibc-2.28 binutils gmp mpfr mpc coreutils findutils diffutils patch sed grep gawk gnu-gettext hello guile-2.0 guile-2.2 zlib gzip xz+ (make-gcc-toolchain gcc)+ (make-gcc-toolchain gcc glibc-2.28) %bootstrap-binaries-tarball %binutils-bootstrap-tarball (%glibc-bootstrap-tarball)
--2.23.0
L
L
Ludovic Courtès wrote on 4 Nov 2019 23:18
Re: [bug#37924] [PATCH] gnu: Fix make-gcc-libc
(name . Carl Dong)(address . contact@carldong.me)(address . 37924@debbugs.gnu.org)
87y2wv4763.fsf@gnu.org
Hi Carl,
Carl Dong <contact@carldong.me> skribis:
Toggle quote (6 lines)> Reviewers, would like some insight into whether it's okay to remove the> FLAGS_FOR_TARGET. From what I can tell it comes from CROSS-GCC-ARGUMENTS in (gnu> packages cross-base) which might not be needed here since we're not> cross-building. I've tested this toolchain built without FLAGS_FOR_TARGET and it> _seems_ to work fine.
I think it wouldn’t hurt to keep FLAGS_FOR_TARGET, but like you write,it seems to be for cross-compilation only, so I guess it’s OK to removeit here since ‘make-gcc-libc’ is meant to build native toolchainsanyway.
Toggle quote (14 lines)> Until now the following wouldn't build:>> (use-modules (gnu packages commencement)> (gnu packages gcc)> (gnu packages base))>> (make-gcc-libc gcc-9 glibc-2.27)>> * gnu/packages/base.scm (make-gcc-libc)[phases]: Add environment> variables to place the target libc on the system header search path.> [make-flags]: Remove unncessary FLAGS_FOR_TARGET.> [native-inputs]: Construct in a way that doesn't require emptying> inputs.
LGTM, thank you!
Ludo’.
L
L
Ludovic Courtès wrote on 4 Nov 2019 23:22
Re: [bug#37924] [PATCH 2/2] ci: Add 'make-gcc-toolchain' packages
(name . Carl Dong)(address . contact@carldong.me)(name . 37924@debbugs.gnu.org)(address . 37924@debbugs.gnu.org)
87sgn34703.fsf@gnu.org
Hi,
Carl Dong <contact@carldong.me> skribis:
Toggle quote (3 lines)> * gnu/ci.scm (%core-packages): Add 'glibc-2.28', a toolchain with> default 'gcc', and a toolchain targeting 'glibc-2.28'.
The problem is ‘%core-packages’ is only built when we explicitly choosethe “core” subset in CI (which we do only when experimenting with‘core-updates’ early on); in other cases, all the public packages getbuilt and ‘%core-packages’ does not matter.
Would it be an option to have:
(define-public gcc/glibc-2.28 (make-gcc-libc gcc glibc-2.28))
in (gnu packages base), or does that create circular dependency issues(I don’t think so, but better be safe)?
If we did that, that package would automatically picked up in CI.
Thanks,Ludo’.
L
L
Ludovic Courtès wrote on 16 Nov 2019 17:36
Re: [bug#37924] [PATCH] gnu: Fix make-gcc-libc
(name . Carl Dong)(address . contact@carldong.me)(address . 37924-done@debbugs.gnu.org)
87k17zwzgr.fsf@gnu.org
Carl Dong <contact@carldong.me> skribis:
Toggle quote (17 lines)> Until now the following wouldn't build:>> (use-modules (gnu packages commencement)> (gnu packages gcc)> (gnu packages base))>> (make-gcc-libc gcc-9 glibc-2.27)>> * gnu/packages/base.scm (make-gcc-libc)[phases]: Add environment> variables to place the target libc on the system header search path.> [make-flags]: Remove unncessary FLAGS_FOR_TARGET.> [native-inputs]: Construct in a way that doesn't require emptying> inputs.> ---> gnu/packages/base.scm | 27 ++++++++++++++++-----------> 1 file changed, 16 insertions(+), 11 deletions(-)
This was pushed as 2b1d708294f0aced5c991baed146e0ae4e7d63dd, closing!
Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 37924@debbugs.gnu.org