guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap


From: Jan Nieuwenhuizen
Subject: [bug#38390] [core-updates] Scheme-only bootstrap: merge wip-bootstrap
Date: Tue, 26 Nov 2019 17:38:39 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

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 <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]