This reduces the number of nodes in "guix graph guile-static-stripped"
from 165 to 150. Likewise, the hit rate in the 'add-data-to-store'
cache for "guix build guile-static-stripped -nd" goes from 24% to 12%.
* gnu/packages/make-bootstrap.scm (gcc-for-bootstrap): New procedure.
(package-with-relocatable-glibc): Use it.
This reduces the graph shown by:
guix graph -e '(@@ (gnu packages make-bootstrap) %gcc-static)'
from 258 nodes (2398 edges) to 179 nodes (1872 edges).
* gnu/packages/make-bootstrap.scm (glibc-for-bootstrap): Turn into an
'mlambdaq'.
(package-with-relocatable-glibc, %glibc-stripped): Explicitly pass an
argument to 'glibc-for-bootstrap'.
* gnu/packages/patches/bash-4.4-linux-pgrp-pipe.patch: Remove.
* gnu/packages/patches/bash-reproducible-linux-pgrp-pipe.patch: New file.
* gnu/packages/make-bootstrap.scm (static-bash-for-bootstrap): Update to use
it.
* gnu/local.mk (dist_patch_DATA): Likewise.
* gnu/packages/patches/bash-4.4-linux-pgrp-pipe.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/make-bootstrap.scm (static-bash-for-bootstrap): New variable.
(%static-inputs): Use 'static-bash-for-bootstrap' instead of 'static-bash'.
* gnu/packages/make-bootstrap.scm (%bootstrap-tarballs)[inputs]: On i686-linux
and x86_64-linux, substitute linux-libre-headers, Mes, and MesCC, in place of
GCC, binutils, and glibc.
* gnu/packages/make-bootstrap.scm (%mes-minimal, %mes-minimal-stripped,
%mes-bootstrap-tarball): New variable.
Modified-By: Mark H Weaver <mhw@netris.org>
* gnu/packages/make-bootstrap.scm (%mescc-tools-static,
%mescc-tools-static-stripped, %mescc-tools-bootstrap-tarball): New variable.
Modified-By: Mark H Weaver <mhw@netris.org>
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc)[native-inputs]:
Add SEARCH-PATHS to CROSS-GCC, and NATIVE-SEARCH-PATHS to the native GCC.
These workarounds were removed in cf82643647 and
218eb6e611, but were needed for %BOOTSTRAP-TARBALLS.
* gnu/packages/make-bootstrap.scm (%static-inputs)[coreutils, tar]: Add
<#:configure-flags>.
This is a follow-up to commit 01e8263feb.
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc): Add the
GCC7 'treat-glibc-as-system-header' build phase.
These would needlessly pull in linux-libre-headers when running
"guix build bootstrap-tarballs --target=i586-pc-gnu".
* gnu/packages/make-bootstrap.scm (%glibc-stripped)[native-inputs]
[propagated-inputs]: New fields.
* gnu/packages/make-bootstrap.scm (%bootstrap-tarballs): Update to use
%mescc-tools-bootstrap-tarball, %mes-bootstrap-tarball,
%linux-libre-headers-bootstrap-tarball.
%mes-minimal introduces a Mes for bootstrap that does not depend on graphviz,
perl, and texinfo and thus does not build any documentation. This removes
~100 dependencies from bootstrap-tarballs.
* gnu/packages/make-bootstrap.scm (%mes-minimal): New variable.
(%mes-minmal-stripped): Rename from %mes-stripped.
(%mes-bootstrap-tarball): Update.
Previously guile-static-stripped, which is embedded in the initrd, would
depend on 'bash-minimal' and 'glibc'; the closure size was 77 MiB. Now
the closure size is down to 45.7 MiB.
Reported by Danny Milosavljevic <dannym@scratchpost.org> in
<https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00505.html>.
* gnu/packages/make-bootstrap.scm (%guile-static): Remove the
'pre-configure' phase.
(%guile-static-stripped)[arguments]: Add #:allowed-references.
Partly fixes <https://bugs.gnu.org/24841>.
Reported by Chris Marusich <cmmarusich@gmail.com>.
This fixes cross-compilation of the statically-linked grep.
* gnu/packages/make-bootstrap.scm (%static-inputs): Add 'inputs' field
for grep.
* gnu/packages/make-bootstrap.scm (%static-inputs): Use MODIFY-PHASES
syntax and end phases with #t.
(%binutils-static, %gcc-static)[arguments]: Likewise.
Fixes use of 'getpwnam' & co. from the statically-linked guile in the
initrd, as reported by Leo Famulari <leo@famulari.name> at
<https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00061.html>.
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc)[native-inputs]:
Add "libc:static".
This is a followup to 33c3a214a4.
* gnu/packages/make-bootstrap.scm (%guile-static)[arguments]: Use
'substitute-keyword-arguments'. Honor the existing phases.
* gnu/packages/make-bootstrap.scm (%guile-static): Replace GUILE-2.0
with GUILE-2.2. Use "guile-2.2-default-utf8.patch" instead of
"guile-default-utf8.patch".
* gnu/packages/patches/guile-2.2-default-utf8.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
This is a followup to commit 7b3318e34f.
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc)
[native-inputs]: Fix 'cross-gcc' call.
* gnu/packages/cross-base.scm: Fix example 'cross-gcc' call in a comment.
This reverts commit 1063d325ea for during
creation of the bootstrap-binaries.
* gnu/packages/make-bootstrap.scm (%static-inputs): Use a custom 'grep'
without the absolute path name in fgrep/egrep.
* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add powerpc specific
substitutions for dynamic linker and start files locations in
'pre-configure' phase.
* gnu/packages/make-bootstrap.scm (%gcc-static)[arguments]: Add
"gcc/config/rs6000/sysv4.h" to the list of files in 'remove-lgcc_s'
phase.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>