* [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs
@ 2019-06-21 12:24 Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 1/4] gnu: make-bootstrap: Remove obsolete header file Marius Bakke
2022-04-07 13:18 ` [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs zimoun
0 siblings, 2 replies; 7+ messages in thread
From: Marius Bakke @ 2019-06-21 12:24 UTC (permalink / raw)
To: 36322
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#36322] [PATCH 1/4] gnu: make-bootstrap: Remove obsolete header file.
2019-06-21 12:24 [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs Marius Bakke
@ 2019-06-21 12:26 ` Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 2/4] gnu: make-bootstrap: Restore cross-compilation workarounds Marius Bakke
` (2 more replies)
2022-04-07 13:18 ` [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs zimoun
1 sibling, 3 replies; 7+ messages in thread
From: Marius Bakke @ 2019-06-21 12:26 UTC (permalink / raw)
To: 36322
* 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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#36322] [PATCH 2/4] gnu: make-bootstrap: Restore cross-compilation workarounds.
2019-06-21 12:26 ` [bug#36322] [PATCH 1/4] gnu: make-bootstrap: Remove obsolete header file Marius Bakke
@ 2019-06-21 12:26 ` Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 3/4] gnu: make-bootstrap: Adjust for GCC 7 Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 4/4] gnu: bootstrap-tarballs: Don't include the native mes when cross-compiling Marius Bakke
2 siblings, 0 replies; 7+ messages in thread
From: Marius Bakke @ 2019-06-21 12:26 UTC (permalink / raw)
To: 36322
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@2.25. The effect is 'egrep' and 'fgrep' look for 'grep' in
--
2.22.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#36322] [PATCH 3/4] gnu: make-bootstrap: Adjust for GCC 7.
2019-06-21 12:26 ` [bug#36322] [PATCH 1/4] gnu: make-bootstrap: Remove obsolete header file Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 2/4] gnu: make-bootstrap: Restore cross-compilation workarounds Marius Bakke
@ 2019-06-21 12:26 ` Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 4/4] gnu: bootstrap-tarballs: Don't include the native mes when cross-compiling Marius Bakke
2 siblings, 0 replies; 7+ messages in thread
From: Marius Bakke @ 2019-06-21 12:26 UTC (permalink / raw)
To: 36322
* 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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#36322] [PATCH 4/4] gnu: bootstrap-tarballs: Don't include the native mes when cross-compiling.
2019-06-21 12:26 ` [bug#36322] [PATCH 1/4] gnu: make-bootstrap: Remove obsolete header file Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 2/4] gnu: make-bootstrap: Restore cross-compilation workarounds Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 3/4] gnu: make-bootstrap: Adjust for GCC 7 Marius Bakke
@ 2019-06-21 12:26 ` Marius Bakke
2 siblings, 0 replies; 7+ messages in thread
From: Marius Bakke @ 2019-06-21 12:26 UTC (permalink / raw)
To: 36322
* 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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs
2019-06-21 12:24 [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 1/4] gnu: make-bootstrap: Remove obsolete header file Marius Bakke
@ 2022-04-07 13:18 ` zimoun
2022-04-07 21:15 ` bug#36322: " Marius Bakke
1 sibling, 1 reply; 7+ messages in thread
From: zimoun @ 2022-04-07 13:18 UTC (permalink / raw)
To: Marius Bakke; +Cc: 36322
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@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
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#36322: [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs
2022-04-07 13:18 ` [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs zimoun
@ 2022-04-07 21:15 ` Marius Bakke
0 siblings, 0 replies; 7+ messages in thread
From: Marius Bakke @ 2022-04-07 21:15 UTC (permalink / raw)
To: zimoun; +Cc: 36322-close
[-- Attachment #1: Type: text/plain, Size: 682 bytes --]
zimoun <zimon.toutoune@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. :-)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-04-07 21:16 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-21 12:24 [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 1/4] gnu: make-bootstrap: Remove obsolete header file Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 2/4] gnu: make-bootstrap: Restore cross-compilation workarounds Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 3/4] gnu: make-bootstrap: Adjust for GCC 7 Marius Bakke
2019-06-21 12:26 ` [bug#36322] [PATCH 4/4] gnu: bootstrap-tarballs: Don't include the native mes when cross-compiling Marius Bakke
2022-04-07 13:18 ` [bug#36322] [PATCH 0/4] [core-updates] Fix cross-compiling bootstrap tarballs zimoun
2022-04-07 21:15 ` bug#36322: " Marius Bakke
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.