mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-07-09 04:34:06 +02:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 721c51ceb3 | |||
| 3c8170f65f | |||
| f927cc48e1 | |||
| 9d40ec0fcd | |||
| 83842db321 | |||
| cc625c9b1e | |||
| 7d21e9a8c4 | |||
| a524b98c67 | |||
| 062185b678 | |||
| 5e05e0f56f | |||
| 3b84bafcf7 | |||
| ebef32e07b | |||
| a49dd5b0ba | |||
| ab5334e4c6 | |||
| 8963701e2f | |||
| 6c65906c9a | |||
| ba4fb0c975 | |||
| 2c6136b6e3 | |||
| 579e3712b0 | |||
| ed906c84c7 | |||
| 4984e737b7 | |||
| 257ca91787 | |||
| f9293be58e | |||
| a7e7f29090 | |||
| 83ddbe0477 |
+34
-41
@@ -36,7 +36,7 @@ Copyright @copyright{} 2016, 2017, 2018, 2021 Chris Marusich@*
|
||||
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner@*
|
||||
Copyright @copyright{} 2016 John Darrington@*
|
||||
Copyright @copyright{} 2016, 2017 Nikita Gillmann@*
|
||||
Copyright @copyright{} 2016, 2017, 2018, 2019, 2021, 2022 Jan Nieuwenhuizen@*
|
||||
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@*
|
||||
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller@*
|
||||
Copyright @copyright{} 2016 Alex ter Weele@*
|
||||
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@*
|
||||
@@ -394,7 +394,7 @@ Installing Debugging Files
|
||||
|
||||
Bootstrapping
|
||||
|
||||
* Full-Source Bootstrap:: A Bootstrap worthy of GNU.
|
||||
* Reduced Binary Seed Bootstrap:: A Bootstrap worthy of GNU.
|
||||
* Preparing to Use the Bootstrap Binaries:: Building that what matters most.
|
||||
|
||||
@end detailmenu
|
||||
@@ -39491,12 +39491,12 @@ re-create them if needed (@pxref{Preparing to Use the Bootstrap
|
||||
Binaries}).
|
||||
|
||||
@menu
|
||||
* Full-Source Bootstrap:: A Bootstrap worthy of GNU.
|
||||
* Reduced Binary Seed Bootstrap:: A Bootstrap worthy of GNU.
|
||||
* Preparing to Use the Bootstrap Binaries:: Building that what matters most.
|
||||
@end menu
|
||||
|
||||
@node Full-Source Bootstrap
|
||||
@section The Full-Source Bootstrap
|
||||
@node Reduced Binary Seed Bootstrap
|
||||
@section The Reduced Binary Seed Bootstrap
|
||||
|
||||
Guix---like other GNU/Linux distributions---is traditionally bootstrapped from
|
||||
a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU
|
||||
@@ -39511,47 +39511,28 @@ about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}). Auditing
|
||||
or even inspecting these is next to impossible.
|
||||
|
||||
For @code{i686-linux} and @code{x86_64-linux}, Guix now features a
|
||||
@dfn{full-source bootstrap}. This bootstrap is rooted in
|
||||
@file{hex0-seed} from the @url{https://savannah.gnu.org/projects/stage0,
|
||||
Stage0} package. The hex0 program is minimalist assembler: it reads
|
||||
space-separated hexadecimal digits (nibbles) from a file, possibly
|
||||
including comments, and emits on standard output the bytes corresponding
|
||||
to those hexadecimal numbers. The source code of this initial hex0
|
||||
program is a file called
|
||||
@c XXX TODO: udpate to savannah url, once accepted there
|
||||
@url{https://github.com/oriansj/bootstrap-seeds/blob/master/POSIX/x86/hex0_x86.hex0,@file{hex0_x86.hex0}}
|
||||
and is written in the @code{hex0} language.
|
||||
``Reduced Binary Seed'' bootstrap @footnote{We would like to say: ``Full
|
||||
Source Bootstrap'' and while we are working towards that goal it would
|
||||
be hyperbole to use that term for what we do now.}.
|
||||
|
||||
Hex0 is self-hosting, which means that it can build itself:
|
||||
The Reduced Binary Seed bootstrap removes the most critical tools---from a
|
||||
trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C
|
||||
Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and
|
||||
linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler
|
||||
written in Scheme and the Mes C Library, built for TinyCC and for GCC).
|
||||
|
||||
@example
|
||||
./hex0-seed hex0_x86.hex0 hex0
|
||||
@end example
|
||||
Using these new binary seeds the ``missing'' Binutils, GCC, and the GNU
|
||||
C Library are built from source. From here on the more traditional
|
||||
bootstrap process resumes. This approach has reduced the bootstrap
|
||||
binaries in size to about 145MB in Guix v1.1.
|
||||
|
||||
Hex0 it is the ASCII-equivalent of the binary program and can be
|
||||
produced by doing something much like:
|
||||
|
||||
@example
|
||||
sed 's/[;#].*$//g' hex0_x86.hex0 | xxd -r -p > hex0
|
||||
chmod +x hex0
|
||||
@end example
|
||||
|
||||
It is because of this ASCII-binary equivalence that we can bless this
|
||||
initial 357-byte binary as source, and hence `full-source bootstrap''.
|
||||
|
||||
The bootstrap then continues: @code{hex0} builds @code{hex1} and then on
|
||||
to @code{M0}, @code{hex2}, @code{M1}, @code{mescc-tools} and finally
|
||||
@code{M2-Planet}. Then, using @code{mescc-tools}, @code{M2-Planet} we
|
||||
build Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a
|
||||
Scheme interpreter and C compiler in Scheme). Frome here on starts
|
||||
the more traditional @code{C}-based bootstrap of the GNU System.
|
||||
|
||||
Another step that Guix has taken is to replace the shell and all its
|
||||
The next step that Guix has taken is to replace the shell and all its
|
||||
utilities with implementations in Guile Scheme, the @emph{Scheme-only
|
||||
bootstrap}. Gash (@pxref{Gash,,, gash, The Gash manual}) is a
|
||||
POSIX-compatible shell that replaces Bash, and it comes with Gash Utils
|
||||
which has minimalist replacements for Awk, the GNU Core Utilities, Grep,
|
||||
Gzip, Sed, and Tar.
|
||||
Gzip, Sed, and Tar. The rest of the bootstrap binary seeds that were
|
||||
removed are now built from source.
|
||||
|
||||
Building the GNU System from source is currently only possible by adding
|
||||
some historical GNU packages as intermediate steps@footnote{Packages
|
||||
@@ -39567,10 +39548,22 @@ The graph below shows the resulting dependency graph for
|
||||
@code{gcc-core-mesboot0}, the bootstrap compiler used for the
|
||||
traditional bootstrap of the rest of the Guix System.
|
||||
|
||||
@c ./pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' | sed -re 's,((bootstrap-seeds|guile-bootstrap).*shape =) box,\1 ellipse,' > doc/images/gcc-core-mesboot0-graph.dot
|
||||
@c ./pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' | sed -re 's,((bootstrap-mescc-tools|bootstrap-mes|guile-bootstrap).*shape =) box,\1 ellipse,' > doc/images/gcc-core-mesboot0-graph.dot
|
||||
@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}
|
||||
|
||||
Work is ongoing to to bring these bootstraps to the @code{arm-linux} and
|
||||
The only significant binary bootstrap seeds that remain@footnote{
|
||||
Ignoring the 68KB @code{mescc-tools}; that will be removed later,
|
||||
together with @code{mes}.} are a Scheme interpreter and a Scheme
|
||||
compiler: GNU Mes and GNU Guile@footnote{Not shown in this graph are the
|
||||
static binaries for @file{bash}, @code{tar}, and @code{xz} that are used
|
||||
to get Guile running.}.
|
||||
|
||||
This further reduction has brought down the size of the binary seed to
|
||||
about 60MB for @code{i686-linux} and @code{x86_64-linux}.
|
||||
|
||||
Work is ongoing to remove all binary blobs from our free software
|
||||
bootstrap stack, working towards a Full Source Bootstrap. Also ongoing
|
||||
is work to bring these bootstraps to the @code{arm-linux} and
|
||||
@code{aarch64-linux} architectures and to the Hurd.
|
||||
|
||||
If you are interested, join us on @samp{#bootstrappable} on the Freenode
|
||||
|
||||
@@ -1,79 +1,114 @@
|
||||
digraph "Guix package" {
|
||||
"139803511371136" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = sans];
|
||||
"139803511371136" -> "139803511371312" [color = red];
|
||||
"139803511371136" -> "139803511372016" [color = red];
|
||||
"139803511371136" -> "139803511371488" [color = red];
|
||||
"139803511371136" -> "139803511371664" [color = red];
|
||||
"139803511371136" -> "139803511371840" [color = red];
|
||||
"139803511371136" -> "139803507105792" [color = red];
|
||||
"139803511371136" -> "139803511373600" [color = red];
|
||||
"139803511371136" -> "139803507105968" [color = red];
|
||||
"139803511371136" -> "139803749199472" [color = red];
|
||||
"139803511371312" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = sans];
|
||||
"139803511371312" -> "139803511372016" [color = dimgrey];
|
||||
"139803511371312" -> "139803511371488" [color = dimgrey];
|
||||
"139803511371312" -> "139803511371664" [color = dimgrey];
|
||||
"139803511371312" -> "139803511371840" [color = dimgrey];
|
||||
"139803511371312" -> "139803507105792" [color = dimgrey];
|
||||
"139803511371312" -> "139803511373600" [color = dimgrey];
|
||||
"139803511371312" -> "139803507105968" [color = dimgrey];
|
||||
"139803511371312" -> "139803749199472" [color = dimgrey];
|
||||
"139803511372016" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
|
||||
"139803511372016" -> "139803511372192" [color = magenta];
|
||||
"139803511372016" -> "139803507105792" [color = magenta];
|
||||
"139803511372016" -> "139803511373600" [color = magenta];
|
||||
"139803511372016" -> "139803507105968" [color = magenta];
|
||||
"139803511372016" -> "139803749199472" [color = magenta];
|
||||
"139803511372192" [label = "tcc-boot0@0.9.26-1136-g5bba73cc", shape = box, fontname = sans];
|
||||
"139803511372192" -> "139803511372368" [color = magenta];
|
||||
"139803511372192" -> "139803511372544" [color = magenta];
|
||||
"139803511372192" -> "139803507105792" [color = magenta];
|
||||
"139803511372192" -> "139803511373600" [color = magenta];
|
||||
"139803511372192" -> "139803507105968" [color = magenta];
|
||||
"139803511372192" -> "139803749199472" [color = magenta];
|
||||
"139803511372368" [label = "mes-boot@0.24", shape = box, fontname = sans];
|
||||
"139803511372368" -> "139803511372544" [color = darkviolet];
|
||||
"139803511372368" -> "139803507105792" [color = darkviolet];
|
||||
"139803511372368" -> "139803511373600" [color = darkviolet];
|
||||
"139803511372368" -> "139803507105968" [color = darkviolet];
|
||||
"139803511372368" -> "139803749199472" [color = darkviolet];
|
||||
"139803511372544" [label = "stage0-posix@1.4", shape = box, fontname = sans];
|
||||
"139803511372544" -> "139803511373072" [color = peachpuff4];
|
||||
"139803511372544" -> "139803507105792" [color = peachpuff4];
|
||||
"139803511372544" -> "139803511373600" [color = peachpuff4];
|
||||
"139803511372544" -> "139803507105968" [color = peachpuff4];
|
||||
"139803511372544" -> "139803749199472" [color = peachpuff4];
|
||||
"139803511373072" [label = "bootstrap-seeds@1.0.0", shape = ellipse, fontname = sans];
|
||||
"139803511373072" -> "139803507105968" [color = cyan3];
|
||||
"139803507105968" [label = "bootar@1b", shape = box, fontname = sans];
|
||||
"139803507105968" -> "139803749199472" [color = dimgrey];
|
||||
"139803749199472" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = sans];
|
||||
"139803507105792" [label = "gash-boot@0.3.0", shape = box, fontname = sans];
|
||||
"139803507105792" -> "139803507105968" [color = darkviolet];
|
||||
"139803507105792" -> "139803749199472" [color = darkviolet];
|
||||
"139803511373600" [label = "gash-utils-boot@0.2.0", shape = box, fontname = sans];
|
||||
"139803511373600" -> "139803507105968" [color = red];
|
||||
"139803511373600" -> "139803507105792" [color = red];
|
||||
"139803511373600" -> "139803749199472" [color = red];
|
||||
"139803511371488" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
|
||||
"139803511371488" -> "139803511371840" [color = darkseagreen];
|
||||
"139803511371488" -> "139803511372192" [color = darkseagreen];
|
||||
"139803511371488" -> "139803507105792" [color = darkseagreen];
|
||||
"139803511371488" -> "139803511373600" [color = darkseagreen];
|
||||
"139803511371488" -> "139803507105968" [color = darkseagreen];
|
||||
"139803511371488" -> "139803749199472" [color = darkseagreen];
|
||||
"139803511371840" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
|
||||
"139803511371840" -> "139803511372192" [color = blue];
|
||||
"139803511371840" -> "139803507105792" [color = blue];
|
||||
"139803511371840" -> "139803511373600" [color = blue];
|
||||
"139803511371840" -> "139803507105968" [color = blue];
|
||||
"139803511371840" -> "139803749199472" [color = blue];
|
||||
"139803511371664" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
|
||||
"139803511371664" -> "139803511371840" [color = peachpuff4];
|
||||
"139803511371664" -> "139803511372192" [color = peachpuff4];
|
||||
"139803511371664" -> "139803507105792" [color = peachpuff4];
|
||||
"139803511371664" -> "139803511373600" [color = peachpuff4];
|
||||
"139803511371664" -> "139803507105968" [color = peachpuff4];
|
||||
"139803511371664" -> "139803749199472" [color = peachpuff4];
|
||||
"139781154519456" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"139781154519456" -> "139781154519632" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781154520688" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781034971312" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781154520160" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781034971664" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781154519984" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781154519808" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781154520512" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781034971488" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781034972896" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781034972368" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781034973072" [color = darkgoldenrod];
|
||||
"139781154519456" -> "139781131267872" [color = darkgoldenrod];
|
||||
"139781154519632" [label = "binutils-mesboot0@2.14", shape = box, fontname = Helvetica];
|
||||
"139781154519632" -> "139781154520688" [color = peachpuff4];
|
||||
"139781154519632" -> "139781034971312" [color = peachpuff4];
|
||||
"139781154519632" -> "139781154520160" [color = peachpuff4];
|
||||
"139781154519632" -> "139781034971664" [color = peachpuff4];
|
||||
"139781154519632" -> "139781154519984" [color = peachpuff4];
|
||||
"139781154519632" -> "139781154519808" [color = peachpuff4];
|
||||
"139781154519632" -> "139781154520512" [color = peachpuff4];
|
||||
"139781154519632" -> "139781034971488" [color = peachpuff4];
|
||||
"139781154519632" -> "139781034972896" [color = peachpuff4];
|
||||
"139781154519632" -> "139781034972368" [color = peachpuff4];
|
||||
"139781154519632" -> "139781034973072" [color = peachpuff4];
|
||||
"139781154519632" -> "139781131267872" [color = peachpuff4];
|
||||
"139781154520688" [label = "bash-mesboot0@2.05b", shape = box, fontname = Helvetica];
|
||||
"139781154520688" -> "139781034971488" [color = magenta];
|
||||
"139781154520688" -> "139781034971840" [color = magenta];
|
||||
"139781154520688" -> "139781034972896" [color = magenta];
|
||||
"139781154520688" -> "139781034972368" [color = magenta];
|
||||
"139781154520688" -> "139781034973072" [color = magenta];
|
||||
"139781154520688" -> "139781131267872" [color = magenta];
|
||||
"139781034971488" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||
"139781034971488" -> "139781034971840" [color = dimgrey];
|
||||
"139781034971488" -> "139781034972896" [color = dimgrey];
|
||||
"139781034971488" -> "139781034972368" [color = dimgrey];
|
||||
"139781034971488" -> "139781034973072" [color = dimgrey];
|
||||
"139781034971488" -> "139781131267872" [color = dimgrey];
|
||||
"139781034971840" [label = "tcc-boot0@0.9.26-1103-g6e62e0e", shape = box, fontname = Helvetica];
|
||||
"139781034971840" -> "139781034972016" [color = magenta];
|
||||
"139781034971840" -> "139781131266816" [color = magenta];
|
||||
"139781034971840" -> "139781034972896" [color = magenta];
|
||||
"139781034971840" -> "139781034972368" [color = magenta];
|
||||
"139781034971840" -> "139781034973072" [color = magenta];
|
||||
"139781034971840" -> "139781131267872" [color = magenta];
|
||||
"139781034972016" [label = "mes-boot@0.22", shape = box, fontname = Helvetica];
|
||||
"139781034972016" -> "139781034972192" [color = cyan3];
|
||||
"139781034972016" -> "139781131266816" [color = cyan3];
|
||||
"139781034972016" -> "139781034972896" [color = cyan3];
|
||||
"139781034972016" -> "139781034972368" [color = cyan3];
|
||||
"139781034972016" -> "139781034973072" [color = cyan3];
|
||||
"139781034972016" -> "139781131267872" [color = cyan3];
|
||||
"139781034972192" [label = "bootstrap-mes-rewired@0.19", shape = ellipse, fontname = Helvetica];
|
||||
"139781034972192" -> "139781131266640" [color = darkseagreen];
|
||||
"139781034972192" -> "139781034972896" [color = darkseagreen];
|
||||
"139781131266640" [label = "bootstrap-mes@0", shape = ellipse, fontname = Helvetica];
|
||||
"139781034972896" [label = "gash-boot@0.2.0", shape = box, fontname = Helvetica];
|
||||
"139781034972896" -> "139781034973072" [color = darkviolet];
|
||||
"139781034972896" -> "139781131267872" [color = darkviolet];
|
||||
"139781034973072" [label = "bootar@1", shape = box, fontname = Helvetica];
|
||||
"139781034973072" -> "139781131267872" [color = darkviolet];
|
||||
"139781131267872" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = Helvetica];
|
||||
"139781131266816" [label = "bootstrap-mescc-tools@0.5.2", shape = ellipse, fontname = Helvetica];
|
||||
"139781034972368" [label = "gash-utils-boot@0.1.0", shape = box, fontname = Helvetica];
|
||||
"139781034972368" -> "139781034973072" [color = darkseagreen];
|
||||
"139781034972368" -> "139781034972896" [color = darkseagreen];
|
||||
"139781034972368" -> "139781131267872" [color = darkseagreen];
|
||||
"139781034971312" [label = "bzip2-mesboot@1.0.8", shape = box, fontname = Helvetica];
|
||||
"139781034971312" -> "139781034971488" [color = cyan3];
|
||||
"139781034971312" -> "139781034971840" [color = cyan3];
|
||||
"139781034971312" -> "139781034972896" [color = cyan3];
|
||||
"139781034971312" -> "139781034972368" [color = cyan3];
|
||||
"139781034971312" -> "139781034973072" [color = cyan3];
|
||||
"139781034971312" -> "139781131267872" [color = cyan3];
|
||||
"139781154520160" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||
"139781154520160" -> "139781034971488" [color = red];
|
||||
"139781154520160" -> "139781034971840" [color = red];
|
||||
"139781154520160" -> "139781034972896" [color = red];
|
||||
"139781154520160" -> "139781034972368" [color = red];
|
||||
"139781154520160" -> "139781034973072" [color = red];
|
||||
"139781154520160" -> "139781131267872" [color = red];
|
||||
"139781034971664" [label = "gzip-mesboot@1.2.4", shape = box, fontname = Helvetica];
|
||||
"139781034971664" -> "139781034971840" [color = red];
|
||||
"139781034971664" -> "139781034972896" [color = red];
|
||||
"139781034971664" -> "139781034972368" [color = red];
|
||||
"139781034971664" -> "139781034973072" [color = red];
|
||||
"139781034971664" -> "139781131267872" [color = red];
|
||||
"139781154519984" [label = "patch-mesboot@2.5.9", shape = box, fontname = Helvetica];
|
||||
"139781154519984" -> "139781034971488" [color = blue];
|
||||
"139781154519984" -> "139781034971840" [color = blue];
|
||||
"139781154519984" -> "139781034972896" [color = blue];
|
||||
"139781154519984" -> "139781034972368" [color = blue];
|
||||
"139781154519984" -> "139781034973072" [color = blue];
|
||||
"139781154519984" -> "139781131267872" [color = blue];
|
||||
"139781154519808" [label = "sed-mesboot0@1.18", shape = box, fontname = Helvetica];
|
||||
"139781154519808" -> "139781034971488" [color = red];
|
||||
"139781154519808" -> "139781034971840" [color = red];
|
||||
"139781154519808" -> "139781034972896" [color = red];
|
||||
"139781154519808" -> "139781034972368" [color = red];
|
||||
"139781154519808" -> "139781034973072" [color = red];
|
||||
"139781154519808" -> "139781131267872" [color = red];
|
||||
"139781154520512" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||
"139781154520512" -> "139781034971312" [color = darkviolet];
|
||||
"139781154520512" -> "139781034971488" [color = darkviolet];
|
||||
"139781154520512" -> "139781034971840" [color = darkviolet];
|
||||
"139781154520512" -> "139781034972896" [color = darkviolet];
|
||||
"139781154520512" -> "139781034972368" [color = darkviolet];
|
||||
"139781154520512" -> "139781034973072" [color = darkviolet];
|
||||
"139781154520512" -> "139781131267872" [color = darkviolet];
|
||||
|
||||
}
|
||||
|
||||
+3
-1
@@ -11,7 +11,7 @@
|
||||
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
|
||||
# Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
@@ -1089,6 +1089,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
|
||||
%D%/packages/patches/gcc-asan-missing-include.patch \
|
||||
%D%/packages/patches/gcc-boot-2.95.3.patch \
|
||||
%D%/packages/patches/gcc-boot-2.95.3-arm.patch \
|
||||
%D%/packages/patches/gcc-boot-4.6.4.patch \
|
||||
%D%/packages/patches/gcc-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-cross-gxx-include-dir.patch \
|
||||
@@ -1157,6 +1158,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
|
||||
%D%/packages/patches/glibc-boot-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-boot-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-arm-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system.patch \
|
||||
|
||||
+43
-14
@@ -661,12 +661,23 @@ $out/bin/guile --version~%"
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
|
||||
(match system
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
(string-append
|
||||
"/armhf-linux/20201219/"
|
||||
"linux-libre-headers-stripped-5.4.20-armhf-linux.tar.xz"))
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
(string-append
|
||||
"/i686-linux/20190815/"
|
||||
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz"))))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
|
||||
(match system
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"0d010sp3n2q6cc3ppcgrxrdlgkgr3vlv3x76wz14gc3xfhnnm2x5")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))))
|
||||
#f ; no program to test
|
||||
"Bootstrap linux-libre-headers"))
|
||||
|
||||
@@ -968,17 +979,25 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map
|
||||
(cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz")
|
||||
(cut string-append <> (%current-system) "/"
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"20221016/mescc-tools-static-stripped-1.4.0-armhf-linux.tar.xz")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"20190815/mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"0c3kklgghzh4q2dbpl6asb74cimp7hp6jscdwqwmzxbapgcl6582")))))))
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"0ldpxi17c6bgxi8sp84k0f49q0s4xn2nbg89qav594slhq3px9lv")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"0c3kklgghzh4q2dbpl6asb74cimp7hp6jscdwqwmzxbapgcl6582")))))))))
|
||||
(synopsis "Bootstrap binaries of MesCC Tools")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(supported-systems '("armhf-linux" "aarch64-linux"
|
||||
"i686-linux" "x86_64-linux"))
|
||||
(license gpl3+)))
|
||||
|
||||
(define %bootstrap-mes
|
||||
@@ -1017,14 +1036,22 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map
|
||||
(cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"mes-minimal-stripped-0.19-i686-linux.tar.xz")
|
||||
(cute string-append <> (%current-system) "/"
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"20201217/mes-minimal-stripped-0.22-115-gdacaed9fe-armhf-linux.tar.xz")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"20190815/mes-minimal-stripped-0.19-i686-linux.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"1q4xjpx6nbn44kxnilpgl12bhpmwy2bblzwszc2ci7xkf400jcpv")))))))
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"0daz658r9psmqxjkayvr8ymql6h4gf11gwdd4k3mdv7czc5ak399")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"1q4xjpx6nbn44kxnilpgl12bhpmwy2bblzwszc2ci7xkf400jcpv")))))))))
|
||||
(supported-systems '("armhf-linux" "aarch64-linux"
|
||||
"i686-linux" "x86_64-linux"))
|
||||
(synopsis "Bootstrap binaries of Mes")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
@@ -1035,7 +1062,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
;; own packages.
|
||||
(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)))
|
||||
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)
|
||||
("bootstrap-mescc-tools" ,%bootstrap-mescc-tools)
|
||||
("mes" ,%bootstrap-mes)))
|
||||
(_
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
|
||||
+674
-562
File diff suppressed because it is too large
Load Diff
@@ -598,10 +598,13 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
|
||||
(inherit mescc-tools)
|
||||
(name "mescc-tools-static")
|
||||
(arguments
|
||||
`(#:system "i686-linux"
|
||||
`(#:system ,(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux") "i686-linux")
|
||||
((or "armhf-linux" "aarch64-linux") "armhf-linux"))
|
||||
,@(substitute-keyword-arguments (package-arguments mescc-tools)
|
||||
((#:make-flags flags)
|
||||
`(cons "CC=gcc -static" ,flags)))))))
|
||||
'(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
"CC=gcc -static")))))))
|
||||
|
||||
;; ... next remove store references.
|
||||
(define %mescc-tools-static-stripped
|
||||
@@ -636,7 +639,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
|
||||
(name "mes-minimal")
|
||||
(native-inputs (list guile-3.0))
|
||||
(arguments
|
||||
`(#:system "i686-linux"
|
||||
`(#:system ,(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux") "i686-linux")
|
||||
((or "armhf-linux" "aarch64-linux") "armhf-linux"))
|
||||
#:strip-binaries? #f
|
||||
#:configure-flags '("--mes")
|
||||
#:phases
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
|
||||
@@ -167,14 +167,14 @@ parsers to allow execution with Guile as extension languages.")))
|
||||
(define-public mes
|
||||
(package
|
||||
(name "mes")
|
||||
(version "0.23")
|
||||
(version "0.23.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mes/"
|
||||
"mes-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mnryfkl0dwbr5gxp16j5s95gw7z1vm1fqa1pxabp0aiar1hw53s"))))
|
||||
"0hbnqgjiajs8wq03dkvr9aswrzk8kl98dm6245xhlgqis8d2yhqd"))))
|
||||
(supported-systems '("armhf-linux" "i686-linux" "x86_64-linux"))
|
||||
(propagated-inputs (list mescc-tools nyacc-1.00.2))
|
||||
(native-inputs
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
This patch enables building gcc-2.95.3 on armhf-linux using TCC and
|
||||
Mes C Library.
|
||||
|
||||
* Add include/asm/unist.h linux header.
|
||||
* Disable libgcc2.c float and long long functions.
|
||||
|
||||
Upstream status: Not presented upstream.
|
||||
|
||||
--- gcc-2.95.3/include/asm/unistd.h.orig 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ gcc-2.95.3/include/asm/unistd.h 2020-12-23 07:49:44.156673879 +0100
|
||||
@@ -0,0 +1,9 @@
|
||||
+#ifndef __ASM_UNISTD_H
|
||||
+#define __ASM_UNISTD_H
|
||||
+
|
||||
+#if __arm__
|
||||
+#define __NR_getpid 0x14
|
||||
+#define __NR_kill 0x25
|
||||
+#endif
|
||||
+
|
||||
+#endif // __ASM_UNISTD_H
|
||||
--- gcc-2.95.3/gcc/Makefile.in.orig 2020-12-23 08:31:57.733501802 +0100
|
||||
+++ gcc-2.95.3/gcc/Makefile.in 2020-12-23 08:31:49.985371208 +0100
|
||||
@@ -1260,7 +1260,7 @@
|
||||
-(cd tmpcopy; chmod +w * > /dev/null 2>&1)
|
||||
(cd tmpcopy; $(AR_FOR_TARGET) x ../$(LIBGCC2))
|
||||
(cd tmpcopy; $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) ../tmplibgcc.a *$(objext))
|
||||
- rm -rf libgcc2.a tmpcopy
|
||||
+ rm -rf tmpcopy
|
||||
if $(RANLIB_TEST_FOR_TARGET) ; then \
|
||||
$(RANLIB_FOR_TARGET) tmplibgcc.a; \
|
||||
else true; fi
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user