1
0
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 Message Date
Jan (janneke) Nieuwenhuizen 721c51ceb3 squash! gnu: commencement: gcc-mesboot0: Support ARM. 2022-10-19 10:37:17 +02:00
Jan (janneke) Nieuwenhuizen 3c8170f65f squash! gnu: commencement: gcc-core-mesboot0: Support ARM. 2022-10-19 10:37:16 +02:00
Jan (janneke) Nieuwenhuizen f927cc48e1 squash! gnu: commencement: gcc-core-mesboot0: Support ARM. 2022-10-19 09:47:14 +02:00
Jan (janneke) Nieuwenhuizen 9d40ec0fcd squash! gnu: commencement: gcc-core-mesboot0: Support ARM. 2022-10-19 09:31:39 +02:00
Jan (janneke) Nieuwenhuizen 83842db321 DRAFT gnu: commencement: gcc-mesboot0: Support ARM.
* gnu/packages/commencement.scm (gcc-mesboot0)[native-inputs]: Add
gcc-boot-2.95.3-arm.patch.
[supported-systems]: Add armhf-linux, aarch64-linux.
[arguments]: Cater for armhf-linux, aarch64-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen cc625c9b1e DRAFT gnu: commencement: glibc-mesboot0: Support ARM.
* __restrict_arr is probably symptom of preprocessor arithmetic problems
   + lsh, /
 * It looks like glibc-2.2.5 and mesboot-haeders mismatch.
   + Many __NR_* syscalls are missing
   + Some headers are missing.
 * gcc-mesboot0: illegal instruction in glibc-2.2.5:

   0x000276b4 <+28>:	ldr	r8, [r10]
   0x000276b8 <+32>:	svc	0x00000014
=> 0x000276bc <+36>:	mov	r4, r0

* gnu/packages/patches/glibc-bootstrap-arm-2.2.5.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/commencement.scm (glibc-mesboot0)[native-inputs]: Add it.
[arguments]: Apply it in apply-patches.  Cater for armhf-linux, aarch64-linux.
* gnu/packages/commencement.scm (glibc-mesboot0)
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen 7d21e9a8c4 gnu: commencement: mesboot-headers: Support ARM.
* gnu/packages/commencement.scm (mesboot-headers)[supported-systems]: Add
aarch64-linux, armhf-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen a524b98c67 gnu: bootstrap: linux-libre-headers-bootstrap: Support ARM.
* gnu/packages/bootstrap.scm (%bootstrap-linux-libre-headers): Add tarball for
armhf-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen 062185b678 gnu: commencement: gcc-core-mesboot0: Support ARM.
* gnu/packages/patches/gcc-boot-2.95.3-arm.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/commencement.scm (gcc-core-mesboot0)[arguments]: Use it in
"apply-patches" stage, renamed from "apply-boot-patch".  Parameterize
configure-flags' --build,--host,--target.
[supported-systems]: Add aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen 5e05e0f56f gnu: commencement: binutils-mesboot0: Support ARM.
* gnu/packages/commencement.scm (bash-mesboot0)[arguments]: Update to new
package style.  Parameterize configure-flags' --build,--host,--target.  Add
ac_cv_func_strncmp_works configure override.
[supported-systems]: Add aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen 3b84bafcf7 gnu: commencement: patch-mesboot: Support ARM.
* gnu/packages/commencement.scm (patch-mesboot)[supported-systems]: Add
aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen ebef32e07b gnu: commencement: tcc-boot: Support ARM.
* gnu/packages/commencement.scm (tcc-boot)[arguments]: Cater for armhf-linux,
aarch64-linux.
[supported-systems]: Add aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen a49dd5b0ba gnu: commencement: make-mesboot0: Support ARM.
* gnu/packages/commencement.scm (gnu-make-mesboot0)[supported-systems]: Add
armhf-linux, aarch64-linux.
[arguments]: Cater for armhf-linux, aarch64-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen ab5334e4c6 gnu: commencement: gzip-mesboot: Support ARM.
* gnu/packages/commencement.scm (gzip-mesboot)[supported-systems]: Add
armhf-linux, aarch64-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen 8963701e2f gnu: commencement: tcc-boot0: Update to tcc-0.9.26-1136-g1b4f281f.
* gnu/packages/commencement.scm (tcc-boot0)[source]: Use https source URL
with mirror://.  Update to tcc-0.9.26-1136-g1b4f281f.
[suported-systems]: Add armhf-linux, aarch64-linux.
[arguments]: Update accordingly.
2022-10-18 23:00:11 +02:00
Jan (janneke) Nieuwenhuizen 6c65906c9a gnu: commencement: tcc-boot0: Use nyacc-1.00.2.
* gnu/packages/commencement.scm (tcc-boot0): Update NYACC to 1.00.2 and call
'bootstrap-origin' on the source.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen ba4fb0c975 gnu: commencement: mes-boot: Support ARM, update to 0.23.1.
* gnu/packages/commencement.scm (mes-boot)[source]: Update to 0.23.1.
[native-inputs]: Upadate to nyacc-1.00.2.
[arguments]: Cater for armhf-linux, aarch64-linux.
[supported-systems]: Add arm-linux, aarch64-linux.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 2c6136b6e3 gnu: commencement: bootstrap-mes-rewired: Support ARM.
* gnu/packages/commencement.scm (%bootstrap-mes-rewired)[version]: Remove.
[arguments]: Use map fixup and numbered_arch override for x86 bootstrap only,
which bootstrap binary is fixed at mes-0.19.
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 579e3712b0 gnu: commencement: gash-boot: Build fix for ARM.
* gnu/packages/commencement.scm (gash-boot)[arguments]: Add 'patch-compat
stage.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen ed906c84c7 DRAFT gnu: bootstrap: %bootstrap-mes: Support ARM.
XXX TODO:
  * rebase onto core-updates
  * release mes-0.23
  * rebuild

Built with
    7f847ea20b90c2fb8dc3b5eb51e6c007a8c5461a
    DRAFT bootstrap: mes-minimal: Support ARM, update to mes-0.22.115.

* gnu/packages/bootstrap.scm (%bootstrap-mes)[inputs]: Add tarball for
armhf-linux.
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 4984e737b7 gnu: bootstrap: %bootstrap-mescc-tools: Update ARM to 1.4.0.
Built with
    1e41b0abb3d977301b5533588ee24803a5649a08
    gnu: bootstrap: mes-minimal: Support ARM, update for mes-0.23.1.

* gnu/packages/bootstrap.scm (%bootstrap-mes)
* gnu/packages/bootstrap.scm (%bootstrap-mescc-tools)[inputs]: Update ARM to
1.4.0.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 257ca91787 DRAFT gnu: bootstrap: %bootstrap-mescc-tools: Support ARM.
XXX TODO:
  * rebase onto core-updates
  * rebuild

Built with
    7f847ea20b90c2fb8dc3b5eb51e6c007a8c5461a
    DRAFT bootstrap: mes-minimal: Support ARM, update to mes-0.22.115.

* gnu/packages/bootstrap.scm (%bootstrap-mescc-tools)[inputs]: Add
tarball for armhf-linux.
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-15 11:02:38 +02:00
Jan (janneke) Nieuwenhuizen f9293be58e gnu: bootstrap: mes-minimal: Support ARM, update for mes-0.23.1.
* gnu/packages/make-bootstrap.scm (%mes-minimal): Update for mes-0.23.1.
[arguments]: Support armhf-linux, aarch64-linux.
2022-10-15 11:02:31 +02:00
Jan (janneke) Nieuwenhuizen a7e7f29090 gnu: bootstrap: mescc-tools: Support ARM.
* gnu/packages/make-bootstrap.scm[arguments]: Support armhf-linux,
aarch64-linux.  Update make-flags to really build static.
2022-10-15 11:02:30 +02:00
Jan (janneke) Nieuwenhuizen 83ddbe0477 gnu: mes: Update to 0.23.1.
* gnu/packages/mes.scm (mes): Update to 0.23.1.
2022-10-15 11:02:30 +02:00
9 changed files with 2194 additions and 700 deletions
+34 -41
View File
@@ -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
+111 -76
View File
@@ -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
View File
@@ -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
View File
@@ -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)
File diff suppressed because it is too large Load Diff
+8 -3
View File
@@ -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
+3 -3
View File
@@ -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