all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap
@ 2019-11-26 16:38 Jan Nieuwenhuizen
  2019-12-01 14:01 ` Ludovic Courtès
  2020-02-03 17:37 ` [bug#38390] [bug #38390] Building bootstrap Gash and Gash-Utils Timothy Sample
  0 siblings, 2 replies; 26+ messages in thread
From: Jan Nieuwenhuizen @ 2019-11-26 16:38 UTC (permalink / raw)
  To: 38390; +Cc: Timothy Sample

Hi!

With the release of Mes 0.21, the wip-bootstrap branch is ready for a
first review.  This is a big one, so I am opening this bug to discuss
and keep track of things.

Please note that wip-bootstrap uses development snapshots of Gash and
Gash Core Utils; we still expect some changes here and probably hard
resets of `wip-bootstrap'.

Gash has now reached pretty good posix compliance, which really helps to
run configure scripts and sh snippets in autotool-generated Makefiles.

Gash Core Utils currently comes with

   [, awk, basename, cat, chmod, cmp, compress, cp, cut, diff, dirname,
   egrep, expr, false, fgrep, find, gawk, grep, gzip, head, ln, ls,
   mkdir, mv, pwd, reboot, rm, rmdir, sed, sleep, sort, tar, test,
   touch, tr, true, uname, uniq, wc, and which.

that in comparison with Gash are much flakier.  While basic
functionality is generally OK, most Gash tools cannot be used to
bootstrap the entire system yet.  This holds especially for awk, grep,
and sed.

Between autoconf 2.61 (2006) and autoconf-2.63 (2008), much
functionality that was written in sed was moved to awk.  The NEWS file
states performance reasons.  Gash's sed is much mature than Gash's awk,
so currently it makes sense to target C versions of around 2004.

However, some of the 2004 C tools are not good enough anymore to
bootstrap the entire system; so we need a second round for them.  The
Mes C Library is another constraint.  With Mes 0.21 it gained support
for many early C tools; but more recent tools have C library
requirements that are not yet covered.

Another thing to note is that we do not have bzip2, lzip or xz and that
after 2009 some crucial tools (coreutils, diffutils, grep, sed, ...)
start shipping .xz or .lz tarballs only.  While bzip2 can be built early
in the bootstrap, I only managed to build xz with a fairly recent gcc
(4.6).

Even with these considerations, there still is quite some room to change
build order and versions of the C versions of coreutils&co.  The current
choices are mostly made by "what works".  We could invest in fixing
Gash's awk or sed or enrich the Mes C library or ..., if that seems a
helpful thing to do.

When we manage to merge this, we will have halved the bootstrap seed
again, reducing the bootstrap seed to under 60MB.

--8<---------------cut here---------------start------------->8---
10:40:02 janneke@dundal:~/tmp [env]
$ cd guix-sob/
10:40:04 janneke@dundal:~/tmp/guix-sob [env]
$ du -schx $(readlink $(~/src/guix/wip-bootstrap/pre-inst-env guix build bootstrap-tarballs)/*)
388K	/gnu/store/49giv6b94zbv2pjl6a9ycgy5ny9x3jbc-gash-bootstrap-guile-tarball-0.1-9.32188ac/gash-bootstrap-guile-0.1-9.32188ac-x86_64-linux.tar.xz
5.7M	/gnu/store/47qxvqs7rm7agdp86lxr2jzvval5hkqc-guile-static-stripped-tarball-2.2.6/guile-static-stripped-2.2.6-x86_64-linux.tar.xz
80K	/gnu/store/l6m2rmqs31mc9w7rl99xxl6m35x7fg6v-linux-libre-headers-stripped-tarball-4.19.56/linux-libre-headers-stripped-4.19.56-x86_64-linux.tar.xz
280K	/gnu/store/gnz5mlnzcb0nkaiyad5smblalfjvi8xc-mescc-tools-static-stripped-tarball-0.6.1/mescc-tools-static-stripped-0.6.1-x86_64-linux.tar.xz
352K	/gnu/store/p32p46x5iic0sff2wcf5gilddvfibb19-mes-minimal-stripped-tarball-0.21/mes-minimal-stripped-0.21-x86_64-linux.tar.xz
6.7M	total
10:40:14 janneke@dundal:~/tmp/guix-sob [env]
$ for i in $(readlink $(~/src/guix/wip-bootstrap/pre-inst-env guix build bootstrap-tarballs)/*); do sudo tar xf $i; done
10:45:29 janneke@dundal:~/tmp/guix-sob [env]
$ du -schx *
6.2M	bin
988K	include
42M	lib
8.3M	share
58M	total
--8<---------------cut here---------------end--------------->8---

Just when I thought the branch was functionally done; I already found one
small problem; I have pushed this ugly workaround

--8<---------------cut here---------------start------------->8---
bootstrap: ACL: disable tests.  FIXME: LD_PRELOAD.

Running

    ./pre-inst-env build hello

fails to build acl:

ERROR: ld.so: object '/tmp/guix-build-acl-2.2.53.drv-0/acl-2.2.53/.libs/libtestlookup.so' from LD_PRELOAD cannot be preloaded: ignored. != ~
ERROR: ld.so: object '/tmp/guix-build-acl-2.2.53.drv-0/acl-2.2.53/.libs/libtestlookup.so' from LD_PRELOAD cannot be preloaded: ignored. != ~
ERROR: ld.so: object '/tmp/guix-build-acl-2.2.53.drv-0/acl-2.2.53/.libs/libtestlookup.so' from LD_PRELOAD cannot be preloaded: ignored. != ~
ERROR: ld.so: object '/tmp/guix-build-acl-2.2.53.drv-0/acl-2.2.53/.libs/libtestlookup.so' from LD_PRELOAD cannot be preloaded: ignored. != ~
[7] $ rm large-file -- failed
ERROR: ld.so: object '/tmp/guix-build-acl-2.2.53.drv-0/acl-2.2.53/.libs/libtestlookup.so' from LD_PRELOAD cannot be preloaded: ignored. != ~
4 commands (2 passed, 2 failed)
FAIL test/getfacl-lfs.test (exit status: 2)

* gnu/packages/acl.scm (acl): Disable tests.
--8<---------------cut here---------------end--------------->8---

It looks like a coreutils is getting built with a too early bootstrap
gcc/glibc, but I could use some help here.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2020-02-11 13:57 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-26 16:38 [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap Jan Nieuwenhuizen
2019-12-01 14:01 ` Ludovic Courtès
2019-12-01 16:25   ` Timothy Sample
2019-12-01 16:55     ` Jan Nieuwenhuizen
2019-12-01 17:14     ` Ludovic Courtès
2019-12-01 17:21   ` Jan Nieuwenhuizen
2019-12-06  6:53     ` Jan Nieuwenhuizen
2019-12-07 22:31       ` Ludovic Courtès
2019-12-11 18:25       ` Jan Nieuwenhuizen
2019-12-15 21:33         ` Ludovic Courtès
2019-12-15 22:39           ` Timothy Sample
2019-12-15 22:45             ` Brett Gilio
2019-12-16  6:34             ` Jan Nieuwenhuizen
2019-12-16 19:28           ` Jan Nieuwenhuizen
2019-12-18 22:55             ` Jan Nieuwenhuizen
2019-12-19 11:08               ` Ludovic Courtès
2020-02-03 17:37 ` [bug#38390] [bug #38390] Building bootstrap Gash and Gash-Utils Timothy Sample
2020-02-05  8:58   ` Ludovic Courtès
2020-02-05 14:32     ` Timothy Sample
2020-02-05 21:33       ` Ludovic Courtès
2020-02-06 22:58         ` Jan Nieuwenhuizen
2020-02-07 11:00           ` Ludovic Courtès
2020-02-08 17:33             ` Timothy Sample
2020-02-08 22:32               ` Jan Nieuwenhuizen
2020-02-10  2:23                 ` Timothy Sample
2020-02-11 13:56               ` Ludovic Courtès

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.