* gnu/packages/commencement.scm (gcc-mesboot0): Use Gash instead of
coretutils&co.
* gnu/packages/commencement.scm (%boot-mesboot0-inputs): New variable.
Fixes <https://bugs.gnu.org/30756>.
Initially reported by Julien Lepiller <julien@lepiller.eu>.
* gnu/packages/base.scm (make-gcc-libc): Remove
'treat-glibc-as-system-header' phase from 'arguments'.
* gnu/packages/commencement.scm (gcc-final): Likewise.
* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add "include/c++" to
'CPLUS_INCLUDE_PATH'.
(gcc-6)[native-search-paths]: Remove.
* gnu/packages/make-bootstrap.scm (gcc-for-bootstrap): Remove
'native-search-paths' and 'arguments'.
* gnu/packages/patches/python-2.7-search-paths.patch,
gnu/packages/patches/python-3-search-paths.patch: Replace "CPATH" with
"C_INCLUDE_PATH".
* guix/build-system/cmake.scm (lower): When not cross-compiling, move
INPUTS from the 'host-inputs' field to the 'build-inputs' field of the
bag, right after NATIVE-INPUTS.
* guix/build-system/glib-or-gtk.scm (lower): Likewise.
* guix/build-system/gnu.scm (lower): Likewise.
* guix/build-system/meson.scm (lower): Likewise.
This commit ensures that only packages that correspond to compilers have
a search path set. It also reduces manual handling of search path
environment variables.
* gnu/packages/commencement.scm (tcc-boot0)[native-search-paths]: Remove
copy/pasted comment.
(gcc-core-mesboot)[arguments]: In 'install2' phase, do not copy
TCC/include to OUT/include.
[native-search-paths]: Remove leading slash in "lib/gcc-lib/…" directory name.
(mesboot-headers)[native-search-paths]: Remove.
(glibc-mesboot0)[native-search-paths]: Remove.
(gcc-mesboot0)[native-inputs]: Reorder so that we have libc, then
kernel-headers, then gcc.
[arguments]: Rewrite 'setenv' phase to only set CONFIG_SHELL and create
'config.cache'.
(gcc-mesboot1)[native-inputs]: Reorder similarly.
[arguments]: In 'setenv' phase, only set CONFIG_SHELL, C_INCLUDE_PATH,
and CPLUS_INCLUDE_PATH.
(glibc-headers-mesboot)[arguments]: In 'setenv' phase, replace
references to '%build-inputs' by references to 'inputs'; simplify
setting of CONFIG_SHELL and SHELL; simplify patching of /bin/pwd in
the "configure" file; leave C_INCLUDE_PATH and LIBRARY_PATH unset.
(glibc-mesboot)[native-search-paths]: Remove.
(gcc-mesboot)[native-inputs]: Reorder.
[arguments]: Remove clause for #:phases that would change the 'setenv'
phase.
This is in preparation for Python 3.8 which requires changes.
* gnu/packages/commencement.scm (python-boot0)[source]: Copy modules and
snippet from PYTHON instead of inheriting.
The generated source tarball from gitlab.com is now mirrored at
ftp.gnu.org to ensure that it remains available, unchanged.
* gnu/packages/commencement.scm (tcc-boot0)[source]: Add "mirror://gnu" URL.
Fixes <https://bugs.gnu.org/38093>.
When running:
guix build --target=arm-linux-gnueabihf -e '(@ (gnu packages base) coreutils)'
the '%current-target-system' parameter is set by the time the top-level
of (gnu packages commencement) is evaluated. Consequently, we need to
ensure that the 'pkg-config' macro evaluates in a context where
'%current-target-system' is unset.
* gnu/packages/commencement.scm (gnu-make-final): Refer to '%pkg-config'
instead of 'pkg-config'.
* tests/guix-build.sh: Add test.
This improves caching down the road.
* gnu/packages/commencement.scm (gcc-boot0-intermediate-wrapped)
(gcc-boot0-wrapped): Use 'mlambda' instead of 'lambda'.
* gnu/packages/commencement.scm (with-boot0): New procedure.
(gnumach-headers-boot0, mig-boot0)
(hurd-headers-boot0, hurd-minimal-boot0)
(hurd-core-headers-boot0): Use it instead of 'package-with-explicit-inputs'.
For a package like:
(define-public xxx
(package
(inherit (@ (gnu packages base) coreutils))
(name "xxx")
(inputs (@ (gnu packages commencement) %final-inputs))
(native-inputs '())
(propagated-inputs '())
(arguments '(#:implicit-inputs? #f))))
this reduces the package object graph from 176 nodes (1852 edges) to 113
nodes (1114 edges).
The number of 'add-data-to-store' calls in "guix build coreutils -nd"
drops from 2045 to 1301, and the number of memoization tables drops from
102 to 40.
"guix build libreoffice -nd" goes from 2.40s to 2.27s.
* gnu/packages/commencement.scm (with-boot4): New variable.
(guile-final, glibc-utf8-locales-final): Use it.
(with-boot4, with-boot5): New variable.
(gnu-make-final): Rewrite to avoid 'package-with-explicit-inputs'.
(coreutils-final): Use 'with-boot5' instead of
'package-with-explicit-inputs'.
(grep-final): Likewise.
(with-boot6): New variable.
(sed-final, %final-inputs): Use it.
Before that, the command:
GUIX_PROFILING=memoization guix build -e '(@@ (gnu packages commencement) gnu-make-final)' -nd
would show that 'package-with-bootstrap-guile' was called 2256
times (hit rate: 89%). Now, it is called 745 times (hit rate: 85%).
"guix build libreoffice -nd" goes from 2.60s to 2.40s (-8%).
* gnu/packages/commencement.scm (gnu-make-final)
(coreutils-final, grep-final, sed-final, %final-inputs): Call
'package-with-bootstrap-guile' before 'package-with-explicit-inputs'.