unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds
@ 2018-09-03 21:40 Jan Nieuwenhuizen
  2018-09-04 21:33 ` Amin Bandali
  2018-09-05 15:07 ` Jan Nieuwenhuizen
  0 siblings, 2 replies; 5+ messages in thread
From: Jan Nieuwenhuizen @ 2018-09-03 21:40 UTC (permalink / raw)
  To: guix-devel

The wip-bootstrap branch now builds without binutils, gcc, and glibc seeds.

Thanks to #bootstrappable and #glibc and a week's work of hammering and
determination we succeeded in bootstrapping glibc-2.16.0.  This glibc is
recent enough to bootstrap GuixSD!

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)))

to build all of Guix i686-linux.

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

    * review the wip-bootstrap branch, merge it
    * make lots of noise!!!
    * 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*)

We're now very close to have Guix x86 be the first GNU/Linux that was
bootstrapped without the use of binary C compiler seed.

Greetings,
janneke

*) 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 <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com

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

* Re: bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds
  2018-09-03 21:40 bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds Jan Nieuwenhuizen
@ 2018-09-04 21:33 ` Amin Bandali
  2018-09-05 15:07 ` Jan Nieuwenhuizen
  1 sibling, 0 replies; 5+ messages in thread
From: Amin Bandali @ 2018-09-04 21:33 UTC (permalink / raw)
  To: Jan Nieuwenhuizen, guix-devel

Hello Jan,

> The wip-bootstrap branch now builds without binutils, gcc, and glibc seeds.
>
> Thanks to #bootstrappable and #glibc and a week's work of hammering and
> determination we succeeded in bootstrapping glibc-2.16.0.  This glibc is
> recent enough to bootstrap GuixSD!
> [...]
> We're now very close to have Guix x86 be the first GNU/Linux that was
> bootstrapped without the use of binary C compiler seed.

That's *awesome*!  Thank you (and everyone else involved) for all
your work on #bootstrappable, really exciting stuff!

  -amin

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

* Re: bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds
  2018-09-03 21:40 bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds Jan Nieuwenhuizen
  2018-09-04 21:33 ` Amin Bandali
@ 2018-09-05 15:07 ` Jan Nieuwenhuizen
  2018-09-05 20:56   ` Christopher Lemmer Webber
  1 sibling, 1 reply; 5+ messages in thread
From: Jan Nieuwenhuizen @ 2018-09-05 15:07 UTC (permalink / raw)
  To: guix-devel

Jan Nieuwenhuizen writes:

> The wip-bootstrap branch now builds without binutils, gcc, and glibc seeds.

Well, I'm very sorry but I cheered just a little bit too early, as I
just found out.

> Thanks to #bootstrappable and #glibc and a week's work of hammering and
> determination we succeeded in bootstrapping glibc-2.16.0.

This still holds, and we can also build gnu-make-boot0, diffutils-boot0,
file-boot0, binutils-boot0 using this glibc!

> This glibc is recent enough to bootstrap GuixSD!

Well, not just yet as I found out.  Building libstdc++-boot0@4.9.4 with
gcc-4.7.4 and glibc-2.16.0 fails with

--8<---------------cut here---------------start------------->8---
/gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/bash ../libtool --tag CXX   --mode=compile g++  -I/tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/ -I/tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include -I/tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/libstdc++-v3/libsupc++   -fno-implicit-templates  -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi  -fdiagnostics-show-location=once   -ffunction-sections -fdata-sections  -frandom-seed=compatibility-atomic-c++0x.lo   -std=gnu++11 -c ../../libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
In file included from /tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/bits/move.h:57:0,
                 from /tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/bits/stl_pair.h:59,
                 from /tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/bits/stl_algobase.h:64,
                 from /tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/bits/char_traits.h:39,
                 from /tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/string:40,
                 from ../../libstdc++-v3/src/c++11/compatibility-c++0x.cc:26:
/tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/type_traits:395:44: error: template argument 1 is invalid
/tmp/guix-build-libstdc++-boot0-4.9.4.drv-0/gcc-4.9.4/build/include/type_traits:399:45: error: template argument 1 is invalid
--8<---------------cut here---------------end--------------->8---

So, I tried building libstdc++-boot0@4.8.5.  I'm not sure if that's
recent enough to build our main gcc-5, but at least it could be a
necessary intermediate step.  This fails in phase `install'

--8<---------------cut here---------------start------------->8---
make[3]: Leaving directory '/tmp/guix-build-libstdc++-boot0-4.8.5.drv-0/gcc-4.8.5/build/src/c++11'
make[2]: Leaving directory '/tmp/guix-build-libstdc++-boot0-4.8.5.drv-0/gcc-4.8.5/build/src/c++11'
make[2]: Entering directory '/tmp/guix-build-libstdc++-boot0-4.8.5.drv-0/gcc-4.8.5/build/src'
make[3]: Entering directory '/tmp/guix-build-libstdc++-boot0-4.8.5.drv-0/gcc-4.8.5/build/src'
test -z "/gnu/store/g34qpy7754azqi9f218kbpli86nwwhl9-libstdc++-boot0-4.8.5/lib" || /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/mkdir -p "/gnu/store/g34qpy7754azqi9f218kbpli86nwwhl9-libstdc++-boot0-4.8.5/lib"
 /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/bash ../libtool   --mode=install /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/install -c   libstdc++.la '/gnu/store/g34qpy7754azqi9f218kbpli86nwwhl9-libstdc++-boot0-4.8.5/lib'
libtool: install: /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/install -c .libs/libstdc++.so.6.0.19 /gnu/store/g34qpy7754azqi9f218kbpli86nwwhl9-libstdc++-boot0-4.8.5/lib/libstdc++.so.6.0.19
/gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/install: cannot stat '.libs/libstdc++.so.6.0.19': No such file or directory
make[3]: *** [Makefile:516: install-toolexeclibLTLIBRARIES] Error 1
make[3]: Leaving directory '/tmp/guix-build-libstdc++-boot0-4.8.5.drv-0/gcc-4.8.5/build/src'
make[2]: *** [Makefile:716: install-am] Error 2
make[2]: Leaving directory '/tmp/guix-build-libstdc++-boot0-4.8.5.drv-0/gcc-4.8.5/build/src'
make[1]: *** [Makefile:575: install-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-libstdc++-boot0-4.8.5.drv-0/gcc-4.8.5/build/src'
make: *** [Makefile:480: install-recursive] Error 1
--8<---------------cut here---------------end--------------->8---

Feeling slightly discouraged, but I will hammer on.  We're getting
closer and closer...

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] 5+ messages in thread

* Re: bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds
  2018-09-05 15:07 ` Jan Nieuwenhuizen
@ 2018-09-05 20:56   ` Christopher Lemmer Webber
  2018-09-06 19:55     ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 5+ messages in thread
From: Christopher Lemmer Webber @ 2018-09-05 20:56 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guix-devel

Jan Nieuwenhuizen writes:

> Jan Nieuwenhuizen writes:
> Feeling slightly discouraged, but I will hammer on.  We're getting
> closer and closer...
>
> janneke

You really are!  Go team bootstrap!

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

* Re: bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds
  2018-09-05 20:56   ` Christopher Lemmer Webber
@ 2018-09-06 19:55     ` Jan Nieuwenhuizen
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Nieuwenhuizen @ 2018-09-06 19:55 UTC (permalink / raw)
  To: Christopher Lemmer Webber; +Cc: guix-devel

Christopher Lemmer Webber writes:

>> Feeling slightly discouraged, but I will hammer on.  We're getting
>> closer and closer...
>>
>> janneke
>
> You really are!  Go team bootstrap!

Yay, thanks!  Here's my next progress update.  While I thought we were
done, it seems there are more uncovered problems ahead.

The wip-bootstrap branch now builds gcc-4.9.4 cleanly, including g++ and
libstdc++, I believe.

Also, using a very ugly hack, this

    ./pre-inst-env guix build --system=i686-linux -e '(begin (use-modules (guix packages)) (%current-system "i686-linux") (@@ (gnu packages commencement) libstdc++-boot0))'

now also builds.  Strangely enough, without patching libstdc++-boot0,
.libs/libstdc++.so.6.0.20 doesn't get built and install fails.

Because I'm build the guix bootstrap now with gcc-4.9.4 that already
built that library, I could add

     (copy-file (string-append gcc "/lib/libstdc++.so.6.0.20")
                (string-append "src/.libs/libstdc++.so.6.0.20"))

and have libstdc++-boot0 succeed...Ugh.

No clue yet what's going on, comparing the plain gcc-mesboot@4.9.4 build
with the libstdc++-boot0@4.9.4 should give insights; but I haven't had
any yet.

The next package to build is gcc-boot0, it fails in a pretty similar
way; build succeeds, install says:

--8<---------------cut here---------------start------------->8---
test -z "/gnu/store/85hqb2z5rikwhl82xqf23cg3nr7x7q90-gcc-cross-boot0-5.5.0-lib/lib/." || /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/mkdir -p "/gnu/store/85hqb2z5rikwhl82xqf23cg3nr7x7q90-gcc-cross-boot0-5.5.0-lib/lib/."
 /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/bash ./libtool   --mode=install /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/install -c   libcc1.la '/gnu/store/85hqb2z5rikwhl82xqf23cg3nr7x7q90-gcc-cross-boot0-5.5.0-lib/lib/.'
libtool: install: /gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/install -c .libs/libcc1.so.0.0.0 /gnu/store/85hqb2z5rikwhl82xqf23cg3nr7x7q90-gcc-cross-boot0-5.5.0-lib/lib/./libcc1.so.0.0.0
/gnu/store/7swwdnq02lqk4xkd8740fxdj1h4va38l-bootstrap-binaries-0/bin/install: cannot stat '.libs/libcc1.so.0.0.0': No such file or directory
make[4]: *** [Makefile:349: install-cc1libLTLIBRARIES] Error 1
--8<---------------cut here---------------end--------------->8---

Any help, suggestions or encouragements much appreciated.

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] 5+ messages in thread

end of thread, other threads:[~2018-09-06 19:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-03 21:40 bootstrap: i686-linux now builds without binutils, gcc, and glibc seeds Jan Nieuwenhuizen
2018-09-04 21:33 ` Amin Bandali
2018-09-05 15:07 ` Jan Nieuwenhuizen
2018-09-05 20:56   ` Christopher Lemmer Webber
2018-09-06 19:55     ` Jan Nieuwenhuizen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).