[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#49565] [PATCH] gnu: glibc-headers-mesboot: Use %build-inputs in set
From: |
Thiago Jung Bauermann |
Subject: |
[bug#49565] [PATCH] gnu: glibc-headers-mesboot: Use %build-inputs in setenv phase |
Date: |
Wed, 14 Jul 2021 21:46:13 -0300 |
When cross-building from x86-64-linux to powerpc64le-linux,
(assoc-ref inputs "libc") returns #f so get it from %build-inputs
instead.
For consistency, do the same for the other inputs as well.
* gnu/packages/commencement.scm (glibc-headers-mesboot)[arguments]: Get
packages from ‘%build-inputs’ rather than ‘inputs’.
---
gnu/packages/commencement.scm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
When running
```
$ ./pre-inst-env guix build \
--target=powerpc64le-linux-gnu.gcc \
gcc-toolchain@11
```
on current core-updates branch (commit 8456581375cf), I get the
following error during the build of glibc-mesboot-2.16:
--8<---------------cut here---------------start------------->8---
phase `setenv' failed after 0.0 seconds
Backtrace:
In ice-9/boot-9.scm:
157: 15 [catch #t #<catch-closure c93c40> ...]
In unknown file:
?: 14 [apply-smob/1 #<catch-closure c93c40>]
In ice-9/boot-9.scm:
63: 13 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
432: 12 [eval # #]
In ice-9/boot-9.scm:
2320: 11 [save-module-excursion #<procedure cc1b00 at
ice-9/boot-9.scm:3961:3 ()>]
3966: 10 [#<procedure cc1b00 at ice-9/boot-9.scm:3961:3 ()>]
1645: 9 [%start-stack load-stack #<procedure cc2ba0 at
ice-9/boot-9.scm:3957:10 ()>]
1650: 8 [#<procedure cc8db0 ()>]
In unknown file:
?: 7 [primitive-load
"/gnu/store/7ny6wjvw8pqw1zcgwq8bxja7946l2l2d-glibc-mesboot-2.16.0-builder"]
In ice-9/boot-9.scm:
157: 6 [catch srfi-34 ...]
In srfi/srfi-1.scm:
616: 5 [for-each #<procedure 1500040 at
guix/build/gnu-build-system.scm:909:14 (expr)> ...]
In ice-9/boot-9.scm:
171: 4 [with-throw-handler #t ...]
In guix/build/gnu-build-system.scm:
925: 3 [#<procedure 14de940 at guix/build/gnu-build-system.scm:924:21
()>]
In ice-9/eval.scm:
411: 2 [eval # #]
In unknown file:
?: 1 [string-append " -L " ...]
In ice-9/boot-9.scm:
106: 0 [#<procedure 14de900 at ice-9/boot-9.scm:97:6 (thrown-k . args)>
wrong-type-arg ...]
ice-9/boot-9.scm:106:20: In procedure #<procedure 14de900 at
ice-9/boot-9.scm:97:6 (thrown-k . args)>:
ice-9/boot-9.scm:106:20: In procedure string-append: Wrong type
(expecting string): #f
--8<---------------cut here---------------end--------------->8---
I deduced that this is because `(assoc-ref inputs "libc")` is returning #f.
And indeed, changing the code to look in %build-inputs instead fixes the
issue. I also noticed that most other places which look for a "libc"
package do so in %build-inputs rather than in inputs.
Just changing the line for "libc" is enough to fix the build but for
consistency, also change the other variables as well.
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index fb028390a260..ab22bca2fb8f 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2133,10 +2133,10 @@ ac_cv_c_float_format='IEEE (little-endian)'
(invoke "tar" "xvf" source)
(chdir (string-append "glibc-" ,version))))
(replace 'setenv
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((headers (assoc-ref inputs "headers"))
- (libc (assoc-ref inputs "libc"))
- (gcc (assoc-ref inputs "gcc"))
+ (lambda _
+ (let* ((headers (assoc-ref %build-inputs "headers"))
+ (libc (assoc-ref %build-inputs "libc"))
+ (gcc (assoc-ref %build-inputs "gcc"))
(cppflags (string-append
" -I " (getcwd) "/nptl/sysdeps/pthread/bits"
" -D BOOTSTRAP_GLIBC=1"))