Commit graph

97 commits

Author SHA1 Message Date
Ludovic Courtès
7e1a74da93
gnu: bootstrap: Memoize 'bootstrap-origin'.
* gnu/packages/bootstrap.scm (bootstrap-origin): Memoize with
'mlambdaq'.  This improves memoization of origins in (gnu packages
commencement).
2019-11-04 23:35:31 +01:00
Ludovic Courtès
ac19950507
gnu: bootstrap: Cache the 'bootstrap-executable' origins.
This reduces the number of lookups in the 'add-data-to-store' cache from
2705 to 2685 (hit rate: 10% to 9%) when running:

  GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd

* gnu/packages/bootstrap.scm (raw-build)[->store]: Use 'lower-object'
instead of 'origin->derivation'.  This allows the origin-to-derivation
mapping to be cached.
2019-10-27 23:05:01 +01:00
Ludovic Courtès
5166d02730
gnu: bootstrap: 'bootstrap-origin' preserves eq?-ness when no changes are made.
This reduces the number of lookups in the 'add-data-to-store' cache from
2743 to 2705 (hit rate: 11% to 10%) when running

  GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd

The execution time of "guix build libreoffice -nd" goes from 1.80s to 1.78s.

* gnu/packages/bootstrap.scm (bootstrap-origin): Return SOURCE unchanged
when its has no patches and no snippet.
2019-10-27 23:05:00 +01:00
Mark H Weaver
7f1d2dd35a
gnu: bootstrap: Update to the 20190815 bootstrap binaries.
These new bootstrap binaries were built using Guix at commit
9e6256ba0f, tagged as "bootstrap-20190815".

* gnu/packages/bootstrap.scm (%bootstrap-linux-libre-headers): Update the
download URL.
(%bootstrap-mescc-tools, %bootstrap-mes): Update the download URL and hash.
2019-08-27 12:40:57 -04:00
Ludovic Courtès
f32c3d4d06
gnu: bootstrap: Add ftp.gnu.org to '%bootstrap-base-urls'.
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add
ftp.gnu.org/gnu/guix/bootstrap.
2019-08-27 12:40:50 -04:00
Mark H Weaver
893c2df00d
Merge branch 'master' into core-updates 2019-08-22 15:53:27 -04:00
Carl Dong
67dac6b892
gnu: mingw: Add x86_64 support.
This patch parameterizes previously hard-coded instances of
i686-w64-mingw32, adding support for x86_64-w64-mingw32.

* gnu/packages/mingw.scm (make-mingw-w64): New procedure.
(mingw-w64-i686, mingw-w64-x86_64): New variables.
(%mingw-triplet): Remove.
(mingw-w64): Update to point to 'mingw-w64-i686'.
* gnu/packages/cross-base.scm (cross-gcc): Use 'libc' keyword argument
if specified, instead of treating it as a boolean.
(native-libc): Return the correct mingw-w64 depending on machine
specified in target.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "x86_64-mingw".
* gnu/build/cross-toolchain.scm (set-cross-path/mingw): Replace
hardcoded 'i686-w64-mingw32' instances with 'target' keyword argument.
(cross-gcc-build-phases): Update accordingly; use 'target-mingw?'
implementation of target checking and add commentary.
* gnu/ci.scm (%cross-targets): Add "x86_64-w64-mingw32".
2019-08-14 21:29:53 +02:00
Ludovic Courtès
64de896a71
Merge branch 'master' into core-updates 2019-07-17 15:51:10 +02:00
Ludovic Courtès
266e54e2ac
gnu: guile-bootstrap: Use the new 'derivation' calling convention.
* gnu/packages/bootstrap.scm (raw-build): In 'derivation' call,
distinguish #:inputs from #:sources, passing a list of
<derivation-input> as #:inputs.
2019-07-15 10:01:05 +02:00
Ludovic Courtès
1ba0b1e6ec
packages: Remove 'search-bootstrap-binary'.
* gnu/packages.scm (%bootstrap-binaries-path, search-bootstrap-binary):
Remove.
* gnu/packages/bootstrap.scm (bootstrap-executable): Export.
* guix/tests.scm (bootstrap-binary-file, search-bootstrap-binary):
Export.
* tests/derivations.scm: Remove (gnu packages) import.
* tests/grafts.scm: Likewise.
* tests/guix-daemon.sh: Likewise.
2019-06-14 21:57:39 +02:00
Ludovic Courtès
03d76577b9
tests: Make builds less expensive.
The switch to the reduced bootstrap broke build time assumptions made by
tests, notably the assumption that GNU-MAKE-BOOT0 was cheap to build.
This commit adjusts this to make these tests cheaper.

* gnu/packages/bootstrap.scm (%bootstrap-inputs-for-tests): New variable.
* guix/tests.scm (gnu-make-for-tests): New variable.
* tests/guix-environment.sh: Use GNU-MAKE-FOR-TESTS instead of
GNU-MAKE-BOOT0.  Remove test with FINDUTILS-BOOT0.
* tests/guix-package-net.sh (boot_make): Use GNU-MAKE-FOR-TESTS.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/profiles.scm ("profile-derivation relative symlinks, two entries"):
Likewise.
* tests/union.scm (%bootstrap-inputs): Remove.
("union-build"): Use %BOOTSTRAP-INPUTS-FOR-TESTS instead of
%BOOTSTRAP-INPUTS.
2019-06-14 21:57:39 +02:00
Ludovic Courtès
836a85da0e
gnu: bootstrap: Download the bootstrap bash, mkdir, tar, and xz binaries.
* gnu/packages/bootstrap.scm (%bootstrap-executables): New variable.
(bootstrap-executable-url, bootstrap-executable): New procedure.
(raw-build)[->store]: Use 'run-with-store' and 'origin->derivation'.
Add calls to 'derivation->output-path', and remove the list of
references passed to 'add-text-to-store' for BUILDER.  Augment the list
of #:inputs passed to 'derivation'.
(package-from-tarball): Use 'bootstrap-executable' instead of
'search-bootstrap-binary'.
(%bootstrap-glibc, %bootstrap-gcc, %bootstrap-mescc-tools)
(%bootstrap-mes): Likewise.
* guix/scripts/environment.scm (environment-bash): Use
'bootstrap-executable' instead of 'search-bootstrap-binary'.
(guix-environment): Adjust CONTAINER? case accordingly.
* po/guix/POTFILES.in: Add gnu/packages/bootstrap.scm.
2019-06-14 21:57:01 +02:00
Ludovic Courtès
d9bbfe042e
Merge branch 'master' into core-updates 2019-06-13 13:24:35 +02:00
Carl Dong
7180dd6716
gnu: Add basic support for riscv64-linux-gnu targets.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add
"riscv64-linux".
* gnu/packages/linux.scm (system->linux-architecture): Add "riscv"
prefix.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-05-29 15:40:31 +02:00
Ricardo Wurmus
ba88eea2b3
Merge branch 'master' into core-updates 2019-02-06 13:03:26 +01:00
Danny Milosavljevic
7f2d67c826
gnu: Add dummy linker for arm-elf.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for arm-elf.
2019-01-07 16:39:35 +01:00
Ludovic Courtès
0b07f22728
gnu: bootstrap: Add missing 'supported-systems', remove extra 'match'.
Previously evaluation would fail for armhf, aarch64, and mips64el.

* gnu/packages/bootstrap.scm (%bootstrap-mescc-tools)[supported-systems]:
New field.
(%bootstrap-mes)[supported-systems]: New field.
[inputs]: Remove 'match' form on %current-system, which would fail on
non-Intel platforms.
2018-12-25 02:17:58 +01:00
Jan Nieuwenhuizen
03a45a4022
bootstrap: srfi-43: Remove.
* gnu/packages/bootstrap.scm (%bootstrap-inputs): Remove srfi-43.
(srfi-43): Remove.
2018-12-20 12:04:04 +01:00
Jan Nieuwenhuizen
c89bbcccb2
bootstrap: bootstrap-mes: Update.
Built with

    ef809e3ac0
    bootstrap: Add mes-boot0; decouple mes-boot from Mes.

* gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-12-20 12:04:03 +01:00
Jan Nieuwenhuizen
f8067e0329
bootstrap: bootstrap-mes: Update.
Built with

    464baaf735
    gnu: mes: Update to a155a0a9a2d941b15c1b98e5cce787de40a8dacd.

* gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-12-16 22:48:29 +01:00
Jan Nieuwenhuizen
da3c6a7f19
bootstrap: Switch to official bootstrap urls.
Built with

    4ae7dc7b9a
    gnu: Remove duplicate linux-libre-headers package from bootstrap inputs.

* gnu/packages/bootstrap.scm (%bootstrap-linux-libre-headers): Switch to
official bootstrap urls.
(%bootstrap-mescc-tools): Likewise.
(%bootstrap-mes): Likewise.
2018-12-11 18:10:15 +01:00
Jan Nieuwenhuizen
4fd4efc812
bootstrap: Replace %mescc-tools-seed with %bootstrap-mescc-tools.
* gnu/packages/bootstrap.scm (%mescc-tools-seed): Remove.
(%bootstrap-inputs): Replace %mescc-tools-seed with %bootstrap-mescc-tools.
* gnu/packages/commencement.scm (mes-boot): Likewise.
(tcc-boot0): Likewise.
(mescc-tools-boot): Remove.
2018-11-18 16:45:03 +01:00
Jan Nieuwenhuizen
562c37c7be
bootstrap: Update %bootstrap-mes.
Built with

    b00a95be28
    bootstrap: Add %bootstrap-mescc-tools.

* gnu/packages/bootstrap.scm (%bootstrap-mes): Update.
2018-11-18 16:44:13 +01:00
Jan Nieuwenhuizen
b00a95be28
bootstrap: Add %bootstrap-mescc-tools.
Built with
    a647da364a
    bootstrap: Add %mes-minimal.

* gnu/packages/bootstrap.scm (%bootstrap-mescc-tools): New variable.
2018-11-18 16:43:21 +01:00
Jan Nieuwenhuizen
1a99a9c45c
bootstrap: Build with %bootstrap-mes.
* gnu/packages/bootstrap.scm (%tinycc-seed): Remove.
(%bootstrap-inputs): Use %bootstrap-mes instead of %mes-seed and %tinycc-seed.
* gnu/packages/commencement.scm (mescc-tools-boot, mes-boot, tcc-boot0): Build
with %bootstrap-mes instead of %mes-seed and %tinycc-seed.
2018-10-23 20:54:42 +02:00
Jan Nieuwenhuizen
5f02c9b7d6
bootstrap: Add %bootstrap-mes.
Built with
    668ffe1e4e bootstrap: Move use-modules to top of builder.

Todo: host these on ftp.gnu.org/pub/guix/...

* gnu/packages/bootstrap.scm (%bootstrap-mes): New variable.
2018-10-23 20:54:42 +02:00
Jan Nieuwenhuizen
668ffe1e4e
bootstrap: Move use-modules to top of builder.
* gnu/packages/bootstrap.scm (package-from-tarball): Move use-modules to top of builder.
(%bootstrap-glibc): Likewise.
(%bootstrap-gcc): Likewise.
2018-10-21 23:41:14 +02:00
Jan Nieuwenhuizen
a52b11a667
gnu: %tinycc-seed: Update for mes 0.18.
* gnu/packages/bootstrap.scm (%tinycc-seed): Update for mes 0.18.
2018-10-07 16:29:38 +02:00
Jan Nieuwenhuizen
1b30689343
gnu: %mes-seed: Update to 0.18.
* gnu/packages/bootstrap.scm (%mes-seed): Update to 0.18.
2018-10-07 16:29:35 +02:00
Jan Nieuwenhuizen
f7a331c068
gnu: %mescc-tools-seed: Update to 0.5.2.
* gnu/packages/bootstrap.scm (%mescc-tools-seed): Update to 0.5.2.
2018-10-07 16:27:57 +02:00
Jan Nieuwenhuizen
eb4434598c
bootstrap: Reduced Binary Seed bootstrap for x86_64 too.
* gnu/packages/bootstrap.scm (%bootstrap-inputs): Replace %bootstrap-libc,
%bootstrap-gcc, and %bootstrap-binutils with Mes seeds for x86_64 too.
* gnu/packages/commencement.scm (tcc-boot0, tcc-boot, gcc-mesboot1,
gcc-mesboot1-wrapper, m4-mesboot, %bootstrap-inputs+toolchain,
libstdc++-boot0, gcc-boot0, bison-boot0): For x86_64-linux, use i686-linux
glibc-dynamic-linker and Mes bootstrap settings.
(gcc-boot0-intermediate-wrapped): New variable, extract from
static-bash-for-glibc.
(static-bash-for-glibc): Use it.
(gcc-final): Copy gmp&co phase from gcc-boot0, inherit other arguments
from gcc; avoid i686-linux impersonation from gcc-boot0.
* doc/guix.texi (Bootstrapping, Reduced Binary Seed Bootstrap): Note
x86_64-linux also as Reduced Binary Seed bootstrap.
2018-09-23 09:46:26 +02:00
Jan Nieuwenhuizen
d536c39e54
bootstrap: Replace GNU toolchain seeds with Mes for i686-linux.
* gnu/packages/bootstrap.scm (%bootstrap-inputs)[i686-linux]: Replace
%bootstrap-gcc, %bootstrap-binutils, %bootstrap-glibc with %mescc-tools-seed,
%mes-seed, %srfi-43 and %tinycc-seed.
* gnu/packages/make-bootstrap.scm (%bootstrap-tarballs)[i686-linux]: Replace
gcc-tarball, binutils-tarball, glibc-tarball with %mescc-tools-seed,
%mes-seed, %srfi-43 and %tinycc-seed.
* gnu/packages/commencement.scm (%bootstrap-inputs+toolchain)[i686-linux]: Add
glibc-mesboot, binutils-mesboot, gcc-wrapper, gcc-mesboot.
(file-boot0)[i686-linux]: Disable strip-binaries?, validate-runpath?.
(libstdc++-boot0)[i686-linux]: Add libtool install workarourd: copy
libstdc++.so.0.0.20 from gcc-mesboot.
(gcc-boot0)[i686-linux]: Add libtool install workaround: touch
libcc1.so.0.0.0, libcc1plugin.so.0.0.0.
(perl-boot0): Disable validate-runpath?.
(bison-boot0)[i686-linux]: Do not use ranlib -D.
2018-09-23 09:46:26 +02:00
Jan Nieuwenhuizen
aec77e8695
bootstrap: Add Mes bootstrap seeds.
* gnu/packages/bootstrap.scm (%mescc-tools-seed, %mes-seed, %tinycc-seed,
%srfi-43): New variable.
2018-09-23 09:46:26 +02:00
Jan Nieuwenhuizen
dbabfc470d
guix: package-from-tarball: Allow PROGRAM-TO-TEST to be #f.
* gnu/packages/bootstrap.scm (package-from-tarball): Allow PROGRAM-TO-TEST to
be #f.
2018-09-23 09:46:25 +02:00
Jan Nieuwenhuizen
a2b2070b67
bootstrap: %bootstrap-inputs: Wrap input lists into thunks.
* gnu/packages/bootstrap.scm (%bootstrap-inputs): Change to procedure.  Update
users; prepares for Mes bootstrap.
* gnu/packages/commencement.scm (%boot0-inputs, %boot1-inputs, %boot2-inputs,
%boot3-inputs, %boot4-inputs, %boot5-inputs, %boot-6-inputs): Change to
procedure.  Update users.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths): Make a
procedure, filter on package?.  Update users.
2018-09-22 22:40:12 +02:00
Marius Bakke
5576cfabf3
Merge branch 'master' into core-updates 2018-03-29 17:34:41 +02:00
Ludovic Courtès
7ddd418a1d
gnu: bootstrap: Remove unneeded import.
* gnu/packages/bootstrap.scm: Remove unneeded (guix build utils) import.
2018-03-27 14:51:44 +02:00
Mark H Weaver
ad1656dc91
bootstrap: Use invoke instead of system*.
* gnu/packages/bootstrap.scm (package-from-tarball): Ignore the result of
the snippet procedure.  Use invoke and remove vestigial plumbing.
(%bootstrap-coreutils&co): Remove the vestigial #t from the snippet.
(%bootstrap-glibc, %bootstrap-gcc)[arguments]: Use invoke.  Return #t from the
builder.
2018-03-16 05:01:59 -04:00
mephi42
b91004c2f5
gnu: Add basic support for s390x-linux-gnu targets.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add
  "s390x-linux".
* gnu/packages/linux.scm (system->linux-architecture): Add "s390"
  prefix.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-02-19 22:22:21 +01:00
Ludovic Courtès
6d7b26a39f
gnu: bootstrap: 'package-with-bootstrap-guile' uses 'eq?' memoization.
* gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Use
'mlambdaq'.
2018-01-18 16:37:41 +01:00
Ludovic Courtès
3e5750af74
gnu: guix: Factorize downloads of bootstrap tarball.
* gnu/packages/bootstrap.scm (bootstrap-guile-origin): New procedure.
* gnu/packages/package-management.scm (guix)[inputs]: Remove
'boot-guile' procedure; use 'bootstrap-guile-origin' instead.
2017-08-28 23:51:32 +02:00
Ludovic Courtès
894fc4e9f5
gnu: bootstrap: Prefer HTTPS for downloads.
* gnu/packages/bootstrap.scm (%bootstrap-base-urls): Add "https" URL first.
2017-08-28 23:49:52 +02:00
Ludovic Courtès
5c93d23324
gnu: guile-bootstrap: Use a fixed-output derivation to download.
* gnu/packages/bootstrap.scm (bootstrap-guile-url-path)
(bootstrap-guile-hash, download-bootstrap-guile): New procedures.
(raw-build): Use it.  Script uses $GUILE_TARBALL.  Add GUILE to the
inputs of the derivation.
2017-08-28 23:15:35 +02:00
Ludovic Courtès
c89e210788
gnu: Add basic support for powerpc64le-linux-gnu targets.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add
"powerpc64le-linux".
* gnu/packages/linux.scm (system->linux-architecture): Add "powerpc"
prefix.
(system->defconfig): Add "powerpc64le-" prefix.
2017-07-07 17:07:16 +02:00
Danny Milosavljevic
7cf06d62bf
gnu: Add gcc-vc4.
Fixes <https://bugs.gnu.org/26541>.

* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add vc4-elf.
* gnu/packages/embedded.scm (gcc-vc4): New variable.
2017-05-01 01:14:27 +02:00
Ludovic Courtès
e90e0fad1b
Merge branch 'master' into core-updates 2017-03-09 16:35:41 +01:00
Sergei Trofimovich
605fec783f
gnu: Add basic support for "alpha-linux" systems.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add
"/lib/ld-linux.so.2" as "alpha-linux" ld.so.
* gnu/packages/linux.scm (system->linux-architecture): Add "alpha" arch.

Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-03-07 18:20:33 +01:00
Efraim Flashner
3b88f3767d
gnu: Add bootstrap-binaries for 'aarch64-linux'.
These bootstrap-binaries were built against commit
8f8f250bdc.

* gnu/packages/bootstrap/aarch64-linux/bash,
gnu/packages/bootstrap/aarch64-linux/mkdir,
gnu/packages/bootstrap/aarch64-linux/xz,
gnu/packages/bootstrap/aarch64-linux/tar: New files.

* gnu/local.mk (bootstrap_aarch64_linuxdir)
(dist_bootstrap_aarch64_linux_DATA)
(nodist_bootstrap_aarch64_linux_DATA): New variables.
(DISTCLEANFILES): Add $(nodist_bootstrap_aarch64_linux_DATA).
(gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz): New target.
* build-aux/download.scm (filename->uri): Add aarch64-linux entry.
* gnu/packages/bootstrap.scm (raw-build): Use guile-2.0.14.tar.xz on
aarch64-linux.
(glibc-dynamic-linker, %bootstrap-coreutils&co, %boostrap-binutils)
(%bootstrap-glibc, %bootstrap-gcc): Add aarch64-linux cases.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): Add aarch64 case.
(GUIX_ASSERT_SUPPORTED_SYSTEM): Add aarch64-linux to supported list.
* doc/guix.texi (GNU Distribution): Add aarch64-linux to the list of
supported systems.
* tests/packages.scm (package-search-derivation, snippet): Add aarch64
case.
2017-02-20 12:58:07 +02:00
Efraim Flashner
653add37af
gnu: %bootstrap-coreutils&co: Patch egrep/fgrep to work regardless of $PATH.
This is the bootstrap version of 1063d325ea

* gnu/packages/bootstrap.scm (%bootstrap-coreutils&co)[source]: Patch
the absolute location of 'grep' when called from 'egrep' or 'fgrep'.
2017-02-20 12:58:06 +02:00
Leo Famulari
e8c83d04e1
Merge branch 'master' into core-updates 2017-02-02 10:52:24 -05:00