Jan Nieuwenhuizen <jann...@gnu.org> ezt írta (időpont: 2018. aug. 31., P 18:32):
> We have been working on the wip-bootstrap branch with the aim to remove > bootstrap binary seeds. At the moment this is for i686-linux only. > > The first step was to build binutils-mesboot-2.20.1a, > glibc-mesboot-2.2.5 and gcc-mesboot-4.7.4 without the use of any binary > binutils, glibc or gcc. > > The second step was to remove binutils, glibc and gcc from the > %bootstrap-binaries for i686-linux and replace them with the *-mesboot > binaries. That only got us to build make-boot0, other bootstrap tools > seem (!) to need a newer glibc. > > Currently, the i686-linux bootstrap binaries are ~230MB in size > (unpacked). Removing binutils, glibc and gcc reduces this to ~130MB. > > The end goal is what we call a `full source bootstrap'; to only have a > ~500 byte binary seed: the hex0 monitor. Getting there will take some > time. Meanwhile we settle for a `reduced binary seed' bootstrap. > > Sadly, bootstrapping a glibc newer than 2.2.5 proved to be non-trivial. > As a temporary workaround, we chose to increase the bootstrap debt again > and inject the old %bootstrap-glibc after building all *-mesboot > binaries. > > Now we have a prototype bootstrap that needs > > ("i686-linux" `(("linux-libre-headers" > ,%bootstrap-linux-libre-headers) > ("mescc-tools-seed" ,%mescc-tools-seed) > ("mes-seed" ,%mes-seed) > ("srfi-43" ,%srfi-43 ) > ("tinycc-seed" ,%tinycc-seed))) > ("coreutils&co" ,%bootstrap-coreutils&co) > ("bash" ,%bootstrap-coreutils&co))) > > plus, to build the rest of Guix > > ("libc" ,%bootstrap-glibc) > > To try it, do something like > > git clone git://git.savannah.nongnu.org/guix > cd guix > git checkout -b wip-bootstrap > guix environment guix > ./bootstrap > ./configure > make > > and then, if you're feeling courageous and lucky > > ./pre-inst-env guix build --system=i686-linux hello > > or otherwise, you can do as I did > > ./pre-inst-env guix build --system=i686-linux gcc-mesboot > ./pre-inst-env guix build --system=i686-linux -e '(@@ (gnu packages > commencement) make-boot0)' > ./pre-inst-env guix build --system=i686-linux -e '(@@ (gnu packages > commencement) bintutils-cross-boot0)' > ./pre-inst-env guix build --system=i686-linux -e '(@@ (gnu packages > commencement) gcc-cross-boot0)' > ./pre-inst-env guix build --system=i686-linux -e '(@@ (gnu packages > commencement) gcc-final)' > ./pre-inst-env guix build --system=i686-linux -e '(@@ (gnu packages > commencement) guile-final)' > ... > > We need to determine the next steps and we could use some help. A rough > list of things to be done > > * cleanup the wip-bootstrap branch, merge it > * replace %bootstrap-glibc with a bootstrapped glibc again+) > * release mes 0.18 > * replace coreutils&co by bootstrapped packages > * other architectures: x86_64, arm*, ... > * replace mes-seed by a full source bootstrapped mes.M2 > * replace Bash with Gash and/or Geesh*) > > Wea; think that with "just a little bit" of extra effort we can have Guix > x86 be the first GNU/Linux that was bootstrapped without the use of > binary C compiler seed. > > Greetings, > janneke > > > +) After bootstrapping a static glibc-2.2.5, I tried building a shared > 2.2.5, 2.3, 2.3.4, 2.3.6, 2.4, 2.5 and 2.6. When all failed, I > invested a couple of days to patch 2.3.6...but that started to look > like a gargantuan undertaking. Iow, I'm stuck here. > Hello Jan, I'm currently on vacation, but I would be interested to have a look into this issue when I get home. Could you send me some details? > > *) Gash and Geesh are exciting new projects that have the mostly > overlapping goal to create a posix/bash compatible shell in Guile. > Although it may not be the highest priority from a full source > bootstrap point of view, having a shell in Guile is very exciting and > would help Guix a lot. We need to evaluate gash and geesh and > formulate a strategy. > > -- > Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond http://lilypond.org > Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com > >