GNU bug report logs -
#36322
[PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs
Previous Next
Reported by: Marius Bakke <mbakke <at> fastmail.com>
Date: Fri, 21 Jun 2019 12:25:02 UTC
Severity: normal
Tags: patch
Done: Marius Bakke <marius <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36322 in the body.
You can then email your comments to 36322 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#36322
; Package
guix-patches
.
(Fri, 21 Jun 2019 12:25:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Marius Bakke <mbakke <at> fastmail.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Fri, 21 Jun 2019 12:25:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
With these patches, we can again cross-compile the bootstrap tarballs on
core-updates.
As of commit bd0dc2df04a1550f41d3d5c7cc2c26ad12468b36, here are my
results for armhf and Hurd(!):
$ ./pre-inst-env guix build --target=arm-linux-gnueabihf bootstrap-tarballs
/gnu/store/q245c0s6cc55ziamfxpv43lwbnxaw0n6-bootstrap-tarballs-0
$ guix hash -rx $(!!)
01lksw8qw973bc2lllz97pxm67x84rz8crbdiqwnlbyjq0j3mvaq
$ ./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs
/gnu/store/4i3zxmzcrpg2h8inwgfd24sdsgan9jw7-bootstrap-tarballs-0
$ guix hash -rx $(!!)
17yjlqvwlv8v28qm5v888kshx30djylml9fgpwkcqvx3idzw7i1v
Now, I haven't actually tried bootstrapping a system from these yet.
Do we have automated tests for that?
Marius Bakke (4):
gnu: make-bootstrap: Remove obsolete header file.
gnu: make-bootstrap: Restore cross-compilation workarounds.
gnu: make-bootstrap: Adjust for GCC 7.
gnu: bootstrap-tarballs: Don't include the native mes when
cross-compiling.
gnu/packages/make-bootstrap.scm | 64 ++++++++++++++++++++++++---------
guix/build/make-bootstrap.scm | 1 -
2 files changed, 47 insertions(+), 18 deletions(-)
--
2.22.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#36322
; Package
guix-patches
.
(Fri, 21 Jun 2019 12:27:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 36322 <at> debbugs.gnu.org (full text, mbox):
* guix/build/make-bootstrap.scm (copy-linux-headers): Do not install 'a.out.h'.
---
guix/build/make-bootstrap.scm | 1 -
1 file changed, 1 deletion(-)
diff --git a/guix/build/make-bootstrap.scm b/guix/build/make-bootstrap.scm
index e5ef1d6d2b..0d29338ce3 100644
--- a/guix/build/make-bootstrap.scm
+++ b/guix/build/make-bootstrap.scm
@@ -47,7 +47,6 @@ bootstrap libc."
(install-file (pk 'src (string-append kernel-headers "/include/linux/" file))
(pk 'dest (string-append incdir "/linux"))))
'(
- "a.out.h" ; for 2.2.5
"atalk.h" ; for 2.2.5
"errno.h"
"falloc.h"
--
2.22.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#36322
; Package
guix-patches
.
(Fri, 21 Jun 2019 12:27:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 36322 <at> debbugs.gnu.org (full text, mbox):
These workarounds were removed in cf8264364761857ca3550398369a0f20d7b0d512 and
218eb6e611c0a238802bf9cb5742d37cea0bb012, but were needed for %BOOTSTRAP-TARBALLS.
* gnu/packages/make-bootstrap.scm (%static-inputs)[coreutils, tar]: Add
<#:configure-flags>.
---
gnu/packages/make-bootstrap.scm | 37 ++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index ec477da7c8..561a286d26 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -150,7 +150,15 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
"--disable-silent-rules"
"--enable-no-install-program=stdbuf,libstdbuf.so"
"CFLAGS=-Os -g0" ; smaller, please
- "LDFLAGS=-static -pthread")
+ "LDFLAGS=-static -pthread"
+
+ ;; Work around a cross-compilation bug whereby libcoreutils.a
+ ;; would provide '__mktime_internal', which conflicts with the
+ ;; one in libc.a.
+ ,@(if (%current-target-system)
+ `("gl_cv_func_working_mktime=yes")
+ '()))
+
#:tests? #f ; signal-related Gnulib tests fail
,@(package-arguments coreutils)))
@@ -213,17 +221,22 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
'()))))
(tar (package (inherit tar)
(arguments
- (substitute-keyword-arguments (package-arguments tar)
- ((#:phases phases)
- `(modify-phases ,phases
- (replace 'set-shell-file-name
- (lambda _
- ;; Do not use "/bin/sh" to run programs; see
- ;; <http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02272.html>.
- (substitute* "src/system.c"
- (("/bin/sh") "sh")
- (("execv ") "execvp "))
- #t))))))))
+ `(;; Work around a cross-compilation bug whereby libgnu.a would provide
+ ;; '__mktime_internal', which conflicts with the one in libc.a.
+ ,@(if (%current-target-system)
+ `(#:configure-flags '("gl_cv_func_working_mktime=yes"))
+ '())
+ ,@(substitute-keyword-arguments (package-arguments tar)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'set-shell-file-name
+ (lambda _
+ ;; Do not use "/bin/sh" to run programs; see
+ ;; <http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02272.html>.
+ (substitute* "src/system.c"
+ (("/bin/sh") "sh")
+ (("execv ") "execvp "))
+ #t)))))))))
;; We don't want to retain a reference to /gnu/store in the bootstrap
;; versions of egrep/fgrep, so we remove the custom phase added since
;; grep <at> 2.25. The effect is 'egrep' and 'fgrep' look for 'grep' in
--
2.22.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#36322
; Package
guix-patches
.
(Fri, 21 Jun 2019 12:27:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 36322 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc)[native-inputs]:
Add SEARCH-PATHS to CROSS-GCC, and NATIVE-SEARCH-PATHS to the native GCC.
---
gnu/packages/make-bootstrap.scm | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 561a286d26..df6b828a2d 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -106,16 +106,33 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(define (native-inputs)
(if (%current-target-system)
- (let ((target (%current-target-system)))
- `(("cross-gcc" ,(cross-gcc target
- #:xbinutils (cross-binutils target)
- #:libc (cross-bootstrap-libc)))
+ (let* ((target (%current-target-system))
+ (xgcc (cross-gcc
+ target
+ #:xbinutils (cross-binutils target)
+ #:libc (cross-bootstrap-libc))))
+ `(("cross-gcc" ,(package
+ (inherit xgcc)
+ (search-paths
+ ;; Ensure the cross libc headers appears on the
+ ;; C++ system header search path.
+ (cons (search-path-specification
+ (variable "CROSS_CPLUS_INCLUDE_PATH")
+ (files '("include")))
+ (package-search-paths gcc)))))
("cross-binutils" ,(cross-binutils target))
,@(%final-inputs)))
`(("libc" ,(glibc-for-bootstrap))
("libc:static" ,(glibc-for-bootstrap) "static")
("gcc" ,(package (inherit gcc)
(outputs '("out")) ;all in one so libgcc_s is easily found
+ (native-search-paths
+ ;; Set CPLUS_INCLUDE_PATH so GCC is able to find the libc
+ ;; C++ headers.
+ (cons (search-path-specification
+ (variable "CPLUS_INCLUDE_PATH")
+ (files '("include")))
+ (package-native-search-paths gcc)))
(inputs
`(;; Distinguish the name so we can refer to it below.
("bootstrap-libc" ,(glibc-for-bootstrap))
--
2.22.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#36322
; Package
guix-patches
.
(Fri, 21 Jun 2019 12:27:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 36322 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/make-bootstrap.scm (%bootstrap-tarballs)[inputs]: Check
%CURRENT-TARGET-SYSTEM when deciding whether to use the reduced binary seeds.
---
gnu/packages/make-bootstrap.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index df6b828a2d..2163b646f6 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -825,7 +825,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
%build-inputs)
#t)))
(inputs `(("guile-tarball" ,%guile-bootstrap-tarball)
- ,@(match (%current-system)
+ ,@(match (or (%current-target-system) (%current-system))
((or "i686-linux" "x86_64-linux")
`(("bootstrap-mescc-tools" ,%mescc-tools-bootstrap-tarball)
("bootstrap-mes" ,%mes-bootstrap-tarball)
--
2.22.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#36322
; Package
guix-patches
.
(Thu, 07 Apr 2022 13:23:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 36322 <at> debbugs.gnu.org (full text, mbox):
Hi Marius,
What is the status of this patch series [1]?
1: <http://issues.guix.gnu.org/issue/36322>
On Fri, 21 Jun 2019 at 14:24, Marius Bakke <mbakke <at> fastmail.com> wrote:
> With these patches, we can again cross-compile the bootstrap tarballs on
> core-updates.
>
> As of commit bd0dc2df04a1550f41d3d5c7cc2c26ad12468b36, here are my
> results for armhf and Hurd(!):
>
> $ ./pre-inst-env guix build --target=arm-linux-gnueabihf bootstrap-tarballs
> /gnu/store/q245c0s6cc55ziamfxpv43lwbnxaw0n6-bootstrap-tarballs-0
> $ guix hash -rx $(!!)
> 01lksw8qw973bc2lllz97pxm67x84rz8crbdiqwnlbyjq0j3mvaq
>
> $ ./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs
> /gnu/store/4i3zxmzcrpg2h8inwgfd24sdsgan9jw7-bootstrap-tarballs-0
> $ guix hash -rx $(!!)
> 17yjlqvwlv8v28qm5v888kshx30djylml9fgpwkcqvx3idzw7i1v
>
> Now, I haven't actually tried bootstrapping a system from these yet.
> Do we have automated tests for that?
I think the next action is waiting an answer for this question,
eventually. :-)
> Marius Bakke (4):
> gnu: make-bootstrap: Remove obsolete header file.
> gnu: make-bootstrap: Restore cross-compilation workarounds.
> gnu: make-bootstrap: Adjust for GCC 7.
> gnu: bootstrap-tarballs: Don't include the native mes when
> cross-compiling.
>
> gnu/packages/make-bootstrap.scm | 64 ++++++++++++++++++++++++---------
> guix/build/make-bootstrap.scm | 1 -
> 2 files changed, 47 insertions(+), 18 deletions(-)
What would the next step? More tests? Merge into core-updates? Other?
Cheers,
simon
Reply sent
to
Marius Bakke <marius <at> gnu.org>
:
You have taken responsibility.
(Thu, 07 Apr 2022 21:16:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Marius Bakke <mbakke <at> fastmail.com>
:
bug acknowledged by developer.
(Thu, 07 Apr 2022 21:16:05 GMT)
Full text and
rfc822 format available.
Message #25 received at 36322-close <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
zimoun <zimon.toutoune <at> gmail.com> skriver:
> Hi Marius,
>
> What is the status of this patch series [1]?
>
> 1: <http://issues.guix.gnu.org/issue/36322>
[...]
>> Marius Bakke (4):
>> gnu: make-bootstrap: Remove obsolete header file.
>> gnu: make-bootstrap: Restore cross-compilation workarounds.
>> gnu: make-bootstrap: Adjust for GCC 7.
>> gnu: bootstrap-tarballs: Don't include the native mes when
>> cross-compiling.
>>
>> gnu/packages/make-bootstrap.scm | 64 ++++++++++++++++++++++++---------
>> guix/build/make-bootstrap.scm | 1 -
>> 2 files changed, 47 insertions(+), 18 deletions(-)
This series is long obsolete, closing!
Thanks for the reminder. :-)
[signature.asc (application/pgp-signature, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 06 May 2022 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 354 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.