gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
2023-02-28 16:05:33 +00:00
|
|
|
|
;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
|
|
|
|
|
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
2017-06-24 05:34:47 +00:00
|
|
|
|
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
|
2022-01-19 09:22:57 +00:00
|
|
|
|
;;; Copyright © 2017, 2018, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
|
2018-02-20 01:30:33 +00:00
|
|
|
|
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
2023-06-17 11:51:05 +00:00
|
|
|
|
;;; Copyright © 2018, 2019, 2020, 2021, 2022, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
2022-06-25 18:59:01 +00:00
|
|
|
|
;;; Copyright © 2019-2022 Marius Bakke <marius@gnu.org>
|
2022-02-11 21:08:29 +00:00
|
|
|
|
;;; Copyright © 2020, 2022 Timothy Sample <samplet@ngyro.com>
|
2020-07-16 14:35:14 +00:00
|
|
|
|
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
|
2021-01-22 04:26:01 +00:00
|
|
|
|
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
2021-02-01 02:45:24 +00:00
|
|
|
|
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
|
2021-03-17 12:33:22 +00:00
|
|
|
|
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
|
2022-02-04 23:56:32 +00:00
|
|
|
|
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
|
2022-07-12 09:05:15 +00:00
|
|
|
|
;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech>
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;;;
|
|
|
|
|
;;; This file is part of GNU Guix.
|
|
|
|
|
;;;
|
|
|
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
|
|
|
;;; under the terms of the GNU General Public License as published by
|
|
|
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
|
|
|
;;; your option) any later version.
|
|
|
|
|
;;;
|
|
|
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
|
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;;; GNU General Public License for more details.
|
|
|
|
|
;;;
|
|
|
|
|
;;; You should have received a copy of the GNU General Public License
|
|
|
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
(define-module (gnu packages commencement)
|
2017-04-26 11:03:48 +00:00
|
|
|
|
#:use-module (gnu packages)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages bootstrap)
|
|
|
|
|
#:use-module (gnu packages base)
|
|
|
|
|
#:use-module (gnu packages bash)
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
#:use-module (gnu packages c)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages gcc)
|
2014-09-28 05:48:58 +00:00
|
|
|
|
#:use-module (gnu packages m4)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages gawk)
|
2014-09-28 05:48:58 +00:00
|
|
|
|
#:use-module (gnu packages bison)
|
2016-06-24 13:10:15 +00:00
|
|
|
|
#:use-module (gnu packages flex)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages guile)
|
2015-04-21 20:53:09 +00:00
|
|
|
|
#:use-module (gnu packages gettext)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages multiprecision)
|
|
|
|
|
#:use-module (gnu packages compression)
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
#:use-module (gnu packages mes)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages perl)
|
2019-07-02 14:45:17 +00:00
|
|
|
|
#:use-module (gnu packages python)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages linux)
|
2016-06-24 13:10:15 +00:00
|
|
|
|
#:use-module (gnu packages hurd)
|
2019-12-06 06:21:21 +00:00
|
|
|
|
#:use-module (gnu packages shells)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (gnu packages texinfo)
|
|
|
|
|
#:use-module (gnu packages pkg-config)
|
2019-07-02 14:45:17 +00:00
|
|
|
|
#:use-module (gnu packages xml)
|
build-system: Rewrite using gexps.
* guix/packages.scm (expand-input): Remove 'store', 'system', and
'cross-system' parameters; add #:native?. Rewrite to return
name/gexp-input tuples.
(bag->derivation): Adjust accordingly. Lower (bag-build bag).
(bag->cross-derivation): Ditto. Instead of #:native-drvs and
#:target-drvs, pass #:build-inputs, #:host-inputs, and #:target-inputs.
(%derivation-cache): Remove.
* gnu/packages/bootstrap.scm (raw-build): Turn into a monadic procedure.
* gnu/packages/commencement.scm (glibc-final)[arguments]: Use
'gexp-input' for the #:allowed-references argument.
* guix/build-system/cmake.scm (cmake-build): Remove 'store' parameter.
Switch to the use of gexps and 'gexp->derivation'.
(lower): Remove #:source from 'private-keywords'.
* guix/build-system/glib-or-gtk.scm (glib-or-gtk-build, lower):
Likewise.
* guix/build-system/font.scm (font-build): Likewise.
* guix/build-system/gnu.scm (gnu-build): Likewise, and remove
'canonicalize-reference'.
(gnu-cross-build): Likewise, and expect #:build-inputs, #:host-inputs,
and #:target-inputs instead of #:native-drvs and #:target-drvs.
(lower): Likewise.
* guix/build-system/perl.scm (perl-build, lower): Likewise.
* guix/build-system/python.scm (python-build, lower): Likewise.
* guix/build-system/ruby.scm (ruby-build, lower): Likewise.
* guix/build-system/waf.scm (waf-build, lower): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Remove.
(trivial-build): Remove 'store' parameter, change to gexps.
(trivial-cross-build): Ditto, and change to #:build-inputs & co.
* guix/build-system/cargo.scm (cargo-build): Change to 'gexp->derivation'.
* guix/build-system/copy.scm (copy-build): Likewise.
* guix/build-system/dune.scm (dune-build): Likewise.
* guix/build-system/guile.scm (guile-build, guile-cross-build):
Likewise.
* guix/build-system/meson.scm (meson-build): Likewise.
* guix/build-system/ocaml.scm (ocaml-build): Likewise.
* guix/build-system/scons.scm (scons-build): Likewise.
* guix/build-system/texlive.scm (texlive-build): Likewise.
* guix/build-system/android-ndk.scm (android-ndk-build): Likewise.
* guix/build-system/ant.scm (ant-build): Likewise.
* guix/build-system/asdf.scm (asdf-build/source, asdf-build): Likewise.
* guix/build-system/chicken.scm (chicken-build): Likewise.
* guix/build-system/clojure.scm (clojure-build): Likewise.
(source->output-path, maybe-guile->guile): Remove.
* guix/build-system/dub.scm (dub-build): Likewise.
* guix/build-system/emacs.scm (emacs-build): Likewise.
* guix/build-system/go.scm (go-build): Likewise.
* guix/build-system/haskell.scm (haskell-build): Likewise.
* guix/build-system/julia.scm (julia-build): Likewise.
* guix/build-system/linux-module.scm (linux-module-build)
(linux-module-build-cross): Likewise.
* guix/build-system/maven.scm (maven-build): Likewise.
* guix/build-system/minify.scm (minify-build): Likewise.
* guix/build-system/node.scm (node-build): Likewise.
* guix/build-system/qt.scm (qt-build, qt-cross-build): Likewise.
* guix/build-system/r.scm (r-build): Likewise.
* guix/build-system/rakudo.scm (rakudo-build): Likewise.
* guix/build-system/renpy.scm (renpy-build): Likewise.
* tests/builders.scm ("gnu-build"): Call 'store-lower' on 'gnu-build'.
Pass #:source parameter.
* tests/packages.scm ("search paths"): Use 'abort-to-prompt' instead of
a normal return from the 'build' method.
("package->bag, sensitivity to %current-target-system"): Change 'build'
to match the new build system signature.
squash! build-system: Rewrite using gexps.
squash! build-system: Rewrite using gexps.
2015-03-28 18:26:39 +00:00
|
|
|
|
#:use-module (guix gexp)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (guix packages)
|
|
|
|
|
#:use-module (guix download)
|
|
|
|
|
#:use-module (guix build-system gnu)
|
|
|
|
|
#:use-module (guix build-system trivial)
|
2020-02-03 15:51:07 +00:00
|
|
|
|
#:use-module ((guix licenses) #:prefix license:)
|
2018-01-18 15:14:06 +00:00
|
|
|
|
#:use-module (guix memoization)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
#:use-module (guix utils)
|
|
|
|
|
#:use-module (srfi srfi-1)
|
|
|
|
|
#:use-module (ice-9 vlist)
|
2016-06-24 13:10:15 +00:00
|
|
|
|
#:use-module (ice-9 match)
|
2019-05-13 20:02:13 +00:00
|
|
|
|
#:export (make-gcc-toolchain))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
;;;
|
|
|
|
|
;;; This is the commencement, this is where things start. Before the
|
|
|
|
|
;;; commencement, of course, there's the 'bootstrap' module, which provides us
|
|
|
|
|
;;; with the initial binaries. This module uses those bootstrap binaries to
|
|
|
|
|
;;; actually build up the whole tool chain that make up the implicit inputs of
|
|
|
|
|
;;; 'gnu-build-system'.
|
|
|
|
|
;;;
|
|
|
|
|
;;; To avoid circular dependencies, this module should not be imported
|
|
|
|
|
;;; directly from anywhere.
|
|
|
|
|
;;;
|
2018-02-27 04:25:47 +00:00
|
|
|
|
;;; Below, we frequently use "inherit" to create modified packages. The
|
|
|
|
|
;;; reason why we use "inherit" instead of "package/inherit" is because we do
|
|
|
|
|
;;; not want these commencement packages to inherit grafts. By definition,
|
|
|
|
|
;;; these packages are not depended on at run time by any of the packages we
|
|
|
|
|
;;; use. Thus it does not make sense to inherit grafts. Furthermore, those
|
|
|
|
|
;;; grafts would often lead to extra overhead for users who would end up
|
|
|
|
|
;;; downloading those "-boot0" packages just to build package replacements
|
|
|
|
|
;;; that are in fact not going to be used.
|
|
|
|
|
;;;
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;;; Code:
|
|
|
|
|
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(define bootar
|
|
|
|
|
(package
|
|
|
|
|
(name "bootar")
|
2021-02-07 18:35:49 +00:00
|
|
|
|
(version "1b")
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
2020-02-22 20:39:27 +00:00
|
|
|
|
(uri (list (string-append
|
|
|
|
|
"mirror://gnu/guix/mirror/bootar-" version ".ses")
|
|
|
|
|
(string-append
|
|
|
|
|
"https://files.ngyro.com/bootar/bootar-"
|
|
|
|
|
version ".ses")))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2021-02-07 18:35:49 +00:00
|
|
|
|
"0cf5vj5yxfvkgzvjvh2l7b2nz5ji5l534n9g4mfp8f5jsjqdrqjc"))))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:imported-modules ((guix build gnu-bootstrap)
|
|
|
|
|
,@%gnu-build-system-modules)
|
|
|
|
|
#:phases
|
|
|
|
|
(begin
|
|
|
|
|
(use-modules (guix build gnu-bootstrap))
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(replace 'unpack
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let* ((source (assoc-ref inputs "source"))
|
|
|
|
|
(guile-dir (assoc-ref inputs "guile"))
|
|
|
|
|
(guile (string-append guile-dir "/bin/guile")))
|
|
|
|
|
(invoke guile "--no-auto-compile" source)
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(chdir "bootar"))))
|
2021-02-06 18:31:15 +00:00
|
|
|
|
(replace 'configure (bootstrap-configure "Bootar" ,version
|
2021-02-06 18:49:34 +00:00
|
|
|
|
'(".") "scripts"))
|
|
|
|
|
(replace 'build (bootstrap-build '(".")))
|
|
|
|
|
(replace 'install (bootstrap-install '(".") "scripts"))))))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(inputs `(("guile" ,%bootstrap-guile)))
|
|
|
|
|
(home-page "https://git.ngyro.com/bootar")
|
|
|
|
|
(synopsis "Tar decompression and extraction in Guile Scheme")
|
|
|
|
|
(description "Bootar is a simple Tar extractor written in Guile
|
|
|
|
|
Scheme. It supports running 'tar xvf' on uncompressed tarballs or
|
|
|
|
|
tarballs that are compressed with BZip2, GZip, or XZ. It also provides
|
|
|
|
|
standalone scripts for 'bzip2', 'gzip', and 'xz' that each support
|
|
|
|
|
decompression to standard output.
|
|
|
|
|
|
|
|
|
|
What makes this special is that Bootar is distributed as a
|
|
|
|
|
self-extracting Scheme (SES) program. That is, a little script that
|
|
|
|
|
outputs the source code of Bootar. This makes it possible to go from
|
|
|
|
|
pure Scheme to Tar and decompression in one easy step.")
|
|
|
|
|
(license license:gpl3+)))
|
|
|
|
|
|
2019-12-06 06:21:21 +00:00
|
|
|
|
(define gash-boot
|
|
|
|
|
(package
|
|
|
|
|
(inherit gash)
|
|
|
|
|
(name "gash-boot")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
2020-02-03 15:51:07 +00:00
|
|
|
|
#:tests? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:imported-modules ((guix build gnu-bootstrap)
|
|
|
|
|
,@%gnu-build-system-modules)
|
2019-12-06 06:21:21 +00:00
|
|
|
|
#:phases
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(begin
|
|
|
|
|
(use-modules (guix build gnu-bootstrap))
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(replace 'configure
|
2021-02-06 18:31:15 +00:00
|
|
|
|
(bootstrap-configure "Gash" ,(package-version gash)
|
2021-02-06 18:49:34 +00:00
|
|
|
|
'("gash") "scripts"))
|
|
|
|
|
(replace 'build (bootstrap-build '("gash")))
|
|
|
|
|
(replace 'install (bootstrap-install '("gash") "scripts"))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(add-after 'install 'install-symlinks
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let ((out (assoc-ref outputs "out")))
|
|
|
|
|
(symlink (string-append out "/bin/gash")
|
|
|
|
|
(string-append out "/bin/sh"))
|
|
|
|
|
(symlink (string-append out "/bin/gash")
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(string-append out "/bin/bash")))))))))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(inputs `(("guile" ,%bootstrap-guile)))
|
|
|
|
|
(native-inputs `(("bootar" ,bootar)))))
|
2019-12-02 18:11:23 +00:00
|
|
|
|
|
2020-02-03 16:26:35 +00:00
|
|
|
|
(define gash-utils-boot
|
2019-12-06 06:22:06 +00:00
|
|
|
|
(package
|
2020-02-03 16:26:35 +00:00
|
|
|
|
(inherit gash-utils)
|
|
|
|
|
(name "gash-utils-boot")
|
2019-12-06 06:22:06 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
2020-02-03 15:51:07 +00:00
|
|
|
|
#:tests? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:imported-modules ((guix build gnu-bootstrap)
|
|
|
|
|
,@%gnu-build-system-modules)
|
2019-12-06 06:22:06 +00:00
|
|
|
|
#:phases
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(begin
|
|
|
|
|
(use-modules (guix build gnu-bootstrap))
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'set-load-path
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((gash (assoc-ref inputs "gash")))
|
|
|
|
|
(add-to-load-path (string-append gash "/share/guile/site/"
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(effective-version))))))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(add-before 'configure 'pre-configure
|
|
|
|
|
(lambda _
|
|
|
|
|
(format #t "Creating gash/commands/testb.scm~%")
|
|
|
|
|
(copy-file "gash/commands/test.scm"
|
|
|
|
|
"gash/commands/testb.scm")
|
|
|
|
|
(substitute* "gash/commands/testb.scm"
|
|
|
|
|
(("gash commands test") "gash commands testb")
|
|
|
|
|
(("apply test [(]cdr") "apply test/bracket (cdr"))
|
|
|
|
|
(for-each (lambda (script)
|
|
|
|
|
(let ((target (string-append "scripts/"
|
|
|
|
|
script ".in")))
|
|
|
|
|
(format #t "Creating scripts/~a~%" target)
|
|
|
|
|
(copy-file "scripts/template.in" target)
|
|
|
|
|
(substitute* target
|
|
|
|
|
(("@UTILITY@") script))))
|
|
|
|
|
'("awk" "basename" "cat" "chmod" "cmp" "command"
|
2021-02-07 02:13:52 +00:00
|
|
|
|
"compress" "cp" "cut" "diff" "dirname" "env"
|
|
|
|
|
"expr" "false" "find" "grep" "head" "ln" "ls"
|
|
|
|
|
"mkdir" "mv" "printf" "pwd" "reboot" "rm" "rmdir"
|
2020-02-03 15:51:07 +00:00
|
|
|
|
"sed" "sleep" "sort" "tar" "test" "touch" "tr"
|
|
|
|
|
"true" "uname" "uniq" "wc" "which"))
|
|
|
|
|
(format #t "Creating scripts/[.in~%")
|
|
|
|
|
(copy-file "scripts/template.in" "scripts/[.in")
|
|
|
|
|
(substitute* "scripts/[.in"
|
|
|
|
|
(("@UTILITY@") "testb"))
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(delete-file "scripts/template.in")))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(replace 'configure
|
2021-02-06 18:31:15 +00:00
|
|
|
|
(bootstrap-configure "Gash-Utils" ,(package-version gash-utils)
|
2021-02-07 02:13:52 +00:00
|
|
|
|
'("gash" "gash-utils") "scripts"))
|
|
|
|
|
(replace 'build (bootstrap-build '("gash" "gash-utils")))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(bootstrap-install '("gash" "gash-utils") "scripts"))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
;; XXX: The scripts should add Gash to their load paths and
|
|
|
|
|
;; this phase should not exist.
|
|
|
|
|
(add-after 'install 'copy-gash
|
|
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(moddir (string-append out "/share/guile/site/"
|
|
|
|
|
(effective-version)))
|
|
|
|
|
(godir (string-append out "/lib/guile/"
|
|
|
|
|
(effective-version)
|
|
|
|
|
"/site-ccache"))
|
|
|
|
|
(gash (assoc-ref inputs "gash"))
|
|
|
|
|
(gash-moddir (string-append gash "/share/guile/site/"
|
|
|
|
|
(effective-version)))
|
|
|
|
|
(gash-godir (string-append gash "/lib/guile/"
|
|
|
|
|
(effective-version)
|
|
|
|
|
"/site-ccache")))
|
|
|
|
|
(copy-file (string-append gash-moddir "/gash/compat.scm")
|
|
|
|
|
(string-append moddir "/gash/compat.scm"))
|
|
|
|
|
(copy-recursively (string-append gash-moddir "/gash/compat")
|
|
|
|
|
(string-append moddir "/gash/compat"))
|
|
|
|
|
(copy-file (string-append gash-godir "/gash/compat.go")
|
|
|
|
|
(string-append godir "/gash/compat.go"))
|
|
|
|
|
(copy-recursively (string-append gash-godir "/gash/compat")
|
2021-02-07 18:38:56 +00:00
|
|
|
|
(string-append godir "/gash/compat")))))
|
|
|
|
|
;; We need an external echo.
|
|
|
|
|
(add-after 'install 'make-echo
|
|
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(gash (assoc-ref inputs "gash")))
|
|
|
|
|
(with-output-to-file (string-append out "/bin/echo")
|
|
|
|
|
(lambda ()
|
|
|
|
|
(display (string-append "#!" gash "/bin/gash\n"))
|
|
|
|
|
(newline)
|
|
|
|
|
(display "echo \"$@\"")
|
|
|
|
|
(newline)))
|
|
|
|
|
(chmod (string-append out "/bin/echo") #o755))))))))
|
2020-02-03 15:51:07 +00:00
|
|
|
|
(inputs `(("gash" ,gash-boot)
|
|
|
|
|
("guile" ,%bootstrap-guile)))
|
|
|
|
|
(native-inputs `(("bootar" ,bootar)))))
|
2019-12-06 06:22:06 +00:00
|
|
|
|
|
|
|
|
|
(define (%boot-gash-inputs)
|
|
|
|
|
`(("bash" , gash-boot) ; gnu-build-system wants "bash"
|
2020-02-03 16:26:35 +00:00
|
|
|
|
("coreutils" , gash-utils-boot)
|
2020-02-03 15:51:07 +00:00
|
|
|
|
("bootar" ,bootar)
|
|
|
|
|
("guile" ,%bootstrap-guile)))
|
2019-12-06 06:22:06 +00:00
|
|
|
|
|
2021-01-02 08:40:58 +00:00
|
|
|
|
(define bootstrap-seeds
|
|
|
|
|
(package
|
|
|
|
|
(name "bootstrap-seeds")
|
|
|
|
|
(version "1.0.0")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (list
|
|
|
|
|
(string-append "mirror://gnu/guix/mirror/"
|
|
|
|
|
"bootstrap-seeds-" version ".tar.gz")
|
|
|
|
|
(string-append
|
|
|
|
|
"https://lilypond.org/janneke/guix/20220501/"
|
|
|
|
|
"bootstrap-seeds-" version ".tar.gz")))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0scz2bx8fd8c821h6y1j3x6ywgxxns7iinyn9z32dnkiacfdcpfn"))))
|
|
|
|
|
(native-inputs (list bootar))
|
|
|
|
|
(build-system trivial-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
(list #:guile %bootstrap-guile
|
|
|
|
|
#:modules '((guix build utils))
|
|
|
|
|
#:builder
|
|
|
|
|
#~(begin
|
|
|
|
|
(use-modules (guix build utils))
|
2022-05-14 19:27:55 +00:00
|
|
|
|
(let ((source #$(package-source this-package))
|
|
|
|
|
(tar #$(this-package-native-input "bootar"))
|
|
|
|
|
(out #$output))
|
2021-01-02 08:40:58 +00:00
|
|
|
|
(setenv "PATH" (string-append tar "/bin:"))
|
|
|
|
|
(invoke "tar" "xvf" source)
|
|
|
|
|
(mkdir-p out)
|
|
|
|
|
(copy-recursively "bootstrap-seeds" out)))))
|
|
|
|
|
(home-page "https://github.com/oriansj/bootstrap-seeds")
|
|
|
|
|
(synopsis "The initial bootstrap seeds: 357-byte hex0 and kaem shell")
|
|
|
|
|
(description
|
|
|
|
|
"This package provides pre-built binaries of the bootstrap seeds. It
|
|
|
|
|
contains a hex0-seed and an optional kaem-minimal shell. The size of the hex0
|
|
|
|
|
seeds are for knight: 250 bytes, x86-linux: 357 bytes, x86_64-linux: 431
|
|
|
|
|
bytes, and aarch64-linux 526 bytes. These can be used to build stage0: hex0,
|
|
|
|
|
hex1, hex2, M1, and M2-Planet.")
|
|
|
|
|
(license license:gpl3+)))
|
|
|
|
|
|
gnu: commencement: Add stage0-posix.
Stage0-posix is a skeleton for bootstrapping all of Stage0 for POSIX systems.
On x86-linux, from the 357-byte hex0-seed binary from the bootstrap-seeds, it
builds hex0, kaem, hex1, catm, hex2, M0, cc_x86, M1, M2,
get_machine, (mescc-tools), and M2-Planet.
* gnu/packages/commencement.scm (stage0-posix): New variable.
2020-12-31 17:25:21 +00:00
|
|
|
|
(define stage0-posix
|
|
|
|
|
;; The initial bootstrap package: no binary inputs except those from
|
|
|
|
|
;; `bootstrap-seeds, for x86 a 357 byte binary seed: `x86/hex0-seed'.
|
|
|
|
|
(let* ((mescc-tools-version "1.4.0")
|
|
|
|
|
(m2-planet-version "1.9.0")
|
|
|
|
|
(mescc-tools
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (list
|
|
|
|
|
(string-append
|
|
|
|
|
"mirror://gnu/guix/mirror/"
|
|
|
|
|
"mescc-tools-" mescc-tools-version ".tar.gz")
|
|
|
|
|
(string-append
|
|
|
|
|
"https://lilypond.org/janneke/guix/20220502/"
|
|
|
|
|
"mescc-tools-" mescc-tools-version ".tar.gz")))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1xi6f48pf5bhajhfis189gpizxij7nbp1vzvsb1aafhz4skkiqvg"))))
|
|
|
|
|
(m2-planet
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (list
|
|
|
|
|
(string-append
|
|
|
|
|
"mirror://gnu/guix/mirror/"
|
|
|
|
|
"M2-Planet-" m2-planet-version ".tar.gz")
|
|
|
|
|
(string-append
|
|
|
|
|
"https://lilypond.org/janneke/guix/20220502/"
|
|
|
|
|
"M2-Planet-" m2-planet-version ".tar.gz")))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1xrn69sc5nz4hwaishqyrcidp1ncxwib9zswl45x378ddz3mmk7g")))))
|
|
|
|
|
(package
|
|
|
|
|
(name "stage0-posix")
|
|
|
|
|
(version "1.4")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (list
|
|
|
|
|
(string-append "mirror://gnu/guix/mirror/"
|
|
|
|
|
"stage0-posix-" version ".tar.gz")
|
|
|
|
|
(string-append
|
|
|
|
|
"https://lilypond.org/janneke/guix/20220502/"
|
|
|
|
|
"stage0-posix-" version ".tar.gz")))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1ammifkj33205qrpfm84yb1c99lwgbn4jsl1hd08aab8c9ffz6p4"))))
|
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"
|
2022-05-20 16:58:45 +00:00
|
|
|
|
"aarch64-linux"
|
gnu: commencement: Add stage0-posix.
Stage0-posix is a skeleton for bootstrapping all of Stage0 for POSIX systems.
On x86-linux, from the 357-byte hex0-seed binary from the bootstrap-seeds, it
builds hex0, kaem, hex1, catm, hex2, M0, cc_x86, M1, M2,
get_machine, (mescc-tools), and M2-Planet.
* gnu/packages/commencement.scm (stage0-posix): New variable.
2020-12-31 17:25:21 +00:00
|
|
|
|
"riscv64-linux"))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("bootstrap-seeds" ,bootstrap-seeds)
|
|
|
|
|
,@(%boot-gash-inputs)))
|
|
|
|
|
(build-system trivial-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
(list
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:modules '((guix build utils))
|
|
|
|
|
#:builder
|
|
|
|
|
#~(begin
|
|
|
|
|
(use-modules (guix build utils))
|
2022-05-14 19:24:52 +00:00
|
|
|
|
(let* ((bootstrap-seeds #$(this-package-native-input
|
|
|
|
|
"bootstrap-seeds"))
|
|
|
|
|
(source #$(package-source this-package))
|
|
|
|
|
(tar #$(this-package-native-input "bootar"))
|
|
|
|
|
(bash #$(this-package-native-input "bash"))
|
|
|
|
|
(coreutils #$(this-package-native-input "coreutils"))
|
|
|
|
|
(guile #$(this-package-input "guile"))
|
|
|
|
|
(out #$output)
|
gnu: commencement: Add stage0-posix.
Stage0-posix is a skeleton for bootstrapping all of Stage0 for POSIX systems.
On x86-linux, from the 357-byte hex0-seed binary from the bootstrap-seeds, it
builds hex0, kaem, hex1, catm, hex2, M0, cc_x86, M1, M2,
get_machine, (mescc-tools), and M2-Planet.
* gnu/packages/commencement.scm (stage0-posix): New variable.
2020-12-31 17:25:21 +00:00
|
|
|
|
(bindir (string-append out "/bin"))
|
|
|
|
|
(target (or #$(%current-target-system)
|
|
|
|
|
#$(%current-system)))
|
|
|
|
|
(stage0-cpu
|
|
|
|
|
(cond
|
|
|
|
|
((or #$(target-x86-64?) #$(target-x86-32?))
|
|
|
|
|
"x86")
|
2022-05-20 16:58:45 +00:00
|
|
|
|
(#$(target-aarch64?)
|
|
|
|
|
"AArch64")
|
|
|
|
|
(#$(target-riscv64?)
|
|
|
|
|
"riscv64")
|
gnu: commencement: Add stage0-posix.
Stage0-posix is a skeleton for bootstrapping all of Stage0 for POSIX systems.
On x86-linux, from the 357-byte hex0-seed binary from the bootstrap-seeds, it
builds hex0, kaem, hex1, catm, hex2, M0, cc_x86, M1, M2,
get_machine, (mescc-tools), and M2-Planet.
* gnu/packages/commencement.scm (stage0-posix): New variable.
2020-12-31 17:25:21 +00:00
|
|
|
|
(else
|
|
|
|
|
(error "stage0-posix: system not supported" target))))
|
|
|
|
|
(kaem (string-append "../bootstrap-seeds/POSIX/"
|
|
|
|
|
stage0-cpu "/kaem-optional-seed")))
|
|
|
|
|
(setenv "PATH" (string-append tar "/bin:"
|
|
|
|
|
coreutils "/bin:"
|
|
|
|
|
bash "/bin"))
|
|
|
|
|
(invoke "tar" "xvf" source)
|
|
|
|
|
(chdir (string-append "stage0-posix-" #$version))
|
|
|
|
|
(copy-recursively bootstrap-seeds "bootstrap-seeds")
|
|
|
|
|
(invoke "tar" "xvf" #$mescc-tools)
|
|
|
|
|
(rmdir "mescc-tools")
|
|
|
|
|
(symlink (string-append "mescc-tools-" #$mescc-tools-version)
|
|
|
|
|
"mescc-tools")
|
|
|
|
|
(invoke "tar" "xvf" #$m2-planet)
|
|
|
|
|
(rmdir "M2-Planet")
|
|
|
|
|
(symlink (string-append "M2-Planet-" #$m2-planet-version)
|
|
|
|
|
"M2-Planet")
|
|
|
|
|
(rmdir "M2libc")
|
|
|
|
|
(symlink "M2-Planet/M2libc" "M2libc")
|
|
|
|
|
(mkdir-p bindir)
|
|
|
|
|
(with-directory-excursion stage0-cpu
|
|
|
|
|
(with-output-to-file "mes-m2.kaem"
|
|
|
|
|
(lambda _ (display "")))
|
|
|
|
|
(with-output-to-file "mescc-tools-extra.kaem"
|
|
|
|
|
(lambda _ (display "")))
|
|
|
|
|
(invoke kaem "kaem.run"))
|
|
|
|
|
(with-directory-excursion "bin"
|
|
|
|
|
(install-file "hex2" bindir)
|
|
|
|
|
(install-file "M1" bindir)
|
|
|
|
|
(install-file "blood-elf" bindir)
|
|
|
|
|
(install-file "kaem" bindir)
|
|
|
|
|
(install-file "get_machine" bindir)
|
|
|
|
|
(install-file "M2-Planet" bindir))))))
|
|
|
|
|
(home-page "https://github.com/oriansj/stage0-posix/")
|
|
|
|
|
(synopsis "The initial bootstrap package, builds stage0 up to M2-Planet")
|
|
|
|
|
(description "Starting from the 357-byte hex0-seed binary provided by
|
|
|
|
|
the bootstrap-seeds, the stage0-posix package first builds hex0 and then all
|
|
|
|
|
the way up: hex1, catm, hex2, M0, cc_x86, M1, M2, get_machine (that's all of
|
|
|
|
|
MesCC-Tools), and finally M2-Planet.")
|
|
|
|
|
(license license:gpl3+))))
|
|
|
|
|
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
(define mes-boot
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit mes)
|
|
|
|
|
(name "mes-boot")
|
2023-02-13 08:39:47 +00:00
|
|
|
|
(version "0.24.2")
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
2023-02-13 08:39:47 +00:00
|
|
|
|
(uri (list (string-append "mirror://gnu/mes/"
|
|
|
|
|
"mes-" version ".tar.gz")
|
|
|
|
|
(string-append "https://lilypond.org/janneke/mes/"
|
|
|
|
|
"mes-" version ".tar.gz")))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2023-02-13 08:39:47 +00:00
|
|
|
|
"0vp8v88zszh1imm3dvdfi3m8cywshdj7xcrsq4cgmss69s2y1nkx"))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2022-05-20 17:14:29 +00:00
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(native-inputs
|
2020-12-15 18:39:24 +00:00
|
|
|
|
`(("m2-planet" ,stage0-posix)
|
|
|
|
|
("nyacc-source" ,(bootstrap-origin
|
|
|
|
|
(origin (inherit (package-source nyacc-1.00.2))
|
|
|
|
|
(snippet #f))))
|
2019-01-03 20:50:10 +00:00
|
|
|
|
,@(%boot-gash-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
2022-05-14 19:39:06 +00:00
|
|
|
|
(list
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:strip-binaries? #f ;no strip yet
|
|
|
|
|
#:phases
|
|
|
|
|
#~(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'unpack-seeds
|
|
|
|
|
(lambda _
|
|
|
|
|
(let ((nyacc-source #$(this-package-native-input "nyacc-source")))
|
|
|
|
|
(with-directory-excursion ".."
|
|
|
|
|
(invoke "tar" "-xvf" nyacc-source)))))
|
|
|
|
|
(replace 'configure
|
|
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
|
|
|
(let ((out #$output)
|
|
|
|
|
(gash #$(this-package-native-input "bash"))
|
|
|
|
|
(dir (with-directory-excursion ".." (getcwd))))
|
|
|
|
|
(setenv "GUILE_LOAD_PATH" (string-append
|
|
|
|
|
dir "/nyacc-1.00.2/module"))
|
|
|
|
|
(invoke "gash" "configure.sh"
|
|
|
|
|
(string-append "--prefix=" out)
|
|
|
|
|
"--host=i686-linux-gnu"))))
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "gash" "bootstrap.sh")))
|
|
|
|
|
(delete 'check)
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(substitute* "install.sh" ; show some progress
|
|
|
|
|
((" -xf") " -xvf")
|
|
|
|
|
(("^( *)((cp|mkdir|tar) [^']*[^\\])\n" all space cmd)
|
|
|
|
|
(string-append space "echo '" cmd "'\n"
|
|
|
|
|
space cmd "\n")))
|
|
|
|
|
(invoke "gash" "install.sh")
|
|
|
|
|
;; Keep ASCII output, for friendlier comparison and bisection
|
|
|
|
|
(let* ((out #$output)
|
|
|
|
|
(cache (string-append out "/lib/cache")))
|
|
|
|
|
(define (objects-in-dir dir)
|
|
|
|
|
(find-files dir
|
|
|
|
|
(lambda (name stat)
|
|
|
|
|
(and (equal? (dirname name) dir)
|
|
|
|
|
(or (string-suffix? ".M1" name)
|
|
|
|
|
(string-suffix? ".hex2" name)
|
|
|
|
|
(string-suffix? ".o" name)
|
|
|
|
|
(string-suffix? ".s" name))))))
|
|
|
|
|
(for-each (lambda (x) (install-file x cache))
|
|
|
|
|
(append (objects-in-dir "m2")
|
|
|
|
|
(objects-in-dir ".")
|
|
|
|
|
(objects-in-dir "mescc-lib")))))))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(native-search-paths
|
|
|
|
|
(list (search-path-specification
|
|
|
|
|
(variable "C_INCLUDE_PATH")
|
2019-01-03 20:50:10 +00:00
|
|
|
|
(files '("include")))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(search-path-specification
|
|
|
|
|
(variable "LIBRARY_PATH")
|
2019-01-03 20:50:10 +00:00
|
|
|
|
(files '("lib")))
|
|
|
|
|
(search-path-specification
|
|
|
|
|
(variable "MES_PREFIX")
|
|
|
|
|
(separator #f)
|
|
|
|
|
(files '("")))))))
|
|
|
|
|
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define tcc-boot0
|
2020-12-13 13:59:35 +00:00
|
|
|
|
;; Pristine tcc cannot be built by MesCC, we are keeping a delta of 30
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
;; patches. In a very early and rough form they were presented to the
|
|
|
|
|
;; TinyCC developers, who at the time showed no interest in supporting the
|
|
|
|
|
;; bootstrappable effort; we will try again later. These patches have been
|
|
|
|
|
;; ported to 0.9.27, alas the resulting tcc is buggy. Once MesCC is more
|
|
|
|
|
;; mature, this package should use the 0.9.27 sources (or later).
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
2018-12-04 22:19:56 +00:00
|
|
|
|
(inherit tcc)
|
|
|
|
|
(name "tcc-boot0")
|
2020-12-13 13:59:35 +00:00
|
|
|
|
(version "0.9.26-1136-g5bba73cc")
|
2018-12-04 22:19:56 +00:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
2022-04-30 15:37:12 +00:00
|
|
|
|
(uri (list
|
|
|
|
|
(string-append "mirror://gnu/guix/mirror/"
|
|
|
|
|
"tcc-" version ".tar.gz")
|
2020-12-13 13:59:35 +00:00
|
|
|
|
(string-append "https://lilypond.org/janneke/tcc/"
|
|
|
|
|
"tcc-" version ".tar.gz")))
|
2018-12-04 22:19:56 +00:00
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2020-12-13 13:59:35 +00:00
|
|
|
|
"1y2f04qwdqg7dgxiscbf0ibybx2gclniwbbcsxpayazzii2cvji3"))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(build-system gnu-build-system)
|
2018-12-04 22:19:56 +00:00
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("mes" ,mes-boot)
|
2020-12-13 13:59:35 +00:00
|
|
|
|
("mescc-tools" ,stage0-posix)
|
2022-04-30 15:37:12 +00:00
|
|
|
|
("nyacc-source" ,(bootstrap-origin
|
|
|
|
|
(origin (inherit (package-source nyacc-1.00.2))
|
|
|
|
|
(snippet #f))))
|
2018-12-04 22:19:56 +00:00
|
|
|
|
,@(%boot-gash-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
2022-05-22 06:30:46 +00:00
|
|
|
|
(list
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:validate-runpath? #f ; no dynamic executables
|
|
|
|
|
#:strip-binaries? #f ; no strip yet
|
|
|
|
|
#:phases
|
|
|
|
|
#~(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'unpack-extra-sources
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let ((nyacc-source #$(this-package-native-input "nyacc-source")))
|
|
|
|
|
(with-directory-excursion ".."
|
|
|
|
|
(invoke "tar" "-xvf" nyacc-source)))))
|
|
|
|
|
(replace 'configure
|
|
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out #$output)
|
|
|
|
|
(dir (with-directory-excursion ".." (getcwd)))
|
|
|
|
|
(interpreter "/lib/mes-loader")
|
|
|
|
|
(mes #$(this-package-native-input "mes"))
|
|
|
|
|
(mescc (string-append mes "/bin/mescc")))
|
|
|
|
|
(substitute* "conftest.c"
|
|
|
|
|
(("volatile") ""))
|
|
|
|
|
(setenv "prefix" out)
|
|
|
|
|
(setenv "GUILE_LOAD_PATH"
|
|
|
|
|
(string-append dir "/nyacc-1.00.2/module"))
|
|
|
|
|
(invoke "sh" "configure"
|
|
|
|
|
"--cc=mescc"
|
|
|
|
|
(string-append "--prefix=" out)
|
|
|
|
|
(string-append "--elfinterp=" interpreter)
|
|
|
|
|
"--crtprefix=."
|
|
|
|
|
"--tccdir=."))))
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "bootstrap.sh" ; Show some progress
|
|
|
|
|
(("^( *)((cp|ls|mkdir|rm|[.]/tcc|[.]/[$][{program_prefix[}]tcc) [^\"]*[^\\])\n" all space cmd)
|
|
|
|
|
(string-append space "echo \"" cmd "\"\n"
|
|
|
|
|
space cmd "\n")))
|
|
|
|
|
(invoke "sh" "bootstrap.sh")))
|
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda _
|
|
|
|
|
;; fail fast tests
|
|
|
|
|
(system* "./tcc" "--help") ; --help exits 1
|
|
|
|
|
;; (invoke "sh" "test.sh" "mes/scaffold/tests/30-strlen")
|
|
|
|
|
;; (invoke "sh" "-x" "test.sh" "mes/scaffold/tinycc/00_assignment")
|
|
|
|
|
;; TODO: add sensible check target (without depending on make)
|
|
|
|
|
;; (invoke "sh" "check.sh")
|
|
|
|
|
))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "install.sh" ; Show some progress
|
|
|
|
|
(("^( *)((cp|ls|mkdir|rm|tar|./[$][{PROGRAM_PREFIX[}]tcc) [^\"]*[^\\])\n" all space cmd)
|
|
|
|
|
(string-append space "echo \"" cmd "\"\n"
|
|
|
|
|
space cmd "\n")))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2022-05-22 06:30:46 +00:00
|
|
|
|
(invoke "sh" "install.sh"))))))
|
2018-12-04 22:19:56 +00:00
|
|
|
|
(native-search-paths
|
|
|
|
|
(list (search-path-specification
|
|
|
|
|
(variable "C_INCLUDE_PATH")
|
|
|
|
|
(files '("include")))
|
|
|
|
|
(search-path-specification
|
|
|
|
|
(variable "LIBRARY_PATH")
|
|
|
|
|
(files '("lib")))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-09-21 20:03:44 +00:00
|
|
|
|
(define gzip-mesboot
|
|
|
|
|
;; The initial gzip. We keep this scripted gzip build before building make
|
|
|
|
|
;; to soften the dependency on Gash Core Utils gzip.
|
|
|
|
|
(package
|
|
|
|
|
(inherit gzip)
|
|
|
|
|
(version "1.2.4")
|
|
|
|
|
(name "gzip-mesboot")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/gzip/gzip-" version ".tar"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1rhgk2vvmdvnn6vygf0dja92ryyng00knl0kz5srb77k2kryjb2d"))))
|
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
|
|
|
|
(native-inputs `(("tcc" ,tcc-boot0)
|
|
|
|
|
,@(%boot-gash-inputs)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:strip-binaries? #f ; no strip yet
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(delete 'configure)
|
|
|
|
|
(add-after 'unpack 'scripted-patch
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "util.c"
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(("^char [*]strlwr" all) (string-append all "_tcc_cannot_handle_dupe")))))
|
2019-09-21 20:03:44 +00:00
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda _
|
|
|
|
|
(let ((files '("bits" "crypt" "deflate" "getopt" "gzip"
|
|
|
|
|
"inflate" "lzw" "trees" "unlzh" "unlzw"
|
|
|
|
|
"unpack" "unzip" "util" "zip")))
|
|
|
|
|
(define (compile x)
|
|
|
|
|
(invoke "tcc" "-c" "-D NO_UTIME=1" "-D HAVE_UNISTD_H=1"
|
|
|
|
|
(string-append x ".c")))
|
|
|
|
|
(for-each compile files)
|
|
|
|
|
(apply invoke
|
|
|
|
|
(cons* "tcc" "-o" "gzip"
|
|
|
|
|
(map (lambda (x) (string-append x ".o")) files)))
|
|
|
|
|
(link "gzip" "gunzip"))))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda _
|
|
|
|
|
(let* ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(bin (string-append out "/bin")))
|
|
|
|
|
(install-file "gzip" bin)
|
|
|
|
|
(install-file "gunzip" bin))))
|
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "./gzip" "--version")))
|
|
|
|
|
;; no gzip yet
|
|
|
|
|
(delete 'compress-documentation))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-12-16 12:37:56 +00:00
|
|
|
|
(define gnu-make-mesboot0
|
2019-09-21 11:34:42 +00:00
|
|
|
|
;; The initial make
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gnu-make)
|
|
|
|
|
(name "make-mesboot0")
|
|
|
|
|
(version "3.80")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
2019-09-21 11:34:42 +00:00
|
|
|
|
(uri (string-append "mirror://gnu/make/make-" version ".tar.gz"))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1pb7fb7fqf9wz9najm85qdma1xhxzf1rhj5gwrlzdsz2zm0hpcv4"))))
|
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2019-09-21 11:34:42 +00:00
|
|
|
|
(native-inputs `(("tcc" ,tcc-boot0)
|
|
|
|
|
,@(%boot-gash-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
2019-09-21 11:34:42 +00:00
|
|
|
|
#:configure-flags '("CC=tcc"
|
|
|
|
|
"CPP=tcc -E"
|
2019-10-11 15:23:13 +00:00
|
|
|
|
"LD=tcc"
|
2019-09-21 11:34:42 +00:00
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
2019-10-11 15:23:13 +00:00
|
|
|
|
"--disable-nls")
|
2019-09-21 11:34:42 +00:00
|
|
|
|
#:modules ((guix build gnu-build-system)
|
|
|
|
|
(guix build utils)
|
|
|
|
|
(srfi srfi-1))
|
|
|
|
|
#:strip-binaries? #f ; no strip yet
|
2019-10-11 15:23:13 +00:00
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
2019-09-21 11:34:42 +00:00
|
|
|
|
(add-after 'unpack 'scripted-patch
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "build.sh.in"
|
|
|
|
|
(("@LIBOBJS@") "getloadavg.o")
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(("@REMOTE@") "stub"))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(add-after 'configure 'configure-fixup
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "make.h"
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(("^extern long int lseek.*" all) (string-append "// " all)))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "sh" "./build.sh")))
|
2019-09-21 11:34:42 +00:00
|
|
|
|
(replace 'check ; proper check needs awk
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "./make" "--version")))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(replace 'install
|
2019-09-21 11:34:42 +00:00
|
|
|
|
(lambda _
|
|
|
|
|
(let* ((out (assoc-ref %outputs "out"))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(bin (string-append out "/bin")))
|
2019-09-21 11:34:42 +00:00
|
|
|
|
(install-file "make" bin)))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-09-21 11:34:42 +00:00
|
|
|
|
(define (%boot-tcc0-inputs)
|
2019-12-16 12:37:56 +00:00
|
|
|
|
`(("make" ,gnu-make-mesboot0)
|
2019-09-21 11:34:42 +00:00
|
|
|
|
("tcc" ,tcc-boot0)
|
|
|
|
|
,@(%boot-gash-inputs)))
|
|
|
|
|
|
2019-09-21 08:43:18 +00:00
|
|
|
|
(define tcc-boot
|
|
|
|
|
;; The final tcc.
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
2019-09-21 08:43:18 +00:00
|
|
|
|
(inherit tcc-boot0)
|
|
|
|
|
(name "tcc-boot")
|
|
|
|
|
(version "0.9.27")
|
2022-07-12 09:05:15 +00:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://savannah/tinycc/tcc-"
|
|
|
|
|
version ".tar.bz2"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"177bdhwzrnqgyrdv1dwvpd04fcxj68s5pm1dzwny6359ziway8yy"))))
|
2019-09-21 08:43:18 +00:00
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2023-02-15 18:57:59 +00:00
|
|
|
|
(native-inputs `(("mes" ,mes-boot)
|
|
|
|
|
,@(%boot-tcc0-inputs)))
|
2019-09-21 08:43:18 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:validate-runpath? #f ; no dynamic executables
|
|
|
|
|
#:strip-binaries? #f ; no strip yet
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'scripted-patch
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(substitute* "libtcc.c"
|
|
|
|
|
(("s->alacarte_link = 1;" all)
|
|
|
|
|
(string-append all "
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
s->static_link = 1;")))))
|
2019-09-21 08:43:18 +00:00
|
|
|
|
(replace 'configure
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(tcc (assoc-ref %build-inputs "tcc"))
|
|
|
|
|
(libc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(interpreter "/mes/loader"))
|
|
|
|
|
(invoke "sh" "configure"
|
|
|
|
|
(string-append "--cc=tcc")
|
|
|
|
|
(string-append "--cpu=i386")
|
|
|
|
|
(string-append "--prefix=" out)
|
|
|
|
|
(string-append "--elfinterp=" interpreter)
|
|
|
|
|
(string-append "--crtprefix=" tcc "/lib")
|
|
|
|
|
(string-append "--sysincludepaths=" tcc "/include")
|
|
|
|
|
(string-append "--libpaths=" tcc "/lib")))))
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(tcc (assoc-ref %build-inputs "tcc"))
|
|
|
|
|
(libc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(interpreter "/mes/loader"))
|
|
|
|
|
(invoke
|
|
|
|
|
"tcc"
|
|
|
|
|
"-vvv"
|
|
|
|
|
"-D" "BOOTSTRAP=1"
|
|
|
|
|
"-D" "ONE_SOURCE=1"
|
|
|
|
|
"-D" "TCC_TARGET_I386=1"
|
|
|
|
|
"-D" "CONFIG_TCC_STATIC=1"
|
|
|
|
|
"-D" "CONFIG_USE_LIBGCC=1"
|
|
|
|
|
"-D" (string-append "CONFIG_TCCDIR=\"" out "/lib/tcc\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_CRTPREFIX=\"" out "/lib:{B}/lib:.\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_CRTPREFIX=\"" out "/lib:{B}/lib:.\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_ELFINTERP=\"" interpreter "\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_LIBPATHS=\"" tcc "/lib:{B}/lib:.\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_SYSINCLUDEPATHS=\""
|
|
|
|
|
tcc "/include" ":/include:{B}/include\"")
|
|
|
|
|
"-D" (string-append "TCC_LIBGCC=\"" tcc "/lib/libc.a\"")
|
|
|
|
|
"-o" "tcc"
|
|
|
|
|
"tcc.c"))))
|
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda _
|
|
|
|
|
;; FIXME: add sensible check target (without depending on make)
|
|
|
|
|
;; ./check.sh ?
|
|
|
|
|
(= 1 (status:exit-val (system* "./tcc" "--help")))))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
2023-02-15 18:57:59 +00:00
|
|
|
|
(let* ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(mes (assoc-ref %build-inputs "mes"))
|
|
|
|
|
(tcc (assoc-ref %build-inputs "tcc"))
|
|
|
|
|
(interpreter "/mes/loader")
|
|
|
|
|
(cppflags
|
|
|
|
|
(list
|
|
|
|
|
"-D" "BOOTSTRAP=1"
|
|
|
|
|
"-D" "ONE_SOURCE=1"
|
|
|
|
|
"-D" "TCC_TARGET_I386=1"
|
|
|
|
|
"-D" "CONFIG_TCCBOOT=1"
|
|
|
|
|
"-D" "CONFIG_TCC_STATIC=1"
|
|
|
|
|
"-D" "CONFIG_USE_LIBGCC=1"
|
|
|
|
|
"-D" (string-append "CONFIG_TCCDIR=\"" out "/lib/tcc\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_CRTPREFIX=\"" out "/lib:{B}/lib:.\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_ELFINTERP=\"" interpreter "\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_LIBPATHS=\"" tcc "/lib:{B}/lib:{B}/lib/tcc:.\"")
|
|
|
|
|
"-D" (string-append "CONFIG_TCC_SYSINCLUDEPATHS=\""
|
|
|
|
|
tcc "/include" ":/include:{B}/include\"")
|
|
|
|
|
"-D" (string-append "TCC_LIBGCC=\"" tcc "/lib/libc.a\"")
|
|
|
|
|
"-D" (string-append "TCC_LIBTCC1_MES=\"libtcc1-mes.a\""))))
|
2019-09-21 08:43:18 +00:00
|
|
|
|
(and
|
|
|
|
|
(mkdir-p (string-append out "/bin"))
|
|
|
|
|
(copy-file "tcc" (string-append out "/bin/tcc"))
|
|
|
|
|
(mkdir-p (string-append out "/lib/tcc"))
|
|
|
|
|
(copy-recursively (string-append tcc "/include")
|
|
|
|
|
(string-append out "/include"))
|
|
|
|
|
(copy-recursively (string-append tcc "/lib")
|
|
|
|
|
(string-append out "/lib"))
|
2020-12-13 13:59:35 +00:00
|
|
|
|
(invoke "./tcc" "-D" "TCC_TARGET_I386=1" "-c" "-o" "libtcc1.o" "lib/libtcc1.c")
|
|
|
|
|
(invoke "./tcc" "-ar" "rc" "libtcc1.a" "libtcc1.o")
|
2019-09-21 08:43:18 +00:00
|
|
|
|
(copy-file "libtcc1.a" (string-append out "/lib/libtcc1.a"))
|
|
|
|
|
(delete-file (string-append out "/lib/tcc/libtcc1.a"))
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(copy-file "libtcc1.a"
|
2023-02-15 18:57:59 +00:00
|
|
|
|
(string-append out "/lib/tcc/libtcc1.a"))
|
|
|
|
|
|
|
|
|
|
(delete-file (string-append out "/lib/libc.a"))
|
|
|
|
|
(apply invoke "./tcc" "-c" "-o" "libc.o"
|
|
|
|
|
"-I" (string-append tcc "/include")
|
|
|
|
|
"-I" (string-append tcc "/include/linux/x86")
|
|
|
|
|
(string-append mes "/lib/libc+gnu.c")
|
|
|
|
|
cppflags)
|
|
|
|
|
(invoke "./tcc" "-ar" "rc" "libc.a" "libc.o")
|
|
|
|
|
(copy-file "libc.a" (string-append out "/lib/libc.a")))))))))))
|
2019-09-21 08:43:18 +00:00
|
|
|
|
|
2019-10-06 12:57:54 +00:00
|
|
|
|
(define patch-mesboot
|
|
|
|
|
;; The initial patch.
|
|
|
|
|
(package
|
|
|
|
|
(inherit patch)
|
|
|
|
|
(name "patch-mesboot")
|
|
|
|
|
(version "2.5.9")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/patch/patch-"
|
|
|
|
|
version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"12nv7jx3gxfp50y11nxzlnmqqrpicjggw6pcsq0wyavkkm3cddgc"))))
|
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
|
|
|
|
(native-inputs (%boot-tcc0-inputs))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:parallel-build? #f
|
|
|
|
|
#:tests? #f ; check is naive, also checks non-built PROGRAMS
|
|
|
|
|
#:strip-binaries? #f ; no strip yet
|
|
|
|
|
#:configure-flags '("AR=tcc -ar" "CC=tcc" "LD-tcc")
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'scripted-patch
|
|
|
|
|
(lambda _
|
|
|
|
|
;; avoid another segfault
|
|
|
|
|
(substitute* "pch.c"
|
|
|
|
|
(("while [(]p_end >= 0[)]" all)
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
"p_end = -1;\nwhile (0)"))))
|
2019-10-06 12:57:54 +00:00
|
|
|
|
;; FIXME: no compressing gzip yet
|
|
|
|
|
(delete 'compress-documentation))))))
|
|
|
|
|
|
2019-10-06 15:47:24 +00:00
|
|
|
|
(define (%boot-tcc-inputs)
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
`(("gzip" ,gzip-mesboot)
|
2019-10-06 15:47:24 +00:00
|
|
|
|
("patch" ,patch-mesboot)
|
|
|
|
|
("tcc" ,tcc-boot)
|
|
|
|
|
,@(alist-delete "tcc" (%boot-tcc0-inputs))))
|
|
|
|
|
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
(define binutils-mesboot0
|
2019-10-06 13:22:01 +00:00
|
|
|
|
;; The initial Binutils
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit binutils)
|
|
|
|
|
(name "binutils-mesboot0")
|
2021-04-06 02:10:30 +00:00
|
|
|
|
(version "2.20.1a")
|
|
|
|
|
(source (bootstrap-origin
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/binutils/binutils-"
|
|
|
|
|
version ".tar.bz2"))
|
|
|
|
|
(patches (search-patches "binutils-boot-2.20.1a.patch"))
|
|
|
|
|
(patch-guile %bootstrap-guile)
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0r7dr0brfpchh5ic0z9r4yxqn4ybzmlh25sbp30cacqk8nb7rlvi")))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2019-10-06 13:22:01 +00:00
|
|
|
|
(native-inputs (%boot-tcc-inputs))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
2019-10-06 13:22:01 +00:00
|
|
|
|
#:tests? #f ; runtest: command not found
|
2019-10-11 15:23:13 +00:00
|
|
|
|
#:parallel-build? #f
|
2019-10-06 13:22:01 +00:00
|
|
|
|
#:strip-binaries? #f ; no strip yet
|
2019-10-11 15:23:13 +00:00
|
|
|
|
#:configure-flags
|
2021-04-06 02:10:30 +00:00
|
|
|
|
(let ((cppflags (string-append " -D __GLIBC_MINOR__=6"
|
|
|
|
|
" -D MES_BOOTSTRAP=1"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash")))
|
|
|
|
|
`(,(string-append "CONFIG_SHELL=" bash "/bin/sh")
|
|
|
|
|
,(string-append "CPPFLAGS=" cppflags)
|
|
|
|
|
"AR=tcc -ar"
|
|
|
|
|
"CXX=false"
|
|
|
|
|
"RANLIB=true"
|
|
|
|
|
,(string-append "CC=tcc" cppflags)
|
|
|
|
|
"--disable-nls"
|
2019-10-11 15:23:13 +00:00
|
|
|
|
"--disable-shared"
|
|
|
|
|
"--disable-werror"
|
2021-04-06 02:10:30 +00:00
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
"--with-sysroot=/"))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-10-06 17:29:01 +00:00
|
|
|
|
(define gcc-core-mesboot0
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
;; Gcc-2.95.3 is the most recent GCC that is supported by what the Mes C
|
|
|
|
|
;; Library v0.16 offers. Gcc-3.x (and 4.x) place higher demands on a C
|
|
|
|
|
;; library, such as dir.h/struct DIR/readdir, locales, signals... Also,
|
2019-10-06 17:29:01 +00:00
|
|
|
|
;; with gcc-2.95.3, binutils (2.14.0, 2.20.1a) and glibc-2.2.5 we found a
|
|
|
|
|
;; GNU toolchain triplet "that works".
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gcc)
|
2019-10-06 17:29:01 +00:00
|
|
|
|
(name "gcc-core-mesboot0")
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(version "2.95.3")
|
2019-10-06 17:29:01 +00:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/gcc/gcc-2.95.3/gcc-core-"
|
|
|
|
|
version
|
|
|
|
|
".tar.gz"))
|
|
|
|
|
;; `patches' needs XZ
|
|
|
|
|
;; (patches (search-patches "gcc-boot-2.95.3.patch"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1xvfy4pqhrd5v2cv8lzf63iqg92k09g6z9n2ah6ndd4h17k1x0an"))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(native-inputs `(("binutils" ,binutils-mesboot0)
|
2019-10-06 17:29:01 +00:00
|
|
|
|
,@(%boot-tcc-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(outputs '("out"))
|
|
|
|
|
(arguments
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(list #:implicit-inputs? #f
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:parallel-build? #f
|
|
|
|
|
#:strip-binaries? #f
|
|
|
|
|
#:configure-flags
|
|
|
|
|
#~(let ((out (assoc-ref %outputs "out")))
|
|
|
|
|
`("--enable-static"
|
|
|
|
|
"--disable-shared"
|
|
|
|
|
"--disable-werror"
|
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
,(string-append "--prefix=" out)))
|
|
|
|
|
#:make-flags
|
|
|
|
|
#~`("CC=tcc -static -D __GLIBC_MINOR__=6"
|
|
|
|
|
"OLDCC=tcc -static -D __GLIBC_MINOR__=6"
|
|
|
|
|
"CC_FOR_BUILD=tcc -static -D __GLIBC_MINOR__=6"
|
|
|
|
|
"AR=ar"
|
|
|
|
|
"RANLIB=ranlib"
|
|
|
|
|
,(string-append "LIBGCC2_INCLUDES=-I "
|
|
|
|
|
(assoc-ref %build-inputs "tcc")
|
|
|
|
|
"/include")
|
|
|
|
|
"LANGUAGES=c"
|
|
|
|
|
,(string-append "BOOT_LDFLAGS="
|
|
|
|
|
" -B" (assoc-ref %build-inputs "tcc")
|
|
|
|
|
"/lib/"))
|
|
|
|
|
#:modules '((guix build gnu-build-system)
|
|
|
|
|
(guix build utils)
|
|
|
|
|
(srfi srfi-1))
|
|
|
|
|
#:phases
|
|
|
|
|
#~(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'apply-boot-patch
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((patch-file
|
|
|
|
|
#$(local-file
|
|
|
|
|
(search-patch "gcc-boot-2.95.3.patch"))))
|
|
|
|
|
(invoke "patch" "--force" "-p1" "-i" patch-file))))
|
|
|
|
|
(add-before 'configure 'setenv
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(shell (string-append bash "/bin/bash"))
|
|
|
|
|
(tcc (assoc-ref %build-inputs "tcc"))
|
|
|
|
|
(cppflags " -D __GLIBC_MINOR__=6"))
|
|
|
|
|
(setenv "CONFIG_SHELL" shell)
|
|
|
|
|
(setenv "CPPFLAGS" cppflags)
|
|
|
|
|
(setenv "CC" (string-append "tcc" cppflags))
|
|
|
|
|
(setenv "CC_FOR_BUILD" (string-append "tcc" cppflags))
|
|
|
|
|
(setenv "CPP" (string-append "tcc -E" cppflags))
|
|
|
|
|
(with-output-to-file "config.cache"
|
|
|
|
|
(lambda _
|
|
|
|
|
(display "
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
ac_cv_c_float_format='IEEE (little-endian)'
|
2019-10-06 17:29:01 +00:00
|
|
|
|
"))))))
|
2021-07-01 12:22:26 +00:00
|
|
|
|
;; gcc-2.95.3
|
|
|
|
|
(replace 'configure ; needs classic invocation of configure
|
|
|
|
|
(lambda* (#:key configure-flags #:allow-other-keys)
|
|
|
|
|
(format (current-error-port)
|
|
|
|
|
"running ./configure ~a\n" (string-join configure-flags))
|
|
|
|
|
(apply invoke "./configure" configure-flags)))
|
|
|
|
|
(add-after 'configure 'remove-info
|
|
|
|
|
(lambda _
|
|
|
|
|
;; no info at this stage
|
|
|
|
|
(delete-file-recursively "texinfo")
|
|
|
|
|
(invoke "touch" "gcc/cpp.info" "gcc/gcc.info")))
|
|
|
|
|
(add-after 'install 'install2
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((tcc (assoc-ref %build-inputs "tcc"))
|
|
|
|
|
(tcc-lib (string-append tcc "/lib/x86-mes-gcc"))
|
|
|
|
|
(out (assoc-ref outputs "out"))
|
|
|
|
|
(gcc-dir (string-append
|
|
|
|
|
out "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3")))
|
|
|
|
|
(mkdir-p "tmp")
|
|
|
|
|
(with-directory-excursion "tmp"
|
|
|
|
|
(invoke "ar" "x" (string-append "../gcc/libgcc2.a"))
|
|
|
|
|
(invoke "ar" "x" (string-append tcc "/lib/libtcc1.a"))
|
|
|
|
|
(apply invoke "ar" "r" (string-append gcc-dir "/libgcc.a")
|
|
|
|
|
(find-files "." "\\.o")))
|
|
|
|
|
(copy-file "gcc/libgcc2.a" (string-append out "/lib/libgcc2.a"))
|
|
|
|
|
(copy-file (string-append tcc "/lib/libtcc1.a")
|
|
|
|
|
(string-append out "/lib/libtcc1.a"))
|
|
|
|
|
(invoke "ar" "x" (string-append tcc "/lib/libtcc1.a"))
|
|
|
|
|
(invoke "ar" "x" (string-append tcc "/lib/libc.a"))
|
|
|
|
|
(invoke "ar" "r" (string-append gcc-dir "/libc.a")
|
|
|
|
|
"libc.o" "libtcc1.o")))))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(native-search-paths
|
|
|
|
|
(list (search-path-specification
|
|
|
|
|
(variable "C_INCLUDE_PATH")
|
2020-02-04 08:40:51 +00:00
|
|
|
|
(files '("include"
|
|
|
|
|
|
|
|
|
|
;; Needed to get things like GCC's <stddef.h>.
|
|
|
|
|
"lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include")))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(search-path-specification
|
|
|
|
|
(variable "LIBRARY_PATH")
|
|
|
|
|
(files '("lib")))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-10-06 17:29:01 +00:00
|
|
|
|
(define (%boot-mesboot-core-inputs)
|
|
|
|
|
`(("binutils" ,binutils-mesboot0)
|
|
|
|
|
("gcc" ,gcc-core-mesboot0)
|
|
|
|
|
,@(alist-delete "tcc" (%boot-tcc-inputs))))
|
|
|
|
|
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
(define mesboot-headers
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit mes-boot)
|
|
|
|
|
(name "mesboot-headers")
|
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2019-11-22 15:03:50 +00:00
|
|
|
|
(native-inputs `(("kernel-headers" ,%bootstrap-linux-libre-headers)
|
|
|
|
|
,@(%boot-tcc-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:strip-binaries? #f
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(delete 'configure)
|
|
|
|
|
(delete 'build)
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(include (string-append out "/include"))
|
2019-11-22 15:03:50 +00:00
|
|
|
|
(headers (assoc-ref %build-inputs "kernel-headers")))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(mkdir-p include)
|
|
|
|
|
(copy-recursively "include" out)
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(copy-recursively headers out)))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define glibc-mesboot0
|
|
|
|
|
;; GNU C Library 2.2.5 is the most recent glibc that we managed to build
|
|
|
|
|
;; using gcc-2.95.3. Newer versions (2.3.x, 2.6, 2.1x) seem to need a newer
|
|
|
|
|
;; gcc.
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit glibc)
|
|
|
|
|
(name "glibc-mesboot0")
|
|
|
|
|
(version "2.2.5")
|
2019-10-06 19:19:35 +00:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/glibc/glibc-"
|
|
|
|
|
version
|
|
|
|
|
".tar.gz"))
|
|
|
|
|
;; Patch needs XZ
|
|
|
|
|
;; (patches (search-patches "glibc-boot-2.2.5.patch"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1vl48i16gx6h68whjyhgnn1s57vqq32f9ygfa2fls7pdkbsqvp2q"))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(native-inputs `(("headers" ,mesboot-headers)
|
2019-12-17 08:12:07 +00:00
|
|
|
|
,@(%boot-mesboot-core-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(outputs '("out"))
|
|
|
|
|
(arguments
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(list #:implicit-inputs? #f
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:strip-binaries? #f
|
|
|
|
|
#:validate-runpath? #f ; no dynamic executables
|
|
|
|
|
#:parallel-build? #f ; gcc-2.95.3 ICEs on massively parallel builds
|
|
|
|
|
#:make-flags #~(list (string-append
|
|
|
|
|
"SHELL="
|
|
|
|
|
(assoc-ref %build-inputs "bash")
|
|
|
|
|
"/bin/sh"))
|
|
|
|
|
#:configure-flags
|
|
|
|
|
#~(let ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(headers (assoc-ref %build-inputs "headers")))
|
|
|
|
|
`("--disable-shared"
|
|
|
|
|
"--enable-static"
|
|
|
|
|
"--disable-sanity-checks"
|
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
,(string-append "--with-headers=" headers "/include")
|
|
|
|
|
"--enable-static-nss"
|
|
|
|
|
"--without-__thread"
|
|
|
|
|
"--without-cvs"
|
|
|
|
|
"--without-gd"
|
|
|
|
|
"--without-tls"
|
|
|
|
|
,(string-append "--prefix=" out)))
|
|
|
|
|
#:phases
|
|
|
|
|
#~(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'apply-boot-patch
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(invoke "patch" "--force" "-p1" "-i"
|
|
|
|
|
#$(local-file
|
|
|
|
|
(search-patch "glibc-boot-2.2.5.patch")))
|
|
|
|
|
(invoke "patch" "--force" "-p1" "-i"
|
|
|
|
|
#$(local-file
|
|
|
|
|
(search-patch "glibc-bootstrap-system-2.2.5.patch")))))
|
|
|
|
|
(add-before 'configure 'setenv
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(shell (string-append bash "/bin/bash"))
|
|
|
|
|
(gcc (assoc-ref %build-inputs "gcc"))
|
|
|
|
|
(headers (assoc-ref %build-inputs "headers"))
|
|
|
|
|
(cppflags (string-append
|
|
|
|
|
;;" -D __STDC__=1"
|
|
|
|
|
" -D MES_BOOTSTRAP=1"
|
|
|
|
|
" -D BOOTSTRAP_GLIBC=1"))
|
|
|
|
|
(cflags (string-append " -L " (getcwd))))
|
|
|
|
|
(setenv "CONFIG_SHELL" shell)
|
|
|
|
|
(setenv "SHELL" shell)
|
|
|
|
|
(setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags))
|
|
|
|
|
(setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags)))))
|
|
|
|
|
(replace 'configure ; needs classic invocation of configure
|
|
|
|
|
(lambda* (#:key configure-flags #:allow-other-keys)
|
|
|
|
|
(format (current-error-port)
|
|
|
|
|
"running ./configure ~a\n" (string-join configure-flags))
|
|
|
|
|
(apply invoke "./configure" configure-flags)))
|
|
|
|
|
(add-after 'configure 'fixup-configure
|
|
|
|
|
(lambda _
|
|
|
|
|
(let* ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(shell (string-append bash "/bin/bash")))
|
|
|
|
|
(substitute* "config.make"
|
|
|
|
|
(("INSTALL = scripts/") "INSTALL = $(..)./scripts/"))
|
|
|
|
|
(substitute* "config.make"
|
|
|
|
|
(("INSTALL = scripts/") "INSTALL = $(..)./scripts/")
|
|
|
|
|
(("BASH = ") (string-append
|
|
|
|
|
"SHELL = " shell "
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
BASH = ")))))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define gcc-mesboot0
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
2019-10-06 17:29:01 +00:00
|
|
|
|
(inherit gcc-core-mesboot0)
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(name "gcc-mesboot0")
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(native-inputs `(;; Packages are given in an order that's relevant for
|
2020-02-04 08:40:51 +00:00
|
|
|
|
;; #include_next purposes.
|
2019-10-11 15:23:13 +00:00
|
|
|
|
("libc" ,glibc-mesboot0)
|
|
|
|
|
("kernel-headers" ,%bootstrap-linux-libre-headers)
|
2019-11-22 15:16:59 +00:00
|
|
|
|
,@(%boot-mesboot-core-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
2019-10-06 17:29:01 +00:00
|
|
|
|
(substitute-keyword-arguments (package-arguments gcc-core-mesboot0)
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:phases phases)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(replace 'setenv
|
|
|
|
|
(lambda _
|
|
|
|
|
(setenv "CONFIG_SHELL" (which "sh"))
|
|
|
|
|
(with-output-to-file "config.cache"
|
|
|
|
|
(lambda _
|
|
|
|
|
(display "
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
ac_cv_c_float_format='IEEE (little-endian)'
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
")))))
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(replace 'install2
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(gcc-dir (string-append
|
|
|
|
|
out "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3")))
|
|
|
|
|
(and
|
|
|
|
|
(mkdir-p "tmp")
|
|
|
|
|
(zero? (system (string-append "set -x; cd tmp && ar x ../gcc/libgcc2.a")))
|
|
|
|
|
(zero? (system (string-append "set -x; cd tmp && ar r " gcc-dir "/libgcc.a *.o")))
|
|
|
|
|
(copy-file "gcc/libgcc2.a" (string-append out "/lib/libgcc2.a"))))))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:configure-flags configure-flags)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(let ((out (assoc-ref %outputs "out")))
|
|
|
|
|
`("--disable-shared"
|
|
|
|
|
"--disable-werror"
|
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
,(string-append "--prefix=" out))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:make-flags make-flags)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(let ((gcc (assoc-ref %build-inputs "gcc")))
|
|
|
|
|
`("RANLIB=true"
|
|
|
|
|
,(string-append "LIBGCC2_INCLUDES=-I " gcc "/include")
|
|
|
|
|
"LANGUAGES=c")))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-11-22 15:16:59 +00:00
|
|
|
|
(define (%boot-mesboot0-inputs)
|
|
|
|
|
`(("gcc" ,gcc-mesboot0)
|
|
|
|
|
("kernel-headers" ,%bootstrap-linux-libre-headers)
|
|
|
|
|
("libc" ,glibc-mesboot0)
|
|
|
|
|
,@(alist-delete "gcc" (%boot-mesboot-core-inputs))))
|
|
|
|
|
|
2019-11-22 19:37:30 +00:00
|
|
|
|
(define binutils-mesboot1
|
|
|
|
|
(package
|
|
|
|
|
(inherit binutils-mesboot0)
|
|
|
|
|
(name "binutils-mesboot1")
|
|
|
|
|
(native-inputs (%boot-mesboot0-inputs))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
|
|
|
|
(substitute-keyword-arguments (package-arguments binutils-mesboot0)
|
|
|
|
|
((#:configure-flags configure-flags)
|
2019-11-22 19:37:30 +00:00
|
|
|
|
'(let ((out (assoc-ref %outputs "out")))
|
|
|
|
|
`("--disable-nls"
|
|
|
|
|
"--disable-shared"
|
|
|
|
|
"--disable-werror"
|
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
"--with-sysroot=/"
|
2021-04-06 02:10:30 +00:00
|
|
|
|
,(string-append "--prefix=" out))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-12-16 12:38:20 +00:00
|
|
|
|
(define gnu-make-mesboot
|
2019-11-22 19:52:44 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gnu-make)
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(name "make-mesboot")
|
|
|
|
|
(version "3.82")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/make/make-"
|
|
|
|
|
version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1rs2f9hmvy3q6zkl15jnlmnpgffm0bhw5ax0h5c7q604wqrip69x"))))
|
2019-11-22 19:52:44 +00:00
|
|
|
|
(native-inputs (%boot-mesboot0-inputs))
|
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:parallel-build? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:configure-flags '("LIBS=-lc -lnss_files -lnss_dns -lresolv")
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "./make" "--version")))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bin (string-append out "/bin")))
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(install-file "make" bin)))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-11-22 20:22:14 +00:00
|
|
|
|
(define (%boot-mesboot1-inputs)
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
`(("binutils" ,binutils-mesboot1)
|
2019-12-16 12:38:20 +00:00
|
|
|
|
("make" ,gnu-make-mesboot)
|
2019-11-22 20:22:14 +00:00
|
|
|
|
,@(fold alist-delete (%boot-mesboot0-inputs)
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
'("binutils" "make"))))
|
2019-11-22 20:22:14 +00:00
|
|
|
|
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
(define gmp-boot
|
2021-08-12 22:01:30 +00:00
|
|
|
|
(let ((version "4.3.2"))
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/gmp/gmp-" version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32 "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv")))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define mpfr-boot
|
2021-08-12 22:01:30 +00:00
|
|
|
|
(let ((version "2.4.2"))
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/mpfr/mpfr-" version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32 "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94")))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define mpc-boot
|
2021-08-12 22:01:30 +00:00
|
|
|
|
(let ((version "1.0.3"))
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/mpc/mpc-" version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32 "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1")))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-11-22 20:06:06 +00:00
|
|
|
|
(define gcc-core-mesboot1
|
|
|
|
|
;; GCC 4.6.4 is the latest modular distribution. This package is not
|
|
|
|
|
;; stricly needed, but very helpful for development because it builds
|
|
|
|
|
;; relatively fast. If this configures and builds then gcc-mesboot1 also
|
|
|
|
|
;; builds.
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gcc-mesboot0)
|
2019-11-22 20:06:06 +00:00
|
|
|
|
(name "gcc-core-mesboot1")
|
|
|
|
|
(version "4.6.4")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/gcc/gcc-"
|
|
|
|
|
version "/gcc-core-" version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2021-07-01 12:22:26 +00:00
|
|
|
|
"173kdb188qg79pcz073cj9967rs2vzanyjdjyxy9v0xb0p5sad75"))))
|
2021-08-12 22:01:30 +00:00
|
|
|
|
(inputs `(("gmp-source" ,gmp-boot)
|
|
|
|
|
("mpfr-source" ,mpfr-boot)
|
|
|
|
|
("mpc-source" ,mpc-boot)))
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(native-inputs (%boot-mesboot1-inputs))
|
2019-11-22 20:06:06 +00:00
|
|
|
|
(arguments
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(list #:implicit-inputs? #f
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:modules '((guix build gnu-build-system)
|
|
|
|
|
(guix build utils)
|
|
|
|
|
(srfi srfi-1))
|
|
|
|
|
#:parallel-build? #f ; for debugging
|
|
|
|
|
#:make-flags
|
|
|
|
|
#~(let* ((libc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(ldflags (string-append
|
|
|
|
|
"-B" libc "/lib "
|
|
|
|
|
"-Wl,-dynamic-linker "
|
|
|
|
|
"-Wl," libc
|
|
|
|
|
#$(glibc-dynamic-linker "i686-linux"))))
|
|
|
|
|
(list (string-append "LDFLAGS=" ldflags)
|
|
|
|
|
(string-append "LDFLAGS_FOR_TARGET=" ldflags)))
|
|
|
|
|
#:configure-flags
|
|
|
|
|
#~(let ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(glibc (assoc-ref %build-inputs "libc")))
|
|
|
|
|
(list (string-append "--prefix=" out)
|
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
(string-append "--with-native-system-header-dir=" glibc "/include")
|
|
|
|
|
(string-append "--with-build-sysroot=" glibc "/include")
|
|
|
|
|
"--disable-bootstrap"
|
|
|
|
|
"--disable-decimal-float"
|
|
|
|
|
"--disable-libatomic"
|
|
|
|
|
"--disable-libcilkrts"
|
|
|
|
|
"--disable-libgomp"
|
|
|
|
|
"--disable-libitm"
|
|
|
|
|
"--disable-libmudflap"
|
|
|
|
|
"--disable-libquadmath"
|
|
|
|
|
"--disable-libsanitizer"
|
|
|
|
|
"--disable-libssp"
|
|
|
|
|
"--disable-libvtv"
|
|
|
|
|
"--disable-lto"
|
|
|
|
|
"--disable-lto-plugin"
|
|
|
|
|
"--disable-multilib"
|
|
|
|
|
"--disable-plugin"
|
|
|
|
|
"--disable-threads"
|
|
|
|
|
"--enable-languages=c"
|
|
|
|
|
"--enable-static"
|
|
|
|
|
"--disable-shared"
|
|
|
|
|
"--enable-threads=single"
|
|
|
|
|
"--disable-libstdcxx-pch"
|
|
|
|
|
"--disable-build-with-cxx"))
|
|
|
|
|
#:phases
|
|
|
|
|
#~(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'apply-boot-patch
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((patch-file
|
|
|
|
|
#$(local-file
|
|
|
|
|
(search-patch "gcc-boot-4.6.4.patch"))))
|
|
|
|
|
(invoke "patch" "--force" "-p1" "-i" patch-file))))
|
|
|
|
|
;; c&p from commencement.scm:gcc-boot0
|
|
|
|
|
(add-after 'unpack 'unpack-gmp&co
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
|
|
|
|
|
(mpfr (assoc-ref %build-inputs "mpfr-source"))
|
|
|
|
|
(mpc (assoc-ref %build-inputs "mpc-source")))
|
|
|
|
|
|
|
|
|
|
;; To reduce the set of pre-built bootstrap inputs, build
|
|
|
|
|
;; GMP & co. from GCC.
|
|
|
|
|
(for-each (lambda (source)
|
|
|
|
|
(or (invoke "tar" "xvf" source)
|
|
|
|
|
(error "failed to unpack tarball"
|
|
|
|
|
source)))
|
|
|
|
|
(list gmp mpfr mpc))
|
|
|
|
|
|
|
|
|
|
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
|
2021-08-12 22:01:30 +00:00
|
|
|
|
#$@(map (lambda (lib package)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
;; Drop trailing letters, as gmp-6.0.0a unpacks
|
|
|
|
|
;; into gmp-6.0.0.
|
|
|
|
|
#~(symlink #$(string-trim-right
|
2021-08-12 22:01:30 +00:00
|
|
|
|
(basename
|
|
|
|
|
(origin-actual-file-name lib)
|
|
|
|
|
".tar.gz")
|
2021-07-01 12:22:26 +00:00
|
|
|
|
char-set:letter)
|
2021-08-12 22:01:30 +00:00
|
|
|
|
#$package))
|
|
|
|
|
(list gmp-boot mpfr-boot mpc-boot)
|
|
|
|
|
'("gmp" "mpfr" "mpc")))))
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(add-before 'configure 'setenv
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(binutils (assoc-ref %build-inputs "binutils"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(gcc (assoc-ref %build-inputs "gcc"))
|
|
|
|
|
(glibc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(kernel-headers (assoc-ref %build-inputs "kernel-headers")))
|
|
|
|
|
(setenv "CONFIG_SHELL" (string-append bash "/bin/sh"))
|
|
|
|
|
(setenv "C_INCLUDE_PATH" (string-append
|
|
|
|
|
gcc "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include"
|
|
|
|
|
":" kernel-headers "/include"
|
|
|
|
|
":" glibc "/include"
|
|
|
|
|
":" (getcwd) "/mpfr/src"))
|
|
|
|
|
(setenv "LIBRARY_PATH" (string-append glibc "/lib"
|
|
|
|
|
":" gcc "/lib"))
|
|
|
|
|
(format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH"))
|
|
|
|
|
(format (current-error-port) "LIBRARY_PATH=~a\n"
|
|
|
|
|
(getenv "LIBRARY_PATH"))))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-11-22 20:31:23 +00:00
|
|
|
|
(define gcc-mesboot1
|
|
|
|
|
(package
|
|
|
|
|
(inherit gcc-core-mesboot1)
|
|
|
|
|
(name "gcc-mesboot1")
|
|
|
|
|
(version "4.6.4")
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("gcc-g++"
|
|
|
|
|
,(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/gcc/gcc-"
|
|
|
|
|
version "/gcc-g++-" version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1fqqk5zkmdg4vmqzdmip9i42q6b82i3f6yc0n86n9021cr7ms2k9"))))
|
|
|
|
|
,@(package-native-inputs gcc-core-mesboot1)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
2019-11-22 20:31:23 +00:00
|
|
|
|
(substitute-keyword-arguments (package-arguments gcc-core-mesboot1)
|
|
|
|
|
((#:configure-flags configure-flags)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(let ((out (assoc-ref %outputs "out")))
|
|
|
|
|
`("--enable-languages=c,c++"
|
|
|
|
|
,@(filter
|
|
|
|
|
(negate (lambda (x) (string-prefix? "--enable-languages=" x)))
|
|
|
|
|
#$configure-flags))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:phases phases)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(add-before 'unpack 'unpack-g++
|
|
|
|
|
(lambda _
|
|
|
|
|
(let ((source-g++ (assoc-ref %build-inputs "gcc-g++")))
|
|
|
|
|
(invoke "tar" "xvf" source-g++))))
|
|
|
|
|
(replace 'setenv
|
|
|
|
|
(lambda _
|
|
|
|
|
(setenv "CONFIG_SHELL" (which "sh"))
|
|
|
|
|
|
|
|
|
|
;; Allow MPFR headers to be found.
|
|
|
|
|
(setenv "C_INCLUDE_PATH"
|
|
|
|
|
(string-append (getcwd) "/mpfr/src:"
|
|
|
|
|
(getenv "C_INCLUDE_PATH")))
|
|
|
|
|
|
|
|
|
|
;; Set the C++ search path so that C headers can be found as
|
|
|
|
|
;; libstdc++ is being compiled.
|
|
|
|
|
(setenv "CPLUS_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))))))))))
|
2019-11-22 20:31:23 +00:00
|
|
|
|
|
|
|
|
|
(define (%boot-mesboot2-inputs)
|
|
|
|
|
`(("gcc" ,gcc-mesboot1)
|
|
|
|
|
,@(alist-delete "gcc" (%boot-mesboot1-inputs))))
|
|
|
|
|
|
2019-11-22 20:55:45 +00:00
|
|
|
|
(define hello-mesboot
|
2022-02-11 21:08:29 +00:00
|
|
|
|
;; Check for Scheme-only bootstrap. Note that newer versions of Hello
|
|
|
|
|
;; break due to the way that newer versions of Gnulib handle
|
|
|
|
|
;; "limits.h". Hence, we stick to 2.10.
|
2019-11-22 20:55:45 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit hello)
|
|
|
|
|
(name "hello-mesboot")
|
2022-02-11 21:08:29 +00:00
|
|
|
|
(version "2.10")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(inherit (package-source hello))
|
|
|
|
|
(uri (string-append "mirror://gnu/hello/hello-" version
|
|
|
|
|
".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
|
2019-11-22 20:55:45 +00:00
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
|
|
|
|
(native-inputs (%boot-mesboot2-inputs))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:parallel-build? #f
|
|
|
|
|
;; checking for grep that handles long lines and -e...
|
|
|
|
|
;; configure: error: no acceptable grep could be found
|
|
|
|
|
#:configure-flags '("ac_cv_path_GREP=grep")
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "./hello"))))))))
|
|
|
|
|
|
2019-11-22 20:06:06 +00:00
|
|
|
|
(define binutils-mesboot
|
|
|
|
|
(package
|
2021-04-06 02:10:30 +00:00
|
|
|
|
(inherit binutils-mesboot1)
|
2019-11-22 20:06:06 +00:00
|
|
|
|
(name "binutils-mesboot")
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(native-inputs (%boot-mesboot2-inputs))))
|
|
|
|
|
|
|
|
|
|
;; Sadly we have to introduce Gawk here. The "versions.awk" script of
|
|
|
|
|
;; glibc 2.16.0 is too complicated for Gash-Utils. This is the version
|
|
|
|
|
;; of Gawk used previously during bootstrap. It's possible that a newer
|
|
|
|
|
;; version would work, too, but this one was already ready to go.
|
|
|
|
|
(define gawk-mesboot
|
|
|
|
|
(package
|
|
|
|
|
(inherit gawk)
|
|
|
|
|
(name "gawk-mesboot")
|
|
|
|
|
(version "3.1.8")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/gawk/gawk-"
|
|
|
|
|
version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"03d5y7jabq7p2s7ys9alay9446mm7i5g2wvy8nlicardgb6b6ii1"))))
|
|
|
|
|
(native-inputs (%boot-mesboot2-inputs))
|
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:parallel-build? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:configure-flags '("ac_cv_func_connect=no")
|
|
|
|
|
#:make-flags '("gawk")
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "./gawk" "--version")))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bin (string-append out "/bin")))
|
|
|
|
|
(install-file "gawk" bin)
|
|
|
|
|
(symlink "gawk" (string-append bin "/awk"))))))))))
|
2019-11-22 20:06:06 +00:00
|
|
|
|
|
2019-11-22 21:00:58 +00:00
|
|
|
|
(define (%boot-mesboot3-inputs)
|
|
|
|
|
`(("binutils" ,binutils-mesboot)
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
("gawk" ,gawk-mesboot)
|
2019-11-22 21:00:58 +00:00
|
|
|
|
,@(alist-delete "binutils" (%boot-mesboot2-inputs))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define glibc-headers-mesboot
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit glibc-mesboot0)
|
|
|
|
|
(name "glibc-headers-mesboot")
|
|
|
|
|
(version "2.16.0")
|
|
|
|
|
(source (bootstrap-origin
|
|
|
|
|
(origin
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/glibc/glibc-"
|
|
|
|
|
version
|
|
|
|
|
".tar.gz"))
|
|
|
|
|
(patches (search-patches "glibc-boot-2.16.0.patch"
|
|
|
|
|
"glibc-bootstrap-system-2.16.0.patch"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2019-10-11 15:23:13 +00:00
|
|
|
|
"0vlz4x6cgz7h54qq4528q526qlhnsjzbsvgc4iizn76cb0bfanx7")))))
|
2019-11-22 21:10:16 +00:00
|
|
|
|
(native-inputs `(("headers" ,mesboot-headers)
|
|
|
|
|
,@(%boot-mesboot3-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
|
|
|
|
(substitute-keyword-arguments (package-arguments glibc-mesboot0)
|
|
|
|
|
((#:configure-flags configure-flags)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(let ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(headers (assoc-ref %build-inputs "headers")))
|
|
|
|
|
(list
|
|
|
|
|
(string-append "--prefix=" out)
|
|
|
|
|
"--disable-obsolete-rpc"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
(string-append "--with-headers=" headers "/include")
|
|
|
|
|
"--enable-static-nss"
|
|
|
|
|
"--with-pthread"
|
|
|
|
|
"--without-cvs"
|
|
|
|
|
"--without-gd"
|
|
|
|
|
"--enable-add-ons=nptl"
|
|
|
|
|
;; avoid: configure: error: confusing output from nm -u
|
|
|
|
|
"libc_cv_predef_stack_protector=no")))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:make-flags make-flags)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(list "install-bootstrap-headers=yes" "install-headers"))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:phases phases)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(delete 'apply-boot-patch)
|
|
|
|
|
(delete 'fixup-configure)
|
|
|
|
|
(delete 'set-path)
|
|
|
|
|
(replace 'unpack
|
|
|
|
|
(lambda* (#:key source #:allow-other-keys)
|
|
|
|
|
(invoke "tar" "xvf" source)
|
|
|
|
|
(chdir (string-append "glibc-" #$version))))
|
|
|
|
|
(replace 'setenv
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let* ((headers (assoc-ref inputs "headers"))
|
|
|
|
|
(libc (assoc-ref inputs "libc"))
|
|
|
|
|
(gcc (assoc-ref inputs "gcc"))
|
|
|
|
|
(cppflags (string-append
|
|
|
|
|
" -I " (getcwd) "/nptl/sysdeps/pthread/bits"
|
|
|
|
|
" -D BOOTSTRAP_GLIBC=1"))
|
|
|
|
|
(cflags (string-append " -L " (getcwd)
|
|
|
|
|
" -L " libc "/lib")))
|
|
|
|
|
(setenv "libc_cv_friendly_stddef" "yes")
|
|
|
|
|
(setenv "CONFIG_SHELL" (which "sh"))
|
|
|
|
|
(setenv "SHELL" (which "sh"))
|
|
|
|
|
|
|
|
|
|
(setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags))
|
|
|
|
|
(setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags))
|
|
|
|
|
(setenv "LD" "gcc")
|
|
|
|
|
|
|
|
|
|
;; avoid -fstack-protector
|
|
|
|
|
(setenv "libc_cv_ssp" "false")
|
|
|
|
|
(substitute* "configure"
|
|
|
|
|
(("/bin/pwd") "pwd")))))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs make-flags #:allow-other-keys)
|
|
|
|
|
(let ((kernel-headers (assoc-ref %build-inputs "kernel-headers"))
|
|
|
|
|
(out (assoc-ref outputs "out")))
|
|
|
|
|
(apply invoke "make" make-flags)
|
|
|
|
|
(copy-recursively kernel-headers out))))
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(add-before 'configure 'remove-bashism
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "sysdeps/unix/make-syscalls.sh"
|
|
|
|
|
(("\\$[{]vdso_symver//\\./_[}]")
|
|
|
|
|
"$(echo $vdso_symver | sed -e 's/\\./_/g')"))))
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(replace 'configure
|
|
|
|
|
(lambda* (#:key configure-flags #:allow-other-keys)
|
|
|
|
|
(format (current-error-port) "running ../configure ~a\n"
|
|
|
|
|
(string-join configure-flags))
|
|
|
|
|
(mkdir-p "build")
|
|
|
|
|
(chdir "build")
|
|
|
|
|
(apply invoke "../configure" configure-flags)))
|
|
|
|
|
(add-after 'configure 'remove-sunrpc
|
|
|
|
|
(lambda _
|
|
|
|
|
(let* ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(shell (string-append bash "/bin/bash")))
|
|
|
|
|
|
|
|
|
|
(let ((Makefile (open-file "Makefile" "a")))
|
|
|
|
|
(display (string-append "
|
2019-11-22 21:10:16 +00:00
|
|
|
|
|
|
|
|
|
SHELL := " shell "
|
|
|
|
|
")
|
2021-07-01 12:22:26 +00:00
|
|
|
|
Makefile)
|
|
|
|
|
(close Makefile))
|
|
|
|
|
(substitute* "../Makefile"
|
|
|
|
|
(("^SHELL := /bin/sh") (string-append "SHELL := " shell)))
|
|
|
|
|
(substitute* "../Makeconfig"
|
|
|
|
|
(("^SHELL := /bin/sh") (string-append "SHELL := " shell)))
|
|
|
|
|
(substitute* "../elf/Makefile"
|
|
|
|
|
(("^SHELL := /bin/sh") (string-append "SHELL := " shell)))
|
|
|
|
|
(invoke "make" (string-append (getcwd) "/sysd-sorted" ))
|
|
|
|
|
(substitute* "sysd-sorted"
|
|
|
|
|
((" sunrpc") " ")
|
|
|
|
|
((" nis") " ")))))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define glibc-mesboot
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit glibc-headers-mesboot)
|
|
|
|
|
(name "glibc-mesboot")
|
2019-11-22 21:16:22 +00:00
|
|
|
|
(native-inputs `(("headers" ,glibc-headers-mesboot)
|
|
|
|
|
,@(%boot-mesboot3-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
2019-11-22 21:16:22 +00:00
|
|
|
|
`(#:validate-runpath? #f ; fails when using --enable-shared
|
2019-10-11 15:23:13 +00:00
|
|
|
|
,@(substitute-keyword-arguments (package-arguments glibc-headers-mesboot)
|
|
|
|
|
((#:make-flags make-flags)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(let ((bash (assoc-ref %build-inputs "bash")))
|
|
|
|
|
(list (string-append "SHELL=" bash "/bin/sh"))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:phases phases)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(modify-phases #$phases
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(add-after 'unpack 'simplify-intl-tests
|
|
|
|
|
(lambda _
|
|
|
|
|
;; The bootstrap Guile (2.0.9) crashes trying to
|
|
|
|
|
;; perform a regex on non-ASCII text. This gets
|
|
|
|
|
;; triggered by 'intl/po2test.sed' running over
|
|
|
|
|
;; 'po/de.po'. If we ever remove the bootstrap
|
|
|
|
|
;; Guile or add pure-Scheme regex to Gash, this can
|
|
|
|
|
;; be removed.
|
|
|
|
|
(substitute* '("catgets/Makefile"
|
|
|
|
|
"intl/Makefile")
|
|
|
|
|
(("de\\.po") "en_GB.po"))))
|
2021-07-01 12:22:26 +00:00
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs make-flags #:allow-other-keys)
|
|
|
|
|
(let* ((kernel-headers (assoc-ref %build-inputs "kernel-headers"))
|
|
|
|
|
(out (assoc-ref outputs "out"))
|
|
|
|
|
(install-flags (cons "install" make-flags)))
|
|
|
|
|
(apply invoke "make" install-flags)
|
|
|
|
|
(copy-recursively kernel-headers out)))))))))))
|
2019-11-22 21:16:22 +00:00
|
|
|
|
|
|
|
|
|
(define (%boot-mesboot4-inputs)
|
|
|
|
|
`(("libc" ,glibc-mesboot)
|
|
|
|
|
,@(alist-delete "libc" (%boot-mesboot3-inputs))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-11-22 21:27:22 +00:00
|
|
|
|
(define gcc-mesboot1-wrapper
|
|
|
|
|
;; We need this so gcc-mesboot1 can be used to create shared binaries that
|
|
|
|
|
;; have the correct interpreter, otherwise configuring gcc-mesboot using
|
|
|
|
|
;; --enable-shared will fail.
|
|
|
|
|
(package
|
|
|
|
|
(inherit gcc-mesboot1)
|
|
|
|
|
(name "gcc-mesboot1-wrapper")
|
|
|
|
|
(source #f)
|
|
|
|
|
(inputs '())
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(native-inputs `(("bash" ,gash-boot)
|
|
|
|
|
("coreutils" ,gash-utils-boot)
|
2019-11-22 21:27:22 +00:00
|
|
|
|
("libc" ,glibc-mesboot)
|
|
|
|
|
("gcc" ,gcc-mesboot1)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(delete 'unpack)
|
|
|
|
|
(delete 'configure)
|
|
|
|
|
(delete 'install)
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(libc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(gcc (assoc-ref %build-inputs "gcc"))
|
|
|
|
|
(bin (string-append out "/bin")))
|
|
|
|
|
(mkdir-p bin)
|
|
|
|
|
(for-each
|
|
|
|
|
(lambda (program)
|
|
|
|
|
(let ((wrapper (string-append bin "/" program)))
|
|
|
|
|
(with-output-to-file wrapper
|
|
|
|
|
(lambda _
|
|
|
|
|
(display (string-append "#! " bash "/bin/bash
|
|
|
|
|
exec " gcc "/bin/" program
|
|
|
|
|
" -Wl,--dynamic-linker"
|
|
|
|
|
;; also for x86_64-linux, we are still on i686-linux
|
|
|
|
|
" -Wl," libc ,(glibc-dynamic-linker "i686-linux")
|
|
|
|
|
" -Wl,--rpath"
|
|
|
|
|
" -Wl," libc "/lib"
|
|
|
|
|
" \"$@\"
|
|
|
|
|
"))
|
|
|
|
|
(chmod wrapper #o555)))))
|
|
|
|
|
'("cpp"
|
|
|
|
|
"gcc"
|
|
|
|
|
"g++"
|
|
|
|
|
"i686-unknown-linux-gnu-cpp"
|
|
|
|
|
"i686-unknown-linux-gnu-gcc"
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
"i686-unknown-linux-gnu-g++")))))
|
2019-11-22 21:27:22 +00:00
|
|
|
|
(replace 'check
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bin (string-append out "/bin"))
|
|
|
|
|
(program (string-append bin "/gcc")))
|
|
|
|
|
(invoke program "--help")))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define gcc-mesboot
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gcc-mesboot1)
|
|
|
|
|
(name "gcc-mesboot")
|
2020-02-04 08:35:32 +00:00
|
|
|
|
(version (package-version gcc-4.9))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(source (bootstrap-origin (package-source gcc-4.9)))
|
2019-11-22 21:31:06 +00:00
|
|
|
|
(native-inputs `(("gcc-wrapper" ,gcc-mesboot1-wrapper)
|
|
|
|
|
("headers" ,glibc-headers-mesboot)
|
|
|
|
|
,@(%boot-mesboot4-inputs)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:validate-runpath? #f
|
|
|
|
|
,@(substitute-keyword-arguments (package-arguments gcc-mesboot1)
|
|
|
|
|
((#:configure-flags configure-flags)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(let ((out (assoc-ref %outputs "out"))
|
|
|
|
|
(glibc (assoc-ref %build-inputs "libc")))
|
|
|
|
|
(list (string-append "--prefix=" out)
|
|
|
|
|
"--build=i686-unknown-linux-gnu"
|
|
|
|
|
"--host=i686-unknown-linux-gnu"
|
|
|
|
|
|
|
|
|
|
"--with-host-libstdcxx=-lsupc++"
|
|
|
|
|
|
|
|
|
|
(string-append "--with-native-system-header-dir=" glibc "/include")
|
|
|
|
|
(string-append "--with-build-sysroot=" glibc "/include")
|
|
|
|
|
|
|
|
|
|
"--disable-bootstrap"
|
|
|
|
|
"--disable-decimal-float"
|
|
|
|
|
"--disable-libatomic"
|
|
|
|
|
"--disable-libcilkrts"
|
|
|
|
|
"--disable-libgomp"
|
|
|
|
|
"--disable-libitm"
|
|
|
|
|
"--disable-libmudflap"
|
|
|
|
|
"--disable-libquadmath"
|
|
|
|
|
"--disable-libsanitizer"
|
|
|
|
|
"--disable-libssp"
|
|
|
|
|
"--disable-libvtv"
|
|
|
|
|
"--disable-lto"
|
|
|
|
|
"--disable-lto-plugin"
|
|
|
|
|
"--disable-multilib"
|
|
|
|
|
"--disable-plugin"
|
|
|
|
|
"--disable-threads"
|
|
|
|
|
"--enable-languages=c,c++"
|
|
|
|
|
|
|
|
|
|
"--enable-static"
|
|
|
|
|
"--enable-shared"
|
|
|
|
|
"--enable-threads=single"
|
|
|
|
|
|
|
|
|
|
;; No pre-compiled libstdc++ headers, to save space.
|
|
|
|
|
"--disable-libstdcxx-pch"
|
|
|
|
|
|
|
|
|
|
;; for libcpp ...
|
|
|
|
|
"--disable-build-with-cxx")))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:phases phases)
|
2021-07-01 12:22:26 +00:00
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(delete 'apply-boot-patch)
|
|
|
|
|
(delete 'unpack-g++) ; sadly, gcc-4.9.4 does not provide
|
|
|
|
|
; modular core/language downloads
|
|
|
|
|
(replace 'setenv
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(binutils (assoc-ref %build-inputs "binutils"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(gcc (assoc-ref %build-inputs "gcc"))
|
|
|
|
|
(glibc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(kernel-headers (assoc-ref %build-inputs "kernel-headers")))
|
|
|
|
|
(setenv "CONFIG_SHELL" (string-append bash "/bin/sh"))
|
|
|
|
|
(setenv "C_INCLUDE_PATH" (string-append
|
|
|
|
|
gcc "/lib/gcc-lib/i686-unknown-linux-gnu/4.6.4/include"
|
|
|
|
|
":" kernel-headers "/include"
|
|
|
|
|
":" glibc "/include"
|
|
|
|
|
":" (getcwd) "/mpfr/src"))
|
|
|
|
|
(setenv "CPLUS_INCLUDE_PATH" (string-append
|
|
|
|
|
gcc "/lib/gcc-lib/i686-unknown-linux-gnu/4.6.4/include"
|
|
|
|
|
":" kernel-headers "/include"
|
|
|
|
|
":" glibc "/include"
|
|
|
|
|
":" (getcwd) "/mpfr/src"))
|
|
|
|
|
(setenv "LIBRARY_PATH" (string-append glibc "/lib"
|
|
|
|
|
":" gcc "/lib"))
|
|
|
|
|
(format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH"))
|
|
|
|
|
(format (current-error-port) "CPLUS_INCLUDE_PATH=~a\n" (getenv "CPLUS_INCLUDE_PATH"))
|
|
|
|
|
(format (current-error-port) "LIBRARY_PATH=~a\n"
|
|
|
|
|
(getenv "LIBRARY_PATH"))))))))))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
|
|
|
|
(define gcc-mesboot-wrapper
|
|
|
|
|
;; We need this so gcc-mesboot can be used to create shared binaries that
|
|
|
|
|
;; have the correct interpreter and runpath to libc.
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gcc-mesboot1-wrapper)
|
|
|
|
|
(name "gcc-mesboot-wrapper")
|
|
|
|
|
(version (package-version gcc-mesboot))
|
|
|
|
|
(source #f)
|
|
|
|
|
(inputs '())
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(native-inputs `(("bash" ,gash-boot)
|
|
|
|
|
("coreutils" ,gash-utils-boot)
|
2019-10-11 15:23:13 +00:00
|
|
|
|
("libc" ,glibc-mesboot)
|
|
|
|
|
("gcc" ,gcc-mesboot)))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2019-11-22 21:34:32 +00:00
|
|
|
|
(define (%boot-mesboot5-inputs)
|
|
|
|
|
`(("gcc-wrapper" ,gcc-mesboot-wrapper)
|
|
|
|
|
("gcc" ,gcc-mesboot)
|
|
|
|
|
,@(fold alist-delete (%boot-mesboot4-inputs) '("gcc" "gcc-wrapper"))))
|
|
|
|
|
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(define (mesboot-package name pkg)
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(inherit pkg)
|
|
|
|
|
(name name)
|
|
|
|
|
(source (bootstrap-origin (package-source pkg)))
|
2019-11-22 21:36:22 +00:00
|
|
|
|
(native-inputs (%boot-mesboot5-inputs))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
2019-11-22 21:36:22 +00:00
|
|
|
|
(inputs '())
|
|
|
|
|
(propagated-inputs '())
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(arguments
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
(ensure-keyword-arguments (package-arguments pkg)
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:tests? #f)))))
|
|
|
|
|
|
|
|
|
|
;; These packages are needed to complete the rest of the bootstrap.
|
|
|
|
|
;; In the future, Gash et al. could handle it directly, but it's not
|
|
|
|
|
;; ready yet.
|
|
|
|
|
(define bash-mesboot (mesboot-package "bash-mesboot" static-bash))
|
|
|
|
|
(define sed-mesboot (mesboot-package "sed-mesboot" sed))
|
|
|
|
|
|
2022-06-25 19:01:32 +00:00
|
|
|
|
;; "sed" from Gash-Utils lacks the 'w' command as of 0.2.0.
|
|
|
|
|
(define coreutils-mesboot
|
|
|
|
|
(let ((pkg (mesboot-package "coreutils-mesboot" coreutils)))
|
|
|
|
|
(package
|
|
|
|
|
(inherit pkg)
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("sed" ,sed-mesboot)
|
|
|
|
|
,@(package-native-inputs pkg))))))
|
|
|
|
|
|
2022-09-05 08:31:29 +00:00
|
|
|
|
(define grep-mesboot
|
|
|
|
|
(let ((pkg (mesboot-package "grep-mesboot" grep)))
|
|
|
|
|
(package
|
|
|
|
|
(inherit pkg)
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("sed" ,sed-mesboot)
|
|
|
|
|
,@(package-native-inputs pkg))))))
|
|
|
|
|
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
;; The XZ implementation in Bootar cannot decompress 'tar'.
|
|
|
|
|
(define xz-mesboot
|
|
|
|
|
(let ((pkg (mesboot-package "xz-mesboot" xz)))
|
|
|
|
|
(package
|
|
|
|
|
(inherit pkg)
|
|
|
|
|
(arguments
|
|
|
|
|
(ensure-keyword-arguments (package-arguments pkg)
|
|
|
|
|
;; XXX: This fails even though the
|
|
|
|
|
;; actual runpaths seem fine.
|
|
|
|
|
`(#:validate-runpath? #f))))))
|
|
|
|
|
|
|
|
|
|
;; We don't strictly need Tar here, but it allows us to get rid of
|
|
|
|
|
;; Bootar and Gash-Utils and continue with the standard GNU tools.
|
|
|
|
|
(define tar-mesboot
|
|
|
|
|
(let ((pkg (mesboot-package "tar-mesboot" tar)))
|
|
|
|
|
(package
|
|
|
|
|
(inherit pkg)
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("xz" ,xz-mesboot)
|
|
|
|
|
,@(package-native-inputs pkg))))))
|
2019-11-22 21:36:22 +00:00
|
|
|
|
|
|
|
|
|
(define (%boot-mesboot6-inputs)
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
`(("bash" ,bash-mesboot)
|
|
|
|
|
("coreutils" ,coreutils-mesboot)
|
|
|
|
|
("grep" ,grep-mesboot)
|
|
|
|
|
("sed" ,sed-mesboot)
|
|
|
|
|
("tar" ,tar-mesboot)
|
|
|
|
|
("xz" ,xz-mesboot)
|
2019-11-22 21:36:22 +00:00
|
|
|
|
,@(fold alist-delete (%boot-mesboot5-inputs)
|
gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2021-04-09 20:03:55 +00:00
|
|
|
|
'("bash" "coreutils" "bootar" "kernel-headers"))))
|
bootstrap: Add Mes bootstrap.
* gnu/packages/patches/mes-nyacc-0.86.0.patch: Support bootstrap build.
* gnu/packages/commencement.scm (%fake-bootstrap mes-boot0, mescc-tools-boot,
nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot,
binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0,
gcc-mesboot0, binutils-mesboot, make-mesboot, gmp-boot, mpfr-boot, mpc-boot,
gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot,
gcc-mesboot, gcc-mesboot-wrapper, m4-mesboot): New variable.
* gnu/packages/patches/binutils-boot-2.20.1a.patch: New file. New file.
* gnu/packages/patches/gcc-boot-2.95.3.patch: New file.
* gnu/packages/patches/gcc-boot-4.7.4.patch: New file.
* gnu/packages/patches/glibc-boot-2.16.0.patch: New file.
* gnu/packages/patches/glibc-boot-2.2.5.patch: New file.
* gnu/packages/patches/glibc-bootstrap-system-2.16.0.patch: New file.
* gnu/packages/patches/tcc-boot-0.9.27.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
2018-09-09 12:52:00 +00:00
|
|
|
|
|
2018-09-09 11:33:41 +00:00
|
|
|
|
(define (%bootstrap-inputs+toolchain)
|
2019-11-22 21:39:14 +00:00
|
|
|
|
;; The traditional bootstrap-inputs. For the i686-linux, x86_64-linux
|
|
|
|
|
;; Scheme-only bootstrap the actual reduced set with bootstrapped toolchain.
|
2019-06-17 10:10:24 +00:00
|
|
|
|
(match (%current-system)
|
|
|
|
|
((or "i686-linux" "x86_64-linux")
|
2019-11-22 21:39:14 +00:00
|
|
|
|
(%boot-mesboot6-inputs))
|
2019-06-17 10:10:24 +00:00
|
|
|
|
(_
|
|
|
|
|
(%bootstrap-inputs))))
|
2018-09-09 11:33:41 +00:00
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define gnu-make-boot0
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gnu-make)
|
2021-03-09 13:47:07 +00:00
|
|
|
|
(outputs (delete "debug" (package-outputs gnu-make)))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(source (bootstrap-origin (package-source gnu-make)))
|
|
|
|
|
(name "make-boot0")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:tests? #f ; cannot run "make check"
|
|
|
|
|
,@(substitute-keyword-arguments (package-arguments gnu-make)
|
2020-01-20 17:13:53 +00:00
|
|
|
|
((#:configure-flags flags ''())
|
|
|
|
|
;; The generated config.status has some problems due to the
|
|
|
|
|
;; bootstrap environment. Disable dependency tracking to work
|
|
|
|
|
;; around it.
|
2021-07-03 22:05:57 +00:00
|
|
|
|
`(cons "--disable-dependency-tracking"
|
|
|
|
|
|
|
|
|
|
;; 'glibc-bootstrap' on non-x86 platforms has a buggy
|
|
|
|
|
;; 'posix_spawn'. Thus, disable it. See
|
|
|
|
|
;; <https://bugs.gnu.org/49367>.
|
|
|
|
|
,(match (%current-system)
|
|
|
|
|
((or "i686-linux" "x86_64-linux")
|
|
|
|
|
flags)
|
|
|
|
|
(_
|
|
|
|
|
`(cons "--disable-posix-spawn" ,flags)))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
((#:phases phases)
|
|
|
|
|
`(modify-phases ,phases
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda _
|
|
|
|
|
(invoke "./build.sh")))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
|
|
|
(bin (string-append out "/bin")))
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(install-file "make" bin)))))))))
|
2019-10-11 15:23:13 +00:00
|
|
|
|
(native-inputs '()) ; no need for 'pkg-config'
|
|
|
|
|
(inputs (%bootstrap-inputs+toolchain))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2019-11-23 08:11:57 +00:00
|
|
|
|
(define bzip2-boot0
|
|
|
|
|
(package
|
|
|
|
|
(inherit bzip2)
|
|
|
|
|
(name "bzip2-boot0")
|
|
|
|
|
(native-inputs `())
|
|
|
|
|
(inputs
|
2020-02-18 10:35:28 +00:00
|
|
|
|
`(("diffutils" ,diffutils-boot0)
|
|
|
|
|
("make" ,gnu-make-boot0)
|
2019-11-23 08:11:57 +00:00
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
,@(package-arguments bzip2)))))
|
|
|
|
|
|
2019-11-23 10:18:12 +00:00
|
|
|
|
(define coreutils-boot0
|
|
|
|
|
(package
|
|
|
|
|
(inherit coreutils)
|
2021-03-09 13:47:35 +00:00
|
|
|
|
(outputs (delete "debug" (package-outputs coreutils)))
|
2019-11-23 10:18:12 +00:00
|
|
|
|
(source (bootstrap-origin (package-source coreutils)))
|
|
|
|
|
(name "coreutils-boot0")
|
|
|
|
|
(native-inputs `())
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:tests? #f
|
|
|
|
|
#:implicit-inputs? #f
|
2023-03-15 13:11:15 +00:00
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
,@(package-arguments coreutils)
|
2023-02-12 19:11:02 +00:00
|
|
|
|
;; The %bootstrap-glibc for aarch64 and armhf doesn't have
|
|
|
|
|
;; $output/include/linux/prctl.h which causes some binaries
|
|
|
|
|
;; to fail to build with coreutils-9.0+.
|
2022-12-11 20:35:06 +00:00
|
|
|
|
,@(if (target-arm?)
|
|
|
|
|
`(#:configure-flags '(,(string-append
|
|
|
|
|
"--enable-no-install-program="
|
2023-02-12 19:11:02 +00:00
|
|
|
|
;; the defaults to not install.
|
2022-12-11 20:35:06 +00:00
|
|
|
|
"arch,coreutils,hostname"
|
2023-02-12 19:11:02 +00:00
|
|
|
|
;; fails due to missing headers.
|
2023-03-15 13:11:15 +00:00
|
|
|
|
",timeout,sort")
|
|
|
|
|
,@(if (target-arm32?)
|
|
|
|
|
`("--disable-year2038")
|
|
|
|
|
`())))
|
|
|
|
|
'())))))
|
2019-11-23 10:18:12 +00:00
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define diffutils-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit diffutils)
|
|
|
|
|
(name "diffutils-boot0")
|
2021-07-18 21:48:14 +00:00
|
|
|
|
(source (origin
|
|
|
|
|
(inherit (package-source diffutils))
|
|
|
|
|
(patches '()))) ;patches for tests unneeded here
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(native-inputs `())
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:tests? #f ; the test suite needs diffutils
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
2022-10-28 14:14:30 +00:00
|
|
|
|
,@(substitute-keyword-arguments (package-arguments diffutils)
|
|
|
|
|
((#:configure-flags flags ''())
|
|
|
|
|
(match (%current-system)
|
|
|
|
|
((or "arm-linux" "aarch64-linux")
|
2020-02-19 14:46:44 +00:00
|
|
|
|
;; The generated config.status has some problems due to the
|
|
|
|
|
;; bootstrap environment. Disable dependency tracking to work
|
|
|
|
|
;; around it.
|
2022-10-28 14:14:30 +00:00
|
|
|
|
`(cons "--disable-dependency-tracking" ,flags))
|
|
|
|
|
(_ flags))))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define findutils-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit findutils)
|
|
|
|
|
(name "findutils-boot0")
|
|
|
|
|
(source (bootstrap-origin (package-source findutils)))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
("diffutils" ,diffutils-boot0) ; for tests
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
2021-02-10 08:17:42 +00:00
|
|
|
|
;; Ignore test failure in gnulib for armhf/aarch64.
|
|
|
|
|
#:tests? ,(not (target-arm?))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
#:guile ,%bootstrap-guile
|
2019-11-30 03:41:12 +00:00
|
|
|
|
|
|
|
|
|
;; The build system assumes we have done a mistake when time_t is 32-bit
|
|
|
|
|
;; on a 64-bit system. Ignore that for our bootstrap toolchain.
|
2020-02-19 17:52:17 +00:00
|
|
|
|
,@(substitute-keyword-arguments (package-arguments findutils)
|
|
|
|
|
((#:configure-flags flags ''())
|
|
|
|
|
`(append
|
2021-06-12 20:23:43 +00:00
|
|
|
|
;; TODO: Figure out exactly with architectures need this.
|
2020-02-19 17:52:17 +00:00
|
|
|
|
,(if (target-64bit?)
|
|
|
|
|
''("TIME_T_32_BIT_OK=yes")
|
|
|
|
|
''())
|
|
|
|
|
,(match (%current-system)
|
|
|
|
|
((or "arm-linux" "aarch64-linux")
|
|
|
|
|
''("--disable-dependency-tracking"))
|
|
|
|
|
(_ ''()))
|
2021-01-15 13:00:00 +00:00
|
|
|
|
,flags))
|
|
|
|
|
((#:phases phases '%standard-phases)
|
|
|
|
|
`(modify-phases ,phases
|
2021-03-09 08:47:44 +00:00
|
|
|
|
;; 'test-fnmatch' fails when using glibc-mesboot@2.16, due
|
|
|
|
|
;; to incorrect handling of the [:alpha:] regexp character
|
|
|
|
|
;; class. Ignore it.
|
2021-07-02 09:47:17 +00:00
|
|
|
|
,@(if (member (%current-system)
|
|
|
|
|
'("x86_64-linux" "i686-linux"))
|
|
|
|
|
'((add-before 'check 'skip-fnmatch-test
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "gnulib-tests/Makefile"
|
|
|
|
|
(("^XFAIL_TESTS =")
|
|
|
|
|
"XFAIL_TESTS = test-fnmatch ")))))
|
2023-05-07 11:15:04 +00:00
|
|
|
|
'()))))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2020-02-17 20:56:05 +00:00
|
|
|
|
(define file
|
|
|
|
|
(package
|
|
|
|
|
(inherit (@ (gnu packages file) file))
|
|
|
|
|
(arguments
|
2020-02-19 15:41:38 +00:00
|
|
|
|
`(#:configure-flags
|
|
|
|
|
`("--disable-bzlib"
|
|
|
|
|
,,@(match (%current-system)
|
|
|
|
|
((or "arm-linux" "aarch64-linux")
|
|
|
|
|
'("--disable-dependency-tracking"))
|
|
|
|
|
(_ '())))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2014-08-28 18:22:15 +00:00
|
|
|
|
(define file-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit file)
|
|
|
|
|
(source (bootstrap-origin (package-source file)))
|
|
|
|
|
(name "file-boot0")
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
2020-02-17 20:56:05 +00:00
|
|
|
|
`(#:tests? #f ; merge test fails
|
|
|
|
|
#:implicit-inputs? #f
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
#:guile ,%bootstrap-guile
|
2019-12-13 22:12:56 +00:00
|
|
|
|
#:configure-flags '("--disable-bzlib")
|
2022-01-27 09:10:01 +00:00
|
|
|
|
#:make-flags '("CFLAGS+=-std=c11")
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
#:strip-binaries? #f
|
2020-02-17 20:56:05 +00:00
|
|
|
|
#:validate-runpath? #f
|
|
|
|
|
,@(package-arguments file)))))
|
2014-08-28 18:22:15 +00:00
|
|
|
|
|
2019-12-11 16:24:21 +00:00
|
|
|
|
(define gawk-boot0
|
|
|
|
|
(package
|
2020-09-20 11:07:55 +00:00
|
|
|
|
(inherit gawk)
|
2019-12-11 16:24:21 +00:00
|
|
|
|
(source (bootstrap-origin (package-source gawk)))
|
|
|
|
|
(name "gawk-boot0")
|
|
|
|
|
(native-inputs '())
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:tests? #f
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:strip-binaries? #f
|
|
|
|
|
#:validate-runpath? #f))))
|
|
|
|
|
|
2019-11-23 07:48:03 +00:00
|
|
|
|
(define patch-boot0
|
|
|
|
|
(package
|
|
|
|
|
(inherit patch)
|
|
|
|
|
(source (bootstrap-origin (package-source patch)))
|
|
|
|
|
(name "patch-boot0")
|
|
|
|
|
(native-inputs '())
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:tests? #f ; merge test fails
|
|
|
|
|
#:implicit-inputs? #f
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:strip-binaries? #f
|
|
|
|
|
#:validate-runpath? #f))))
|
2014-08-28 18:22:15 +00:00
|
|
|
|
|
2019-11-22 22:56:32 +00:00
|
|
|
|
(define sed-boot0
|
|
|
|
|
(package
|
|
|
|
|
(inherit sed)
|
|
|
|
|
(name "sed-boot0")
|
|
|
|
|
(source (bootstrap-origin (package-source sed)))
|
|
|
|
|
(native-inputs '())
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
,@(package-arguments sed)))))
|
|
|
|
|
|
2019-11-23 08:13:50 +00:00
|
|
|
|
(define tar-boot0
|
|
|
|
|
(package
|
|
|
|
|
(inherit tar)
|
|
|
|
|
(name "tar-boot0")
|
|
|
|
|
(source (bootstrap-origin (package-source tar)))
|
|
|
|
|
(native-inputs '())
|
|
|
|
|
(inputs
|
|
|
|
|
`(("make" ,gnu-make-boot0)
|
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
,@(package-arguments tar)))))
|
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(define (%boot0-inputs)
|
2020-02-19 14:33:44 +00:00
|
|
|
|
`(,@(match (%current-system)
|
|
|
|
|
((or "i686-linux" "x86_64-linux")
|
|
|
|
|
`(("bzip2" ,bzip2-boot0)
|
|
|
|
|
("coreutils" ,coreutils-boot0)
|
|
|
|
|
("gawk" ,gawk-boot0)
|
|
|
|
|
("patch" ,patch-boot0)
|
|
|
|
|
("sed" ,sed-boot0)
|
|
|
|
|
("tar" ,tar-boot0)))
|
|
|
|
|
(_ '()))
|
|
|
|
|
("make" ,gnu-make-boot0)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
("diffutils" ,diffutils-boot0)
|
|
|
|
|
("findutils" ,findutils-boot0)
|
2014-08-28 18:22:15 +00:00
|
|
|
|
("file" ,file-boot0)
|
2018-09-09 11:33:41 +00:00
|
|
|
|
,@(%bootstrap-inputs+toolchain)))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define* (boot-triplet #:optional (system (%current-system)))
|
|
|
|
|
;; Return the triplet used to create the cross toolchain needed in the
|
|
|
|
|
;; first bootstrapping stage.
|
|
|
|
|
(nix-system->gnu-triplet system "guix"))
|
|
|
|
|
|
|
|
|
|
;; Following Linux From Scratch, build a cross-toolchain in stage 0. That
|
|
|
|
|
;; toolchain actually targets the same OS and arch, but it has the advantage
|
2018-09-09 11:33:41 +00:00
|
|
|
|
;; of being independent of the libc and tools in
|
|
|
|
|
;; (%BOOTSTRAP-INPUTS+TOOLCHAIN), since GCC-BOOT0 (below) is built without any
|
|
|
|
|
;; reference to the target libc.
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define binutils-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit binutils)
|
|
|
|
|
(source (bootstrap-origin (package-source binutils)))
|
|
|
|
|
(name "binutils-cross-boot0")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
|
|
|
|
|
#:modules ((guix build gnu-build-system)
|
|
|
|
|
(guix build utils)
|
|
|
|
|
(ice-9 ftw)) ; for 'scandir'
|
|
|
|
|
#:phases (modify-phases %standard-phases
|
|
|
|
|
(add-after 'install 'add-symlinks
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
;; The cross-gcc invokes 'as', 'ld', etc, without the
|
|
|
|
|
;; triplet prefix, so add symlinks.
|
|
|
|
|
(let ((out (assoc-ref outputs "out"))
|
|
|
|
|
(triplet-prefix (string-append ,(boot-triplet) "-")))
|
|
|
|
|
(define (has-triplet-prefix? name)
|
|
|
|
|
(string-prefix? triplet-prefix name))
|
|
|
|
|
(define (remove-triplet-prefix name)
|
|
|
|
|
(substring name (string-length triplet-prefix)))
|
|
|
|
|
(with-directory-excursion (string-append out "/bin")
|
|
|
|
|
(for-each (lambda (name)
|
|
|
|
|
(symlink name (remove-triplet-prefix name)))
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(scandir "." has-triplet-prefix?)))))))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
|
|
|
|
|
,@(substitute-keyword-arguments (package-arguments binutils)
|
|
|
|
|
((#:configure-flags cf)
|
|
|
|
|
`(cons ,(string-append "--target=" (boot-triplet))
|
|
|
|
|
,cf)))))
|
|
|
|
|
(inputs (%boot0-inputs))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2016-12-12 00:01:13 +00:00
|
|
|
|
(define libstdc++-boot0
|
|
|
|
|
;; GCC's libcc1 is always built as a shared library (the top-level
|
|
|
|
|
;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer
|
|
|
|
|
;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on
|
2018-01-17 20:08:01 +00:00
|
|
|
|
;; C++14 features missing in some of our bootstrap compilers.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(let ((lib (make-libstdc++ gcc-4.9)))
|
2016-12-12 00:01:13 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit lib)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(source (bootstrap-origin (package-source lib)))
|
2016-12-12 00:01:13 +00:00
|
|
|
|
(name "libstdc++-boot0")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
|
|
|
|
|
;; XXX: libstdc++.so NEEDs ld.so for some reason.
|
|
|
|
|
#:validate-runpath? #f
|
|
|
|
|
|
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-09 12:53:48 +00:00
|
|
|
|
,@(match (%current-system)
|
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-19 15:23:09 +00:00
|
|
|
|
((or "i686-linux" "x86_64-linux")
|
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-09 12:53:48 +00:00
|
|
|
|
(substitute-keyword-arguments (package-arguments lib)
|
|
|
|
|
((#:phases phases)
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(add-after 'unpack 'workaround-wrapper-bug
|
|
|
|
|
;; XXX: The crude gcc-cross-wrapper causes "g++ -v" to
|
|
|
|
|
;; fail, which in turn confuses the configure script.
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "libstdc++-v3/configure"
|
|
|
|
|
(("g\\+\\+ -v") "true"))))))))
|
2022-07-18 18:54:13 +00:00
|
|
|
|
(_ (package-arguments lib)))
|
|
|
|
|
|
|
|
|
|
;; Explicitly add #:modules so MAKE-LIBSTDC++ can be changed
|
|
|
|
|
;; without a full bootstrap.
|
|
|
|
|
#:modules ((guix build gnu-build-system)
|
|
|
|
|
(guix build utils))))
|
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(inputs (%boot0-inputs))
|
2016-12-12 00:01:13 +00:00
|
|
|
|
(native-inputs '()))))
|
|
|
|
|
|
2021-07-25 12:58:38 +00:00
|
|
|
|
(define libstdc++-boot0-gcc7
|
|
|
|
|
;; GCC >= 7 is needed by architectures which use C++-14 features.
|
|
|
|
|
(let ((lib (make-libstdc++ gcc-7)))
|
|
|
|
|
(package
|
|
|
|
|
(inherit lib)
|
|
|
|
|
(source (bootstrap-origin (package-source lib)))
|
|
|
|
|
(name "libstdc++-boot0")
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
|
|
|
|
|
;; XXX: libstdc++.so NEEDs ld.so for some reason.
|
|
|
|
|
#:validate-runpath? #f
|
|
|
|
|
|
|
|
|
|
,@(substitute-keyword-arguments (package-arguments lib)
|
|
|
|
|
((#:phases phases)
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(add-after 'unpack 'unpack-gmp&co
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
|
|
|
|
|
(mpfr (assoc-ref %build-inputs "mpfr-source"))
|
|
|
|
|
(mpc (assoc-ref %build-inputs "mpc-source")))
|
|
|
|
|
|
|
|
|
|
;; To reduce the set of pre-built bootstrap inputs, build
|
|
|
|
|
;; GMP & co. from GCC.
|
|
|
|
|
(for-each (lambda (source)
|
|
|
|
|
(invoke "tar" "xvf" source))
|
|
|
|
|
(list gmp mpfr mpc))
|
|
|
|
|
|
|
|
|
|
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
|
|
|
|
|
#$@(map (lambda (lib)
|
|
|
|
|
;; Drop trailing letters, as gmp-6.0.0a unpacks
|
|
|
|
|
;; into gmp-6.0.0.
|
|
|
|
|
#~(symlink #$(string-trim-right
|
|
|
|
|
(package-full-name lib "-")
|
|
|
|
|
char-set:letter)
|
|
|
|
|
#$(package-name lib)))
|
|
|
|
|
(list gmp-6.0 mpfr mpc))))))))))
|
2021-07-25 12:58:38 +00:00
|
|
|
|
(inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
|
|
|
|
|
("mpfr-source" ,(bootstrap-origin (package-source mpfr)))
|
|
|
|
|
("mpc-source" ,(bootstrap-origin (package-source mpc)))
|
|
|
|
|
,@(%boot0-inputs)))
|
|
|
|
|
(native-inputs '()))))
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define gcc-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gcc)
|
|
|
|
|
(name "gcc-cross-boot0")
|
2021-03-09 13:47:56 +00:00
|
|
|
|
(outputs (delete "debug" (package-outputs gcc)))
|
2022-07-18 18:54:13 +00:00
|
|
|
|
(source
|
|
|
|
|
(bootstrap-origin
|
|
|
|
|
(origin
|
|
|
|
|
(inherit (package-source gcc))
|
|
|
|
|
(snippet
|
|
|
|
|
#~(begin
|
|
|
|
|
;; XXX: The GCC test suite contains files with non-ASCII file
|
|
|
|
|
;; names, which cannot be repacked by BOOTSTRAP-ORIGIN. Nor
|
|
|
|
|
;; can it be deleted from Guile, so resort to this evil hack.
|
|
|
|
|
#$(origin-snippet (package-source gcc))
|
2023-06-02 13:44:55 +00:00
|
|
|
|
(system* #$(file-append (let-system system
|
|
|
|
|
;; 'coreutils-boot0' is Linux-only.
|
|
|
|
|
(if (target-hurd? system)
|
|
|
|
|
%bootstrap-coreutils&co
|
|
|
|
|
coreutils-boot0))
|
|
|
|
|
"/bin/rm") "-rf"
|
2022-07-18 18:54:13 +00:00
|
|
|
|
"gcc/testsuite/go.test/test/fixedbugs/issue27836.dir"))))))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(arguments
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
(cons*
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:modules '((guix build gnu-build-system)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(guix build utils)
|
|
|
|
|
(ice-9 regex)
|
|
|
|
|
(srfi srfi-1)
|
|
|
|
|
(srfi srfi-26))
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
(substitute-keyword-arguments (package-arguments gcc)
|
|
|
|
|
((#:configure-flags flags)
|
|
|
|
|
#~(append (list #$(string-append "--target=" (boot-triplet))
|
|
|
|
|
|
|
|
|
|
;; No libc yet.
|
|
|
|
|
"--without-headers"
|
|
|
|
|
|
|
|
|
|
;; Disable features not needed at this stage.
|
|
|
|
|
"--disable-shared"
|
|
|
|
|
"--enable-languages=c,c++"
|
|
|
|
|
|
|
|
|
|
;; libstdc++ cannot be built at this stage
|
|
|
|
|
;; ("Link tests are not allowed after
|
|
|
|
|
;; GCC_NO_EXECUTABLES.").
|
|
|
|
|
"--disable-libstdc++-v3"
|
|
|
|
|
|
|
|
|
|
"--disable-threads"
|
|
|
|
|
"--disable-libmudflap"
|
|
|
|
|
"--disable-libatomic"
|
|
|
|
|
"--disable-libsanitizer"
|
|
|
|
|
"--disable-libitm"
|
|
|
|
|
"--disable-libgomp"
|
|
|
|
|
"--disable-libmpx"
|
|
|
|
|
"--disable-libcilkrts"
|
|
|
|
|
"--disable-libvtv"
|
|
|
|
|
"--disable-libssp"
|
|
|
|
|
"--disable-libquadmath"
|
|
|
|
|
"--disable-decimal-float")
|
|
|
|
|
(remove (cut string-match
|
|
|
|
|
"--(with-system-zlib|enable-languages.*)" <>)
|
|
|
|
|
#$flags)))
|
|
|
|
|
((#:make-flags flags)
|
|
|
|
|
`(let* ((libc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(libc-native (or (assoc-ref %build-inputs "libc-native")
|
|
|
|
|
libc)))
|
|
|
|
|
`(,(string-append "LDFLAGS="
|
|
|
|
|
"-Wl,-rpath=" libc-native "/lib "
|
|
|
|
|
"-Wl,-dynamic-linker "
|
|
|
|
|
"-Wl," libc-native ,(glibc-dynamic-linker
|
|
|
|
|
(match (%current-system)
|
|
|
|
|
("x86_64-linux" "i686-linux")
|
|
|
|
|
(_ (%current-system))))))))
|
|
|
|
|
((#:phases phases)
|
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(add-after 'unpack 'unpack-gmp&co
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
|
|
|
|
|
(mpfr (assoc-ref %build-inputs "mpfr-source"))
|
|
|
|
|
(mpc (assoc-ref %build-inputs "mpc-source")))
|
|
|
|
|
|
|
|
|
|
;; To reduce the set of pre-built bootstrap inputs, build
|
|
|
|
|
;; GMP & co. from GCC.
|
|
|
|
|
(for-each (lambda (source)
|
|
|
|
|
(invoke "tar" "xvf" source))
|
|
|
|
|
(list gmp mpfr mpc))
|
|
|
|
|
|
|
|
|
|
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
|
|
|
|
|
#$@(map (lambda (lib)
|
|
|
|
|
;; Drop trailing letters, as gmp-6.0.0a unpacks
|
|
|
|
|
;; into gmp-6.0.0.
|
|
|
|
|
#~(symlink #$(string-trim-right
|
|
|
|
|
(package-full-name lib "-")
|
|
|
|
|
char-set:letter)
|
|
|
|
|
#$(package-name lib)))
|
|
|
|
|
(list gmp-6.0 mpfr mpc)))))
|
|
|
|
|
#$(match (%current-system)
|
|
|
|
|
((or "i686-linux" "x86_64-linux")
|
|
|
|
|
#~(add-before 'configure 'fix-libcc1
|
2018-10-03 15:16:08 +00:00
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
;; libcc1.so NEEDs libgcc_s.so, so provide one here
|
|
|
|
|
;; to placate the 'validate-runpath' phase.
|
|
|
|
|
(substitute* "libcc1/Makefile.in"
|
|
|
|
|
(("la_LDFLAGS =")
|
|
|
|
|
(string-append "la_LDFLAGS = -Wl,-rpath="
|
|
|
|
|
(assoc-ref inputs "gcc") "/lib")))
|
|
|
|
|
;; XXX: "g++ -v" is broken (see also libstdc++ above).
|
|
|
|
|
(substitute* "libcc1/configure"
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(("g\\+\\+ -v") "true")))))
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
(_ #~(add-before 'configure 'return-true
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(lambda _ #t))))
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
(add-after 'install 'symlink-libgcc_eh
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(let ((out (assoc-ref outputs "lib")))
|
|
|
|
|
;; Glibc wants to link against libgcc_eh, so provide
|
|
|
|
|
;; it.
|
|
|
|
|
(with-directory-excursion
|
|
|
|
|
(string-append out "/lib/gcc/"
|
|
|
|
|
#$(boot-triplet)
|
|
|
|
|
"/" #$(package-version gcc))
|
|
|
|
|
(symlink "libgcc.a" "libgcc_eh.a"))))))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
|
|
|
|
|
("mpfr-source" ,(bootstrap-origin (package-source mpfr)))
|
|
|
|
|
("mpc-source" ,(bootstrap-origin (package-source mpc)))
|
|
|
|
|
("binutils-cross" ,binutils-boot0)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
;; The libstdc++ that libcc1 links against.
|
2021-07-25 12:58:38 +00:00
|
|
|
|
("libstdc++" ,(match (%current-system)
|
|
|
|
|
("riscv64-linux" libstdc++-boot0-gcc7)
|
|
|
|
|
(_ libstdc++-boot0)))
|
2016-12-12 00:01:13 +00:00
|
|
|
|
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
;; Call it differently so that the builder can check whether
|
|
|
|
|
;; the "libc" input is #f.
|
|
|
|
|
("libc-native" ,@(assoc-ref (%boot0-inputs) "libc"))
|
|
|
|
|
,@(alist-delete "libc" (%boot0-inputs))))
|
2016-06-07 08:52:04 +00:00
|
|
|
|
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
;; No need for the native-inputs to build the documentation at this stage.
|
2023-05-07 08:28:55 +00:00
|
|
|
|
(native-inputs '())))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define perl-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit perl)
|
|
|
|
|
(name "perl-boot0")
|
|
|
|
|
(source (bootstrap-origin (package-source perl)))
|
|
|
|
|
(inputs (%boot0-inputs))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:validate-runpath? #f
|
|
|
|
|
|
|
|
|
|
;; At the very least, this must not depend on GCC & co.
|
|
|
|
|
#:disallowed-references ,(list %bootstrap-binutils)
|
|
|
|
|
|
|
|
|
|
,@(substitute-keyword-arguments (package-arguments perl)
|
|
|
|
|
((#:phases phases)
|
|
|
|
|
`(modify-phases ,phases
|
|
|
|
|
;; Pthread support is missing in the bootstrap compiler
|
|
|
|
|
;; (broken spec file), so disable it.
|
|
|
|
|
(add-before 'configure 'disable-pthreads
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "Configure"
|
|
|
|
|
(("^libswanted=(.*)pthread" _ before)
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(string-append "libswanted=" before)))))))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
;; Do not configure with '-Dusethreads' since pthread
|
|
|
|
|
;; support is missing.
|
|
|
|
|
((#:configure-flags configure-flags)
|
|
|
|
|
`(delete "-Dusethreads" ,configure-flags)))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2018-09-09 11:44:43 +00:00
|
|
|
|
(define m4-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit m4)
|
|
|
|
|
(name "m4-boot0")
|
|
|
|
|
(source (bootstrap-origin (package-source m4)))
|
|
|
|
|
(inputs (%boot0-inputs))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
2022-06-28 07:15:06 +00:00
|
|
|
|
,@(package-arguments m4)
|
2023-05-29 17:37:18 +00:00
|
|
|
|
;; Ignore test failure in gnulib for armhf/aarch64 and Hurd
|
|
|
|
|
#:tests? ,(and (not (target-arm?))
|
|
|
|
|
(not (target-hurd?)))))))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
|
2016-06-24 13:10:15 +00:00
|
|
|
|
(define bison-boot0
|
|
|
|
|
;; This Bison is needed to build MiG so we need it early in the process.
|
2019-07-01 15:24:33 +00:00
|
|
|
|
;; Recent versions of Linux-Libre headers also depend on this.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit bison)
|
2019-10-14 13:38:23 +00:00
|
|
|
|
(name "bison-boot0")
|
2019-10-14 13:37:25 +00:00
|
|
|
|
(propagated-inputs `(("m4" ,m4-boot0)))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(native-inputs `(("perl" ,perl-boot0)))
|
|
|
|
|
(inputs (%boot0-inputs)) ;remove Flex...
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:tests? #f ;... and thus disable tests
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
|
|
|
|
|
;; Zero timestamps in liby.a; this must be done
|
|
|
|
|
;; explicitly here because the bootstrap Binutils don't
|
|
|
|
|
;; do that (default is "cru".)
|
|
|
|
|
#:make-flags `("ARFLAGS=crD"
|
|
|
|
|
,,(match (%current-system)
|
|
|
|
|
;; ranlib: '-D': No such file
|
|
|
|
|
((or "i686-linux" "x86_64-linux")
|
|
|
|
|
"RANLIB=ranlib")
|
|
|
|
|
(_
|
|
|
|
|
"RANLIB=ranlib -D"))
|
2019-10-14 13:40:35 +00:00
|
|
|
|
"V=1")
|
|
|
|
|
|
2021-07-05 10:50:08 +00:00
|
|
|
|
;; 'glibc-bootstrap' on non-x86 platforms has a buggy 'posix_spawn'.
|
|
|
|
|
;; Thus, use the Gnulib replacement instead. See
|
|
|
|
|
;; <https://bugs.gnu.org/49367>.
|
|
|
|
|
,@(match (%current-system)
|
|
|
|
|
((or "i686-linux" "x86_64-linux")
|
|
|
|
|
'())
|
|
|
|
|
(_
|
|
|
|
|
'(#:configure-flags '("gl_cv_func_posix_spawn_works=no"))))
|
|
|
|
|
|
2019-10-14 13:40:35 +00:00
|
|
|
|
,@(package-arguments bison)))))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
|
|
|
|
(define flex-boot0
|
2019-07-01 15:24:33 +00:00
|
|
|
|
;; This Flex is needed to build MiG as well as Linux-Libre headers.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit flex)
|
|
|
|
|
(native-inputs `(("bison" ,bison-boot0)))
|
2019-10-14 13:37:25 +00:00
|
|
|
|
(propagated-inputs `(("m4" ,m4-boot0)))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(inputs (%boot0-inputs))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:tests? #f))))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(define-syntax define/system-dependent
|
|
|
|
|
(lambda (s)
|
|
|
|
|
"Bind IDENTIFIER to EXP, where the value of EXP is known to depend on
|
|
|
|
|
'%current-system'. The definition ensures that (1) EXP is \"thunked\" so that
|
|
|
|
|
it sees the right value of '%current-system', and (2) that its result is
|
|
|
|
|
memoized as a function of '%current-system'."
|
|
|
|
|
(syntax-case s ()
|
|
|
|
|
((_ identifier exp)
|
|
|
|
|
(with-syntax ((memoized (datum->syntax #'identifier
|
|
|
|
|
(symbol-append
|
|
|
|
|
(syntax->datum #'identifier)
|
|
|
|
|
'/memoized))))
|
|
|
|
|
#'(begin
|
|
|
|
|
(define memoized
|
|
|
|
|
(mlambda (system) exp))
|
|
|
|
|
(define-syntax identifier
|
|
|
|
|
(identifier-syntax (memoized (%current-system))))))))))
|
|
|
|
|
|
|
|
|
|
(define/system-dependent linux-libre-headers-boot0
|
|
|
|
|
;; Note: this is wrapped in a thunk to nicely handle circular dependencies
|
|
|
|
|
;; between (gnu packages linux) and this module. Additionally, memoize
|
|
|
|
|
;; the result to play well with further memoization and code that relies
|
|
|
|
|
;; on pointer identity; see <https://bugs.gnu.org/30155>.
|
|
|
|
|
(package
|
|
|
|
|
(inherit linux-libre-headers)
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
2022-06-25 18:59:01 +00:00
|
|
|
|
,@(substitute-keyword-arguments (package-arguments linux-libre-headers)
|
|
|
|
|
((#:phases phases)
|
|
|
|
|
`(modify-phases ,phases
|
|
|
|
|
(add-after 'unpack 'lower-version-requirements
|
|
|
|
|
(lambda _
|
|
|
|
|
;; Pacify version checks so it works with the bootstrap
|
|
|
|
|
;; toolchain, since we are not building the full kernel.
|
|
|
|
|
(substitute* "scripts/min-tool-version.sh"
|
|
|
|
|
(("echo 5\\.1\\.0") ;GCC
|
2022-06-29 10:05:20 +00:00
|
|
|
|
"echo 4.8.4")
|
2022-06-25 18:59:01 +00:00
|
|
|
|
(("echo 2\\.23\\.0") ;binutils
|
|
|
|
|
"echo 2.20.1")))))))))
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(native-inputs
|
|
|
|
|
`(("perl" ,perl-boot0)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
;; Flex and Bison are required since version 4.16.
|
|
|
|
|
("flex" ,flex-boot0)
|
|
|
|
|
("bison" ,bison-boot0)
|
|
|
|
|
,@(%boot0-inputs)))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2019-10-13 21:36:39 +00:00
|
|
|
|
(define with-boot0
|
|
|
|
|
(package-with-explicit-inputs %boot0-inputs
|
|
|
|
|
%bootstrap-guile))
|
|
|
|
|
|
2016-06-24 13:10:15 +00:00
|
|
|
|
(define gnumach-headers-boot0
|
2020-03-01 12:49:04 +00:00
|
|
|
|
(with-boot0
|
2022-06-05 19:40:44 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gnumach-headers)
|
|
|
|
|
(version "1.8-116-g28b53508")
|
|
|
|
|
(source (bootstrap-origin
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (list (string-append "mirror://gnu/guix/mirror/gnumach-"
|
|
|
|
|
version ".tar.gz")
|
|
|
|
|
(string-append "https://lilypond.org/janneke/hurd/"
|
|
|
|
|
"gnumach-" version ".tar.gz")))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"006i0zgwy81vxarpfm12vip4q6i5mgmi5mmy5ldvxp5hx9h3l0zg")))))
|
|
|
|
|
(native-inputs '()))))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
|
|
|
|
(define mig-boot0
|
2019-10-13 21:36:39 +00:00
|
|
|
|
(let* ((mig (package
|
|
|
|
|
(inherit (package-with-bootstrap-guile mig))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
(native-inputs `(("bison" ,bison-boot0)
|
|
|
|
|
("flex" ,flex-boot0)))
|
|
|
|
|
(inputs `(("flex" ,flex-boot0)))
|
|
|
|
|
(arguments
|
2023-03-04 15:04:36 +00:00
|
|
|
|
;; TODO: On next rebuild cycle, reuse phases from 'mig'.
|
2016-06-24 13:10:15 +00:00
|
|
|
|
`(#:configure-flags
|
|
|
|
|
`(,(string-append "LDFLAGS=-Wl,-rpath="
|
|
|
|
|
(assoc-ref %build-inputs "flex") "/lib/")))))))
|
2019-10-13 21:36:39 +00:00
|
|
|
|
(with-boot0 mig)))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
2020-03-03 05:00:53 +00:00
|
|
|
|
(define hurd-version-boot0 "0.9-229-ga1efcee8")
|
2020-03-01 12:50:40 +00:00
|
|
|
|
(define hurd-source-boot0
|
|
|
|
|
(let ((version hurd-version-boot0))
|
2022-06-05 19:40:44 +00:00
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (list (string-append "mirror://gnu/guix/mirror/hurd-v"
|
|
|
|
|
version ".tar.gz")
|
|
|
|
|
(string-append "https://lilypond.org/janneke/hurd/"
|
|
|
|
|
"hurd-v" version ".tar.gz")))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0bq2q2jisxcy0kgcm6rz0z2fddwxxm7azsama7li28a2m08kdpzy")))))
|
2020-03-01 12:50:40 +00:00
|
|
|
|
|
2016-06-24 13:10:15 +00:00
|
|
|
|
(define hurd-headers-boot0
|
|
|
|
|
(let ((hurd-headers (package (inherit hurd-headers)
|
2020-03-01 12:50:40 +00:00
|
|
|
|
(version hurd-version-boot0)
|
|
|
|
|
(source hurd-source-boot0)
|
|
|
|
|
(native-inputs `(("mig" ,mig-boot0)))
|
|
|
|
|
(inputs '()))))
|
2019-10-13 21:36:39 +00:00
|
|
|
|
(with-boot0 (package-with-bootstrap-guile hurd-headers))))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
|
|
|
|
(define hurd-minimal-boot0
|
|
|
|
|
(let ((hurd-minimal (package (inherit hurd-minimal)
|
2020-03-01 12:52:14 +00:00
|
|
|
|
(version hurd-version-boot0)
|
|
|
|
|
(source hurd-source-boot0)
|
|
|
|
|
(native-inputs `(("mig" ,mig-boot0)))
|
|
|
|
|
(inputs '()))))
|
2019-10-13 21:36:39 +00:00
|
|
|
|
(with-boot0 (package-with-bootstrap-guile hurd-minimal))))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(define/system-dependent hurd-core-headers-boot0
|
|
|
|
|
;; Return the Hurd and Mach headers as well as initial Hurd libraries for
|
|
|
|
|
;; the bootstrap environment.
|
|
|
|
|
(package (inherit (package-with-bootstrap-guile hurd-core-headers))
|
|
|
|
|
(arguments `(#:guile ,%bootstrap-guile
|
|
|
|
|
,@(package-arguments hurd-core-headers)))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("gnumach-headers" ,gnumach-headers-boot0)
|
|
|
|
|
("hurd-headers" ,hurd-headers-boot0)
|
|
|
|
|
("hurd-minimal" ,hurd-minimal-boot0)
|
|
|
|
|
,@(%boot0-inputs)))))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
|
|
|
|
(define* (kernel-headers-boot0 #:optional (system (%current-system)))
|
|
|
|
|
(match system
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
("i586-gnu" hurd-core-headers-boot0)
|
|
|
|
|
(_ linux-libre-headers-boot0)))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define texinfo-boot0
|
|
|
|
|
;; Texinfo used to build libc's manual.
|
|
|
|
|
;; We build without ncurses because it fails to build at this stage, and
|
|
|
|
|
;; because we don't need the stand-alone Info reader.
|
2018-09-09 09:54:27 +00:00
|
|
|
|
;; Also, use (%BOOT0-INPUTS) to avoid building Perl once more.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit texinfo)
|
2022-08-11 17:28:01 +00:00
|
|
|
|
(source (bootstrap-origin (package-source texinfo)))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(native-inputs '())
|
|
|
|
|
(inputs `(,@(%boot0-inputs)
|
|
|
|
|
("perl" ,perl-boot0)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
|
|
|
|
|
;; Some of Texinfo 6.1's tests would fail with "Couldn't set UTF-8
|
|
|
|
|
;; character type in locale" but we don't have a UTF-8 locale at this
|
|
|
|
|
;; stage, so skip them.
|
|
|
|
|
#:tests? #f))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2019-07-02 14:45:17 +00:00
|
|
|
|
(define expat-sans-tests
|
|
|
|
|
(package
|
|
|
|
|
(inherit expat)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(inputs (%boot0-inputs))
|
2021-06-05 13:35:42 +00:00
|
|
|
|
(outputs '("out"))
|
2019-07-02 14:45:17 +00:00
|
|
|
|
(arguments
|
|
|
|
|
;; XXX: Linking 'runtestscpp' fails with things like:
|
|
|
|
|
;;
|
|
|
|
|
;; ld: Dwarf Error: found dwarf version '3789', this reader only handles version 2 and 3 information.
|
|
|
|
|
;;
|
|
|
|
|
;; Skip tests altogether.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
|
|
|
|
|
,@(substitute-keyword-arguments (package-arguments expat)
|
|
|
|
|
((#:configure-flags flags ''())
|
|
|
|
|
;; Since we're not passing the right -Wl,-rpath flags, build the
|
|
|
|
|
;; static library to avoid RUNPATH validation failure.
|
|
|
|
|
`(cons "--disable-shared" ,flags))
|
2021-06-05 13:35:42 +00:00
|
|
|
|
((#:phases phases) '%standard-phases)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
((#:tests? _ #f) #f))))))
|
2019-07-02 14:45:17 +00:00
|
|
|
|
|
|
|
|
|
(define python-boot0
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit python-minimal)
|
|
|
|
|
;; We cannot use Python 3.7 and later here, because they require
|
|
|
|
|
;; pthreads, which is missing on non-x86 platforms at this stage.
|
|
|
|
|
;; Python 3.6 technically supports being built without threading
|
|
|
|
|
;; support, but requires additional patches.
|
2020-01-14 17:11:10 +00:00
|
|
|
|
(version "3.5.9")
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(source (bootstrap-origin
|
|
|
|
|
(origin
|
2020-01-14 17:10:33 +00:00
|
|
|
|
(method url-fetch)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(uri (string-append "https://www.python.org/ftp/python/"
|
|
|
|
|
version "/Python-" version ".tar.xz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2020-01-14 17:11:10 +00:00
|
|
|
|
"0jdh9pvx6m6lfz2liwvvhn7vks7qrysqgwn517fkpxb77b33fjn2"))
|
2020-01-14 17:10:33 +00:00
|
|
|
|
(modules '((guix build utils)))
|
|
|
|
|
(snippet
|
|
|
|
|
'(begin
|
|
|
|
|
;; Delete the bundled copy of libexpat.
|
|
|
|
|
(delete-file-recursively "Modules/expat")
|
|
|
|
|
(substitute* "Modules/Setup.dist"
|
|
|
|
|
;; Link Expat instead of embedding the bundled one.
|
2021-03-17 12:33:22 +00:00
|
|
|
|
(("^#pyexpat.*") "pyexpat pyexpat.c -lexpat\n"))
|
|
|
|
|
;; Delete windows binaries
|
|
|
|
|
(for-each delete-file
|
|
|
|
|
(find-files "Lib/distutils/command" ".*.exe$"))
|
|
|
|
|
(for-each delete-file
|
|
|
|
|
(find-files "Lib/ensurepip" ".*.whl$")))))))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(inputs
|
|
|
|
|
`(,@(%boot0-inputs)
|
|
|
|
|
("expat" ,expat-sans-tests))) ;remove OpenSSL, zlib, etc.
|
2021-01-22 04:26:01 +00:00
|
|
|
|
(native-inputs ;and pkg-config
|
2022-01-19 09:22:57 +00:00
|
|
|
|
`())
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
2021-07-16 12:31:13 +00:00
|
|
|
|
;; Running the tests won't work because we lack several required
|
|
|
|
|
;; modules (OpenSSL, etc).
|
|
|
|
|
#:tests? #f
|
|
|
|
|
;; Disable features that cannot be built at this stage.
|
|
|
|
|
#:configure-flags '("--without-ensurepip" "--without-threads")
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-before 'configure 'patch-lib-shells
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* '("Lib/subprocess.py"
|
|
|
|
|
"Lib/distutils/tests/test_spawn.py"
|
|
|
|
|
"Lib/test/support/__init__.py"
|
|
|
|
|
"Lib/test/test_subprocess.py")
|
|
|
|
|
(("/bin/sh") (which "sh")))))
|
|
|
|
|
(add-before 'configure 'disable-modules
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "setup.py"
|
|
|
|
|
;; Disable ctypes, since it requires libffi.
|
|
|
|
|
(("extensions\\.append\\(ctypes\\)") "")
|
|
|
|
|
;; Prevent the 'ossaudiodev' extension from being
|
|
|
|
|
;; built, since it requires Linux headers.
|
|
|
|
|
(("'linux', ") ""))))
|
2022-01-19 11:06:23 +00:00
|
|
|
|
(add-after 'install 'remove-tests
|
|
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
|
(delete-file-recursively
|
|
|
|
|
(string-append (assoc-ref outputs "out")
|
|
|
|
|
"/lib/python"
|
|
|
|
|
,(version-major+minor version)
|
|
|
|
|
"/test"))))
|
2023-06-17 11:51:05 +00:00
|
|
|
|
,@(if (system-hurd?)
|
2021-07-16 12:31:13 +00:00
|
|
|
|
`((add-before 'build 'fix-regen
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((libc (assoc-ref inputs "libc")))
|
|
|
|
|
(substitute* "Lib/plat-generic/regen"
|
|
|
|
|
(("/usr/include/")
|
|
|
|
|
(string-append libc "/include/")))))))
|
2022-01-19 09:22:57 +00:00
|
|
|
|
'()))))
|
2021-01-22 04:26:01 +00:00
|
|
|
|
(native-search-paths
|
2022-01-19 09:22:57 +00:00
|
|
|
|
(list (search-path-specification
|
|
|
|
|
(variable "PYTHONPATH")
|
|
|
|
|
(files (list (string-append
|
|
|
|
|
"lib/python"
|
|
|
|
|
(version-major+minor version)
|
|
|
|
|
"/site-packages"))))))))
|
2019-07-02 14:45:17 +00:00
|
|
|
|
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(define/system-dependent ld-wrapper-boot0
|
|
|
|
|
;; The first 'ld' wrapper, defined with 'define/system-dependent' because
|
|
|
|
|
;; its calls '%boot0-inputs', whose result depends on (%current-system)
|
|
|
|
|
;;
|
|
|
|
|
;; We need this so binaries on Hurd will have libmachuser and libhurduser
|
|
|
|
|
;; in their RUNPATH, otherwise validate-runpath will fail.
|
|
|
|
|
(make-ld-wrapper "ld-wrapper-boot0"
|
|
|
|
|
#:target boot-triplet
|
|
|
|
|
#:binutils binutils-boot0
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:bash (car (assoc-ref (%boot0-inputs) "bash"))
|
|
|
|
|
#:guile-for-build %bootstrap-guile))
|
2016-06-24 13:10:15 +00:00
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(define (%boot1-inputs)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; 2nd stage inputs.
|
|
|
|
|
`(("gcc" ,gcc-boot0)
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
("ld-wrapper-cross" ,ld-wrapper-boot0)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
("binutils-cross" ,binutils-boot0)
|
2018-09-09 09:54:27 +00:00
|
|
|
|
,@(alist-delete "binutils" (%boot0-inputs))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2023-05-22 09:42:26 +00:00
|
|
|
|
(define/system-dependent glibc-final-with-bootstrap-bash
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; The final libc, "cross-built". If everything went well, the resulting
|
|
|
|
|
;; store path has no dependencies. Actually, the really-final libc is
|
|
|
|
|
;; built just below; the only difference is that this one uses the
|
|
|
|
|
;; bootstrap Bash.
|
2023-05-22 09:42:26 +00:00
|
|
|
|
(let ((libc (libc-for-target)))
|
|
|
|
|
(package
|
|
|
|
|
(inherit libc)
|
|
|
|
|
(name "glibc-intermediate")
|
|
|
|
|
(outputs (delete "debug" (package-outputs libc)))
|
|
|
|
|
(source (bootstrap-origin (package-source libc)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
|
2023-05-22 09:42:26 +00:00
|
|
|
|
,@(substitute-keyword-arguments (package-arguments libc)
|
|
|
|
|
((#:configure-flags flags)
|
|
|
|
|
`(append (list ,(string-append "--host=" (boot-triplet))
|
|
|
|
|
,(string-append "--build="
|
|
|
|
|
(nix-system->gnu-triplet))
|
|
|
|
|
,(if (system-hurd?) "--disable-werror"
|
|
|
|
|
""))
|
|
|
|
|
,flags))
|
|
|
|
|
((#:phases phases)
|
|
|
|
|
`(modify-phases ,phases
|
|
|
|
|
(add-before 'configure 'pre-configure
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
;; Don't clobber include paths with the bootstrap libc.
|
|
|
|
|
(unsetenv "C_INCLUDE_PATH")
|
|
|
|
|
(unsetenv "CPLUS_INCLUDE_PATH")
|
|
|
|
|
|
|
|
|
|
;; Tell 'libpthread' where to find 'libihash' on Hurd systems.
|
|
|
|
|
,@(if (system-hurd?)
|
|
|
|
|
'((substitute* '("sysdeps/mach/Makefile"
|
|
|
|
|
"sysdeps/mach/hurd/Makefile")
|
|
|
|
|
(("LDLIBS-pthread.so =.*")
|
|
|
|
|
(string-append "LDLIBS-pthread.so = "
|
|
|
|
|
(assoc-ref %build-inputs "kernel-headers")
|
|
|
|
|
"/lib/libihash.a\n"))))
|
|
|
|
|
'()))))))))
|
|
|
|
|
(propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0))))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("bison" ,bison-boot0)
|
|
|
|
|
("texinfo" ,texinfo-boot0)
|
|
|
|
|
("perl" ,perl-boot0)
|
|
|
|
|
("python" ,python-boot0)))
|
|
|
|
|
(inputs
|
|
|
|
|
`( ;; The boot inputs. That includes the bootstrap libc. We don't want
|
|
|
|
|
;; it in $CPATH, hence the 'pre-configure' phase above.
|
|
|
|
|
,@(%boot1-inputs)
|
|
|
|
|
|
|
|
|
|
;; A native MiG is needed to build Glibc on Hurd.
|
|
|
|
|
,@(if (system-hurd?)
|
|
|
|
|
`(("mig" ,mig-boot0))
|
|
|
|
|
'())
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
|
2023-05-22 09:42:26 +00:00
|
|
|
|
;; Here, we use the bootstrap Bash, which is not satisfactory
|
|
|
|
|
;; because we don't want to depend on bootstrap tools.
|
|
|
|
|
("static-bash" ,@(assoc-ref (%boot0-inputs) "bash")))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define (cross-gcc-wrapper gcc binutils glibc bash)
|
|
|
|
|
"Return a wrapper for the pseudo-cross toolchain GCC/BINUTILS/GLIBC
|
|
|
|
|
that makes it available under the native tool names."
|
2015-06-26 15:06:30 +00:00
|
|
|
|
(package (inherit gcc)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(name (string-append (package-name gcc) "-wrapped"))
|
|
|
|
|
(source #f)
|
|
|
|
|
(build-system trivial-build-system)
|
|
|
|
|
(outputs '("out"))
|
|
|
|
|
(arguments
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
(list
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:modules '((guix build utils))
|
|
|
|
|
#:builder #~(begin
|
|
|
|
|
(use-modules (guix build utils))
|
|
|
|
|
|
|
|
|
|
(let* ((binutils (assoc-ref %build-inputs "binutils"))
|
|
|
|
|
(gcc (assoc-ref %build-inputs "gcc"))
|
|
|
|
|
(libc (assoc-ref %build-inputs "libc"))
|
|
|
|
|
(bash (assoc-ref %build-inputs "bash"))
|
|
|
|
|
(out (assoc-ref %outputs "out"))
|
|
|
|
|
(bindir (string-append out "/bin"))
|
|
|
|
|
(triplet #$(boot-triplet)))
|
|
|
|
|
(define (wrap-program program)
|
|
|
|
|
;; GCC-BOOT0 is a libc-less cross-compiler, so it
|
|
|
|
|
;; needs to be told where to find the crt files and
|
|
|
|
|
;; the dynamic linker.
|
|
|
|
|
(call-with-output-file program
|
|
|
|
|
(lambda (p)
|
|
|
|
|
(format p "#!~a/bin/bash
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
bash
|
|
|
|
|
gcc triplet program
|
|
|
|
|
libc libc
|
|
|
|
|
#$(glibc-dynamic-linker))))
|
|
|
|
|
|
|
|
|
|
(chmod program #o555))
|
|
|
|
|
|
|
|
|
|
(mkdir-p bindir)
|
|
|
|
|
(with-directory-excursion bindir
|
|
|
|
|
(for-each (lambda (tool)
|
|
|
|
|
(symlink (string-append binutils "/bin/"
|
|
|
|
|
triplet "-" tool)
|
|
|
|
|
tool))
|
|
|
|
|
'("ar" "ranlib"))
|
|
|
|
|
(for-each wrap-program '("gcc" "g++")))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(native-inputs
|
|
|
|
|
`(("binutils" ,binutils)
|
|
|
|
|
("gcc" ,gcc)
|
|
|
|
|
("libc" ,glibc)
|
|
|
|
|
("bash" ,bash)))
|
|
|
|
|
(inputs '())))
|
|
|
|
|
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(define/system-dependent gcc-boot0-intermediate-wrapped
|
|
|
|
|
;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
|
|
|
|
|
;; non-cross names.
|
|
|
|
|
(cross-gcc-wrapper gcc-boot0 binutils-boot0
|
|
|
|
|
glibc-final-with-bootstrap-bash
|
|
|
|
|
(car (assoc-ref (%boot1-inputs) "bash"))))
|
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-19 15:23:09 +00:00
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define static-bash-for-glibc
|
2015-08-19 22:13:25 +00:00
|
|
|
|
;; A statically-linked Bash to be used by GLIBC-FINAL in system(3) & co.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit static-bash)
|
|
|
|
|
(source (bootstrap-origin (package-source static-bash)))
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(inputs `(("gcc" ,gcc-boot0-intermediate-wrapped)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
("libc" ,glibc-final-with-bootstrap-bash)
|
|
|
|
|
("libc:static" ,glibc-final-with-bootstrap-bash "static")
|
|
|
|
|
,@(fold alist-delete (%boot1-inputs)
|
|
|
|
|
'("gcc" "libc"))))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
|
|
|
|
|
,@(substitute-keyword-arguments (package-arguments static-bash)
|
2023-02-28 16:05:33 +00:00
|
|
|
|
((#:configure-flags flags #~'())
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
;; Add a '-L' flag so that the pseudo-cross-ld of
|
|
|
|
|
;; BINUTILS-BOOT0 can find libc.a.
|
2023-02-28 16:05:33 +00:00
|
|
|
|
#~(append #$flags
|
|
|
|
|
(list (string-append "LDFLAGS=-static -L"
|
|
|
|
|
(assoc-ref %build-inputs
|
|
|
|
|
"libc:static")
|
|
|
|
|
"/lib")))))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2015-04-21 20:53:09 +00:00
|
|
|
|
(define gettext-boot0
|
|
|
|
|
;; A minimal gettext used during bootstrap.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit gettext-minimal)
|
|
|
|
|
(name "gettext-boot0")
|
|
|
|
|
;; Newer versions of GNU gettext depends on libxml2 and ncurses. To
|
|
|
|
|
;; simplify the dependency chain, we stick to this version here.
|
|
|
|
|
(version "0.19.8.1")
|
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (string-append "mirror://gnu/gettext/gettext-"
|
|
|
|
|
version ".tar.gz"))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0hsw28f9q9xaggjlsdp2qmbp2rbd1mp0njzan2ld9kiqwkq2m57z"))))
|
|
|
|
|
(inputs (%boot1-inputs)) ;zero dependencies
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
#:tests? #f
|
|
|
|
|
#:phases (modify-phases %standard-phases
|
|
|
|
|
;; Build only the tools.
|
|
|
|
|
(add-after 'unpack 'chdir
|
|
|
|
|
(lambda _
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
(chdir "gettext-tools")))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
|
|
|
|
|
;; Some test programs require pthreads, which we don't have.
|
|
|
|
|
(add-before 'configure 'no-test-programs
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "tests/Makefile.in"
|
|
|
|
|
(("^PROGRAMS =.*$")
|
gnu: base, commencement: Remove trailing #t from build phases.
* gnu/packages/base.scm (grep, tar, findutils)
(coreutils, coreutils-8.30, gnu-make, gnu-make-4.2)
(binutils-gold, glibc, make-glibc-locales):
(glibc/hurd-headers, tzdata): Remove trailing #t in build phases.
* gnu/packages/commencement.scm (bootar)
(gash-boot, gash-utils-boot, mes-boot):
(gzip-mesboot, gnu-make-mesboot0, bzip2-mesboot)
(bash-mesboot0, tcc-boot, diffutils-mesboot)
(patch-mesboot, sed-mesboot0, binutils-mesboot0)
(gcc-core-mesboot0, mesboot-headers, gawk-mesboot0)
(glibc-mesboot0, gcc-mesboot0, tar-mesboot)
(grep-mesboot, binutils-mesboot1, gnu-make-mesboot)
(gawk-mesboot, sed-mesboot, bash-mesboot)
(gcc-core-mesboot1, gcc-mesboot1, binutils-mesboot)
(glibc-headers-mesboot, glibc-mesboot, gcc-mesboot1-wrapper)
(gcc-mesboot, gnu-make-boot0, binutils-boot0)
(libstdc++-boot0, gcc-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-bash)
(cross-gcc-wrapper, gettext-boot0, gcc-final): Remove trailing #t in
build phases.
2020-11-24 22:08:26 +00:00
|
|
|
|
"PROGRAMS =\n")))))))))
|
2015-04-21 20:53:09 +00:00
|
|
|
|
|
2023-05-22 09:42:26 +00:00
|
|
|
|
(define/system-dependent glibc-final
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; The final glibc, which embeds the statically-linked Bash built above.
|
2018-03-07 20:30:41 +00:00
|
|
|
|
;; Use 'package/inherit' so we get the 'replacement' of 'glibc', if any.
|
2023-05-22 09:42:26 +00:00
|
|
|
|
(let ((libc (libc-for-target)))
|
|
|
|
|
(package/inherit libc
|
|
|
|
|
(name "glibc")
|
|
|
|
|
(source (bootstrap-origin (package-source libc)))
|
|
|
|
|
(inputs `(("static-bash" ,static-bash-for-glibc)
|
|
|
|
|
,@(alist-delete
|
|
|
|
|
"static-bash"
|
|
|
|
|
(package-inputs glibc-final-with-bootstrap-bash))))
|
|
|
|
|
|
|
|
|
|
;; This time we need 'msgfmt' to install all the libc.mo files.
|
|
|
|
|
(native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
|
|
|
|
|
("gettext" ,gettext-boot0)))
|
|
|
|
|
|
|
|
|
|
(propagated-inputs
|
|
|
|
|
(package-propagated-inputs glibc-final-with-bootstrap-bash))
|
|
|
|
|
|
|
|
|
|
;; The final libc only refers to itself, but the 'debug' output contains
|
|
|
|
|
;; references to GCC-BOOT0 and to the Linux headers. XXX: Would be great
|
|
|
|
|
;; if 'allowed-references' were per-output.
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:allowed-references
|
|
|
|
|
(,(gexp-input gcc-boot0 "lib")
|
|
|
|
|
,(kernel-headers-boot0)
|
|
|
|
|
,static-bash-for-glibc
|
|
|
|
|
,@(if (system-hurd?)
|
|
|
|
|
`(,gnumach-headers-boot0
|
|
|
|
|
,hurd-headers-boot0)
|
|
|
|
|
'())
|
|
|
|
|
,@(package-outputs glibc-final-with-bootstrap-bash))
|
|
|
|
|
,@(package-arguments glibc-final-with-bootstrap-bash))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(define/system-dependent gcc-boot0-wrapped
|
|
|
|
|
;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
|
|
|
|
|
;; non-cross names.
|
|
|
|
|
(cross-gcc-wrapper gcc-boot0 binutils-boot0 glibc-final
|
|
|
|
|
(car (assoc-ref (%boot1-inputs) "bash"))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(define (%boot2-inputs)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; 3rd stage inputs.
|
|
|
|
|
`(("libc" ,glibc-final)
|
2017-09-03 12:25:39 +00:00
|
|
|
|
("libc:static" ,glibc-final "static")
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
("gcc" ,gcc-boot0-wrapped)
|
2018-10-05 14:06:35 +00:00
|
|
|
|
,@(fold alist-delete (%boot1-inputs) '("libc" "gcc" "linux-libre-headers"))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define binutils-final
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit binutils)
|
|
|
|
|
(source (bootstrap-origin (package-source binutils)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
2020-04-19 15:55:57 +00:00
|
|
|
|
#:allowed-references
|
|
|
|
|
,@(match (%current-system)
|
2021-02-02 08:13:48 +00:00
|
|
|
|
((? target-powerpc?)
|
2020-04-19 15:55:57 +00:00
|
|
|
|
`(("out" ,glibc-final ,static-bash-for-glibc)))
|
|
|
|
|
(_
|
|
|
|
|
`(("out" ,glibc-final))))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
,@(package-arguments binutils)))
|
2020-04-19 15:55:57 +00:00
|
|
|
|
(inputs
|
|
|
|
|
(match (%current-system)
|
2021-02-02 08:13:48 +00:00
|
|
|
|
((? target-powerpc?)
|
2020-04-19 15:55:57 +00:00
|
|
|
|
`(("bash" ,static-bash-for-glibc)
|
|
|
|
|
,@(%boot2-inputs)))
|
|
|
|
|
(_ (%boot2-inputs))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define libstdc++
|
|
|
|
|
;; Intermediate libstdc++ that will allow us to build the final GCC
|
|
|
|
|
;; (remember that GCC-BOOT0 cannot build libstdc++.)
|
2022-07-18 18:54:13 +00:00
|
|
|
|
(let ((lib (make-libstdc++ gcc-boot0)))
|
2017-10-06 11:09:37 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit lib)
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(source (bootstrap-origin (package-source lib)))
|
2017-10-06 11:09:37 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:allowed-references ("out")
|
|
|
|
|
|
|
|
|
|
;; XXX: libstdc++.so NEEDs ld.so for some reason.
|
|
|
|
|
#:validate-runpath? #f
|
|
|
|
|
|
|
|
|
|
;; All of the package arguments from 'make-libstdc++
|
|
|
|
|
;; except for the configure-flags.
|
|
|
|
|
,@(package-arguments lib)
|
|
|
|
|
#:configure-flags `("--disable-shared"
|
2018-09-20 17:56:30 +00:00
|
|
|
|
"--disable-libstdcxx-dual-abi"
|
2017-10-06 11:09:37 +00:00
|
|
|
|
"--disable-libstdcxx-threads"
|
|
|
|
|
"--disable-libstdcxx-pch"
|
|
|
|
|
,(string-append "--with-gxx-include-dir="
|
|
|
|
|
(assoc-ref %outputs "out")
|
|
|
|
|
"/include"))))
|
|
|
|
|
(outputs '("out"))
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(inputs (%boot2-inputs))
|
2017-10-06 11:09:37 +00:00
|
|
|
|
(synopsis "GNU C++ standard library (intermediate)"))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2015-12-11 22:45:29 +00:00
|
|
|
|
(define zlib-final
|
|
|
|
|
;; Zlib used by GCC-FINAL.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(package
|
|
|
|
|
(inherit zlib)
|
2022-06-30 11:01:24 +00:00
|
|
|
|
(source (bootstrap-origin (package-source zlib)))
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(arguments
|
|
|
|
|
`(#:guile ,%bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
|
|
|
|
#:allowed-references ("out" ,glibc-final)
|
|
|
|
|
,@(package-arguments zlib)))
|
|
|
|
|
(inputs (%boot2-inputs))))
|
2015-12-11 22:45:29 +00:00
|
|
|
|
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
(define/system-dependent ld-wrapper-boot3
|
|
|
|
|
;; A linker wrapper that uses the bootstrap Guile.
|
|
|
|
|
(make-ld-wrapper "ld-wrapper-boot3"
|
|
|
|
|
#:binutils binutils-final
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:bash (car (assoc-ref (%boot2-inputs) "bash"))
|
|
|
|
|
#:guile-for-build %bootstrap-guile))
|
2015-12-11 22:45:29 +00:00
|
|
|
|
|
2015-06-22 21:08:37 +00:00
|
|
|
|
(define gcc-final
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; The final GCC.
|
|
|
|
|
(package (inherit gcc-boot0)
|
|
|
|
|
(name "gcc")
|
2015-06-10 07:37:36 +00:00
|
|
|
|
|
|
|
|
|
;; XXX: Currently #:allowed-references applies to all the outputs but the
|
|
|
|
|
;; "debug" output contains disallowed references, notably
|
|
|
|
|
;; linux-libre-headers. Disable the debugging output to work around that.
|
|
|
|
|
(outputs (delete "debug" (package-outputs gcc-boot0)))
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(arguments
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
(cons*
|
|
|
|
|
#:guile %bootstrap-guile
|
|
|
|
|
#:implicit-inputs? #f
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
#:allowed-references `("out" "lib" ,zlib-final
|
2015-08-19 22:13:25 +00:00
|
|
|
|
,glibc-final ,static-bash-for-glibc)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
;; Things like libasan.so and libstdc++.so NEED ld.so for some
|
|
|
|
|
;; reason, but it is not in their RUNPATH. This is a false
|
|
|
|
|
;; positive, so turn it off.
|
|
|
|
|
#:validate-runpath? #f
|
2015-04-22 22:01:59 +00:00
|
|
|
|
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
;; Additional modules for the libstdc++ phase below.
|
|
|
|
|
#:modules `((srfi srfi-1)
|
2022-07-18 18:54:13 +00:00
|
|
|
|
(srfi srfi-26)
|
|
|
|
|
,@%gnu-build-system-modules)
|
|
|
|
|
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
(substitute-keyword-arguments (package-arguments gcc)
|
|
|
|
|
((#:make-flags flags)
|
|
|
|
|
;; Since $LIBRARY_PATH is not honored, add the relevant flags.
|
|
|
|
|
#~(let ((zlib (assoc-ref %build-inputs "zlib")))
|
|
|
|
|
(map (lambda (flag)
|
|
|
|
|
(if (string-prefix? "LDFLAGS=" flag)
|
|
|
|
|
(string-append flag " -L"
|
|
|
|
|
(assoc-ref %build-inputs "libstdc++")
|
|
|
|
|
"/lib -L" zlib "/lib -Wl,-rpath="
|
|
|
|
|
zlib "/lib")
|
|
|
|
|
flag))
|
|
|
|
|
#$flags)))
|
|
|
|
|
;; Build again GMP & co. within GCC's build process, because it's hard
|
|
|
|
|
;; to do outside (because GCC-BOOT0 is a cross-compiler, and thus
|
|
|
|
|
;; doesn't honor $LIBRARY_PATH, which breaks `gnu-build-system'.)
|
|
|
|
|
((#:phases phases)
|
|
|
|
|
#~(modify-phases #$phases
|
|
|
|
|
(add-after 'unpack 'unpack-gmp&co
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
|
|
|
|
|
(mpfr (assoc-ref %build-inputs "mpfr-source"))
|
|
|
|
|
(mpc (assoc-ref %build-inputs "mpc-source")))
|
|
|
|
|
|
|
|
|
|
;; To reduce the set of pre-built bootstrap inputs, build
|
|
|
|
|
;; GMP & co. from GCC.
|
|
|
|
|
(for-each (lambda (source)
|
|
|
|
|
(invoke "tar" "xvf" source))
|
|
|
|
|
(list gmp mpfr mpc))
|
|
|
|
|
|
|
|
|
|
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
|
|
|
|
|
#$@(map (lambda (lib)
|
|
|
|
|
;; Drop trailing letters, as gmp-6.0.0a unpacks
|
|
|
|
|
;; into gmp-6.0.0.
|
|
|
|
|
#~(symlink #$(string-trim-right
|
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-19 15:23:09 +00:00
|
|
|
|
(package-full-name lib "-")
|
|
|
|
|
char-set:letter)
|
gnu: Use gexps for gcc-boot0 and related packages.
There are currently problems with native or cross building for i586-gnu, and
one factor mixed up with this is that some of the gcc packages use sexp's for
the phases, and thus introducing gexp's has caused problems.
As part of the going in circles with this, this commit switches gcc-boot0 to
use gexp's in it's arguments, and then also modifies libstdc++-boot0,
libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to
handle this change.
If done correctly, this change shouldn't affect any derivations.
* gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7,
gcc-boot0, gcc-final)[arguments]: Use gexps.
(cross-gcc-wrapper): Use gexps in the generated package.
* gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package.
2023-05-06 13:16:17 +00:00
|
|
|
|
#$(package-name lib)))
|
|
|
|
|
(list gmp-6.0 mpfr mpc)))))
|
|
|
|
|
(add-after 'unpack 'fix-build-with-external-libstdc++
|
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
|
(let ((libstdc++ (assoc-ref inputs "libstdc++")))
|
|
|
|
|
;; Fix a regression in GCC 11 where the libstc++ input
|
|
|
|
|
;; shadows glibc headers when building libstdc++. An
|
|
|
|
|
;; upstream fix was added in GCC 11.3.0, but it only
|
|
|
|
|
;; hides system include directories, not those on
|
|
|
|
|
;; CPLUS_INCLUDE_PATH. See discussion at
|
|
|
|
|
;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100017>.
|
|
|
|
|
(substitute* "libstdc++-v3/src/c++17/Makefile.in"
|
|
|
|
|
(("AM_CXXFLAGS = ")
|
|
|
|
|
(string-append "CPLUS_INCLUDE_PATH = "
|
|
|
|
|
(string-join
|
|
|
|
|
(remove (cut string-prefix? libstdc++ <>)
|
|
|
|
|
(string-split
|
|
|
|
|
(getenv "CPLUS_INCLUDE_PATH")
|
|
|
|
|
#\:))
|
|
|
|
|
":")
|
|
|
|
|
"\nAM_CXXFLAGS = ")))))))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2015-08-19 22:13:25 +00:00
|
|
|
|
;; This time we want Texinfo, so we get the manual. Add
|
|
|
|
|
;; STATIC-BASH-FOR-GLIBC so that it's used in the final shebangs of
|
|
|
|
|
;; scripts such as 'mkheaders' and 'fixinc.sh' (XXX: who cares about these
|
|
|
|
|
;; scripts?).
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(native-inputs `(("texinfo" ,texinfo-boot0)
|
2017-10-01 13:27:31 +00:00
|
|
|
|
("perl" ,perl-boot0) ;for manpages
|
2015-08-19 22:13:25 +00:00
|
|
|
|
("static-bash" ,static-bash-for-glibc)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
,@(package-native-inputs gcc-boot0)))
|
|
|
|
|
|
2015-12-18 15:58:09 +00:00
|
|
|
|
(inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
("mpfr-source" ,(package-source mpfr))
|
|
|
|
|
("mpc-source" ,(package-source mpc))
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
("ld-wrapper" ,ld-wrapper-boot3)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
("binutils" ,binutils-final)
|
|
|
|
|
("libstdc++" ,libstdc++)
|
2015-12-11 22:45:29 +00:00
|
|
|
|
("zlib" ,zlib-final)
|
2018-09-09 09:54:27 +00:00
|
|
|
|
,@(%boot2-inputs)))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(define (%boot3-inputs)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; 4th stage inputs.
|
|
|
|
|
`(("gcc" ,gcc-final)
|
gnu: commencement: Memoize packages as a function of the system.
Previous, things like 'ld-wrapper-boot0' would be memoized with
(mlambda () …). However, the definition of 'ld-wrapper-boot0' depends
on the result of (%boot0-inputs), which is itself a function
of (%current-system). Thus, if one first calls:
(parameterize ((%current-system "x86_64-linux"))
(ld-wrapper-boot0))
then, in all subsequent calls to 'ld-wrapper-boot0', the value
of (%current-system) would be ignored because the result is already
memoized. Concretely, 'ld-wrapper-boot0' would always have the
dependencies it has on x86_64-linux, even though they are different than
those on armhf-linux, say ("bash-mesboot" vs. "bootstrap-binaries").
Fixes <https://bugs.gnu.org/40482>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* gnu/packages/commencement.scm (define/system-dependent): New macro.
(linux-libre-headers-boot0, hurd-core-headers-boot0, ld-wrapper-boot0)
(gcc-boot0-intermediate-wrapped, gcc-boot0-wrapped, ld-wrapper-boot3):
Define using 'define/system-dependent' instead of 'define' + 'mlambda'.
Adjust users so they no longer look like procedure calls.
* tests/guix-build.sh: Add test.
2020-04-10 22:12:09 +00:00
|
|
|
|
("ld-wrapper" ,ld-wrapper-boot3)
|
2018-09-09 09:54:27 +00:00
|
|
|
|
,@(alist-delete "gcc" (%boot2-inputs))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define bash-final
|
|
|
|
|
;; Link with `-static-libgcc' to make sure we don't retain a reference
|
2017-06-01 21:22:03 +00:00
|
|
|
|
;; to the bootstrap GCC. Use "bash-minimal" to avoid an extra dependency
|
|
|
|
|
;; on Readline and ncurses.
|
gnu: commencement: Reduce the graph of package objects.
The graph returned by:
guix graph -e '(@@ (gnu packages commencement) guile-final)'
now contains 94 nodes (664 edges) instead of 394 (2674 edges).
Likewise, this command:
GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd
shows that the number of lookups to the 'add-data-to-store' caches goes
from 8935 to 5303.
Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%).
* gnu/packages/commencement.scm (diffutils-boot0): Remove call to
'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and
adjust accordingly.
(findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0)
(gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0)
(linux-libre-headers-boot0, texinfo-boot0, python-boot0)
(ld-wrapper-boot0, glibc-final-with-bootstrap-bash)
(static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final)
(libstdc++, zlib-final, bash-final): Likewise.
(expat-sans-tests)[inputs]: New field.
[arguments]: Add #:implicit-inputs? and #:guile.
(m4-boot0*): New variable.
2019-10-12 09:35:43 +00:00
|
|
|
|
(let ((bash (static-libgcc-package bash-minimal)))
|
|
|
|
|
(package
|
|
|
|
|
(inherit bash)
|
|
|
|
|
(source (bootstrap-origin (package-source bash)))
|
|
|
|
|
(inputs (%boot3-inputs))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
#:guile ,%bootstrap-guile
|
|
|
|
|
|
|
|
|
|
#:disallowed-references ,(assoc-ref (%boot3-inputs) "coreutils&co")
|
|
|
|
|
|
|
|
|
|
,@(package-arguments bash))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(define (%boot4-inputs)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; Now use the final Bash.
|
|
|
|
|
`(("bash" ,bash-final)
|
2018-09-09 09:54:27 +00:00
|
|
|
|
,@(alist-delete "bash" (%boot3-inputs))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(define with-boot4
|
|
|
|
|
(package-with-explicit-inputs %boot4-inputs %bootstrap-guile))
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define-public guile-final
|
2016-07-28 16:53:13 +00:00
|
|
|
|
;; This package must be public because other modules refer to it. However,
|
|
|
|
|
;; mark it as hidden so that 'fold-packages' ignores it.
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(with-boot4 (hidden-package
|
2023-02-01 09:36:02 +00:00
|
|
|
|
(package-with-bootstrap-guile guile-3.0/pinned))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2022-04-19 18:09:55 +00:00
|
|
|
|
(define-public glibc-utf8-locales-final
|
2015-03-01 15:58:43 +00:00
|
|
|
|
;; Now that we have GUILE-FINAL, build the UTF-8 locales. They are needed
|
|
|
|
|
;; by the build processes afterwards so their 'scm_to_locale_string' works
|
|
|
|
|
;; with the full range of Unicode codepoints (remember
|
|
|
|
|
;; 'scm_to_locale_string' is called every time a string is passed to a C
|
|
|
|
|
;; function.)
|
|
|
|
|
(package
|
|
|
|
|
(inherit glibc-utf8-locales)
|
2022-04-19 18:09:55 +00:00
|
|
|
|
(properties `((hidden? . #t)
|
|
|
|
|
,@(package-properties glibc-utf8-locales)))
|
2019-07-04 15:39:54 +00:00
|
|
|
|
(native-inputs
|
|
|
|
|
`(("glibc" ,glibc-final)
|
2019-10-13 21:12:44 +00:00
|
|
|
|
("gzip" ,(with-boot4 gzip))))))
|
2015-03-01 15:58:43 +00:00
|
|
|
|
|
2015-08-19 12:16:39 +00:00
|
|
|
|
(define-public ld-wrapper
|
|
|
|
|
;; The final 'ld' wrapper, which uses the final Guile and Binutils.
|
2017-04-20 21:38:12 +00:00
|
|
|
|
(make-ld-wrapper "ld-wrapper"
|
|
|
|
|
#:binutils binutils-final
|
|
|
|
|
#:guile guile-final
|
|
|
|
|
#:bash bash-final))
|
2015-08-19 12:16:39 +00:00
|
|
|
|
|
2021-09-14 14:47:49 +00:00
|
|
|
|
(define-public ld-gold-wrapper
|
|
|
|
|
(make-ld-wrapper "ld-gold-wrapper"
|
|
|
|
|
#:binutils binutils-gold
|
|
|
|
|
#:linker "ld.gold"
|
|
|
|
|
#:guile guile-final
|
|
|
|
|
#:bash bash-final))
|
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(define (%boot5-inputs)
|
2015-10-03 10:13:53 +00:00
|
|
|
|
;; Now with UTF-8 locales. Remember that the bootstrap binaries were built
|
|
|
|
|
;; with an older libc, which cannot load the new locale format. See
|
2015-08-19 12:16:39 +00:00
|
|
|
|
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
|
2015-10-03 10:13:53 +00:00
|
|
|
|
`(("locales" ,glibc-utf8-locales-final)
|
2018-09-09 09:54:27 +00:00
|
|
|
|
,@(%boot4-inputs)))
|
2015-03-01 15:58:43 +00:00
|
|
|
|
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(define with-boot5
|
|
|
|
|
(package-with-explicit-inputs %boot5-inputs))
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define gnu-make-final
|
|
|
|
|
;; The final GNU Make, which uses the final Guile.
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(let ((pkg-config (package
|
2019-11-07 09:22:24 +00:00
|
|
|
|
(inherit %pkg-config) ;the native pkg-config
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(inputs `(("guile" ,guile-final)
|
|
|
|
|
,@(%boot5-inputs)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
,@(package-arguments pkg-config))))))
|
|
|
|
|
(package
|
|
|
|
|
(inherit (package-with-bootstrap-guile gnu-make))
|
|
|
|
|
(inputs `(("guile" ,guile-final)
|
|
|
|
|
,@(%boot5-inputs)))
|
|
|
|
|
(native-inputs `(("pkg-config" ,pkg-config)))
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:implicit-inputs? #f
|
|
|
|
|
,@(package-arguments gnu-make))))))
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define coreutils-final
|
|
|
|
|
;; The final Coreutils. Treat them specially because some packages, such as
|
|
|
|
|
;; Findutils, keep a reference to the Coreutils they were built with.
|
2019-12-05 22:13:34 +00:00
|
|
|
|
(with-boot5 (package-with-bootstrap-guile
|
|
|
|
|
(package
|
|
|
|
|
(inherit coreutils-minimal)
|
|
|
|
|
(name "coreutils")))
|
2019-10-13 21:12:44 +00:00
|
|
|
|
;; Use the final Guile, linked against the
|
|
|
|
|
;; final libc with working iconv, so that
|
|
|
|
|
;; 'substitute*' works well when touching
|
|
|
|
|
;; test files in Gettext.
|
|
|
|
|
))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define grep-final
|
|
|
|
|
;; The final grep. Gzip holds a reference to it (via zgrep), so it must be
|
|
|
|
|
;; built before gzip.
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(let ((grep (with-boot5 (package-with-bootstrap-guile grep))))
|
2018-04-01 16:48:23 +00:00
|
|
|
|
(package/inherit grep
|
|
|
|
|
(inputs (alist-delete "pcre" (package-inputs grep)))
|
|
|
|
|
(native-inputs `(("perl" ,perl-boot0))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2023-02-14 14:30:30 +00:00
|
|
|
|
(define xz-final
|
|
|
|
|
;; The final xz. We need to replace the bootstrap xz with a newer one
|
|
|
|
|
;; before we get to the %final-inputs so file doesn't try to link to it.
|
|
|
|
|
(let ((xz (with-boot5 (package-with-bootstrap-guile xz))))
|
|
|
|
|
(package/inherit xz)))
|
|
|
|
|
|
2018-09-09 09:54:27 +00:00
|
|
|
|
(define (%boot6-inputs)
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;; Now use the final Coreutils.
|
|
|
|
|
`(("coreutils" ,coreutils-final)
|
|
|
|
|
("grep" ,grep-final)
|
2023-02-14 14:30:30 +00:00
|
|
|
|
("xz" ,xz-final)
|
|
|
|
|
,@(fold alist-delete (%boot5-inputs)
|
|
|
|
|
'("coreutils" "xz"))))
|
2015-02-26 22:39:47 +00:00
|
|
|
|
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(define with-boot6
|
|
|
|
|
(package-with-explicit-inputs %boot6-inputs))
|
|
|
|
|
|
2018-04-01 16:38:58 +00:00
|
|
|
|
(define sed-final
|
|
|
|
|
;; The final sed.
|
2019-10-13 21:12:44 +00:00
|
|
|
|
(let ((sed (with-boot6 (package-with-bootstrap-guile sed))))
|
2018-04-01 16:38:58 +00:00
|
|
|
|
(package/inherit sed (native-inputs `(("perl" ,perl-boot0))))))
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define-public %final-inputs
|
2023-05-22 09:42:26 +00:00
|
|
|
|
;; The 'glibc-final' package is not the same depending on what system is
|
|
|
|
|
;; targeted, so this whole list must be parameterized.
|
|
|
|
|
(mlambda (system)
|
|
|
|
|
;; Final derivations used as implicit inputs by 'gnu-build-system'. We
|
|
|
|
|
;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are
|
|
|
|
|
;; used for origins that have patches, thereby avoiding circular
|
|
|
|
|
;; dependencies.
|
|
|
|
|
(let ((finalize (compose with-boot6
|
|
|
|
|
package-with-bootstrap-guile)))
|
|
|
|
|
`(,@(map (match-lambda
|
|
|
|
|
((name package)
|
|
|
|
|
(list name (finalize package))))
|
|
|
|
|
`(("tar" ,tar)
|
|
|
|
|
("gzip" ,gzip)
|
|
|
|
|
("bzip2" ,bzip2)
|
|
|
|
|
("file" ,file)
|
|
|
|
|
("diffutils" ,diffutils)
|
|
|
|
|
("patch" ,patch)
|
|
|
|
|
("findutils" ,findutils)
|
|
|
|
|
("gawk" ,gawk)))
|
|
|
|
|
("sed" ,sed-final)
|
|
|
|
|
("grep" ,grep-final)
|
|
|
|
|
("xz" ,xz-final)
|
|
|
|
|
("coreutils" ,coreutils-final)
|
|
|
|
|
("make" ,gnu-make-final)
|
|
|
|
|
("bash" ,bash-final)
|
|
|
|
|
("ld-wrapper" ,ld-wrapper)
|
|
|
|
|
("binutils" ,binutils-final)
|
|
|
|
|
("gcc" ,gcc-final)
|
|
|
|
|
("libc" ,glibc-final)
|
|
|
|
|
("libc:static" ,glibc-final "static")
|
|
|
|
|
("locales" ,glibc-utf8-locales-final)))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define-public canonical-package
|
2023-05-22 09:42:26 +00:00
|
|
|
|
(let ((name->package (mlambda (system)
|
|
|
|
|
(fold (lambda (input result)
|
|
|
|
|
(match input
|
|
|
|
|
((_ package . outputs)
|
|
|
|
|
(vhash-cons (package-full-name package)
|
|
|
|
|
package result))))
|
|
|
|
|
vlist-null
|
|
|
|
|
`(("guile" ,guile-final)
|
|
|
|
|
,@(%final-inputs system))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(lambda (package)
|
|
|
|
|
"Return the 'canonical' variant of PACKAGE---i.e., if PACKAGE is one of
|
|
|
|
|
the implicit inputs of 'gnu-build-system', return that one, otherwise return
|
|
|
|
|
PACKAGE.
|
|
|
|
|
|
2017-04-08 21:10:50 +00:00
|
|
|
|
The goal is to avoid duplication in cases like GUILE-FINAL vs. GUILE-2.2,
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
COREUTILS-FINAL vs. COREUTILS, etc."
|
|
|
|
|
;; XXX: This doesn't handle dependencies of the final inputs, such as
|
|
|
|
|
;; libunistring, GMP, etc.
|
2023-05-22 09:42:26 +00:00
|
|
|
|
(match (vhash-assoc (package-full-name package)
|
|
|
|
|
(name->package (%current-system)))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
((_ . canon)
|
|
|
|
|
;; In general we want CANON, except if we're cross-compiling: CANON
|
|
|
|
|
;; uses explicit inputs, so it is "anchored" in the bootstrapped
|
|
|
|
|
;; process, with dependencies on things that cannot be
|
|
|
|
|
;; cross-compiled.
|
|
|
|
|
(if (%current-target-system)
|
|
|
|
|
package
|
|
|
|
|
canon))
|
|
|
|
|
(_ package)))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;
|
|
|
|
|
;;; GCC toolchain.
|
|
|
|
|
;;;
|
|
|
|
|
|
2019-05-13 20:02:13 +00:00
|
|
|
|
;; Using the following procedure, a gcc toolchain targeting glibc-2.27 can be
|
|
|
|
|
;; instantiated like this:
|
|
|
|
|
;;
|
|
|
|
|
;; (define-public gcc-glibc-2.27-toolchain
|
|
|
|
|
;; (make-gcc-toolchain gcc glibc-2.27))
|
|
|
|
|
|
|
|
|
|
(define* (make-gcc-toolchain gcc
|
|
|
|
|
#:optional
|
|
|
|
|
(libc #f))
|
|
|
|
|
"Return a complete toolchain for GCC. If LIBC is specified, target that libc."
|
|
|
|
|
(let ((gcc (if libc (make-gcc-libc gcc libc) gcc))
|
|
|
|
|
(libc (if libc libc glibc-final)))
|
|
|
|
|
(package
|
|
|
|
|
(name (string-append (package-name gcc) "-toolchain"))
|
|
|
|
|
(version (package-version gcc))
|
|
|
|
|
(source #f)
|
|
|
|
|
(build-system trivial-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
'(#:modules ((guix build union))
|
|
|
|
|
#:builder (begin
|
|
|
|
|
(use-modules (ice-9 match)
|
2020-06-29 21:12:13 +00:00
|
|
|
|
(srfi srfi-1)
|
2019-05-13 20:02:13 +00:00
|
|
|
|
(srfi srfi-26)
|
|
|
|
|
(guix build union))
|
|
|
|
|
|
|
|
|
|
(let ((out (assoc-ref %outputs "out")))
|
2020-06-29 21:12:13 +00:00
|
|
|
|
(union-build out
|
|
|
|
|
(filter-map (match-lambda
|
|
|
|
|
(("libc-debug" . _) #f)
|
|
|
|
|
(("libc-static" . _) #f)
|
|
|
|
|
((_ . directory) directory))
|
|
|
|
|
%build-inputs))
|
2019-05-13 20:02:13 +00:00
|
|
|
|
|
|
|
|
|
(union-build (assoc-ref %outputs "debug")
|
|
|
|
|
(list (assoc-ref %build-inputs
|
|
|
|
|
"libc-debug")))
|
|
|
|
|
(union-build (assoc-ref %outputs "static")
|
|
|
|
|
(list (assoc-ref %build-inputs
|
|
|
|
|
"libc-static")))
|
|
|
|
|
#t))))
|
|
|
|
|
|
2020-09-28 19:07:09 +00:00
|
|
|
|
(native-search-paths
|
|
|
|
|
(append (package-native-search-paths gcc)
|
|
|
|
|
(package-native-search-paths libc))) ;GUIX_LOCPATH
|
|
|
|
|
(search-paths
|
|
|
|
|
(append (package-search-paths gcc)
|
|
|
|
|
(package-search-paths libc)))
|
2019-05-13 20:02:13 +00:00
|
|
|
|
|
2022-01-06 15:18:06 +00:00
|
|
|
|
;; Copy the 'compiler-cpu-architectures' property and other things that
|
|
|
|
|
;; may be useful, but not the 'hidden?' property.
|
|
|
|
|
(properties (alist-delete 'hidden? (package-properties gcc)))
|
|
|
|
|
|
2019-05-13 20:02:13 +00:00
|
|
|
|
(license (package-license gcc))
|
|
|
|
|
(synopsis "Complete GCC tool chain for C/C++ development")
|
|
|
|
|
(description
|
|
|
|
|
"This package provides a complete GCC tool chain for C/C++ development to
|
2020-01-07 16:48:13 +00:00
|
|
|
|
be installed in user profiles. This includes GCC, as well as libc (headers and
|
2020-09-11 16:08:00 +00:00
|
|
|
|
binaries, plus debugging symbols in the @code{debug} output), and Binutils. GCC
|
|
|
|
|
is the GNU Compiler Collection.")
|
2019-05-13 20:02:13 +00:00
|
|
|
|
(home-page "https://gcc.gnu.org/")
|
|
|
|
|
(outputs '("out" "debug" "static"))
|
|
|
|
|
|
|
|
|
|
;; The main raison d'être of this "meta-package" is (1) to conveniently
|
|
|
|
|
;; install everything that we need, and (2) to make sure ld-wrapper comes
|
|
|
|
|
;; before Binutils' ld in the user's profile.
|
|
|
|
|
(inputs `(("gcc" ,gcc)
|
2023-05-22 09:42:26 +00:00
|
|
|
|
("ld-wrapper" ,(car (assoc-ref (%final-inputs (%current-system))
|
|
|
|
|
"ld-wrapper")))
|
2019-05-13 20:02:13 +00:00
|
|
|
|
("binutils" ,binutils-final)
|
|
|
|
|
("libc" ,libc)
|
|
|
|
|
("libc-debug" ,libc "debug")
|
|
|
|
|
("libc-static" ,libc "static"))))))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
2018-09-20 17:56:30 +00:00
|
|
|
|
(define-public gcc-toolchain
|
|
|
|
|
(make-gcc-toolchain gcc-final))
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
(define-public gcc-toolchain-4.8
|
2017-10-27 19:35:49 +00:00
|
|
|
|
(make-gcc-toolchain gcc-4.8))
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
|
|
|
|
|
(define-public gcc-toolchain-4.9
|
2017-10-27 19:35:49 +00:00
|
|
|
|
(make-gcc-toolchain gcc-4.9))
|
|
|
|
|
|
2015-07-20 01:11:56 +00:00
|
|
|
|
(define-public gcc-toolchain-5
|
2018-09-20 17:56:30 +00:00
|
|
|
|
(make-gcc-toolchain gcc-5))
|
2015-04-23 05:05:36 +00:00
|
|
|
|
|
2016-05-03 15:34:54 +00:00
|
|
|
|
(define-public gcc-toolchain-6
|
2017-10-27 19:35:49 +00:00
|
|
|
|
(make-gcc-toolchain gcc-6))
|
2016-05-03 15:34:54 +00:00
|
|
|
|
|
2017-05-04 12:21:35 +00:00
|
|
|
|
(define-public gcc-toolchain-7
|
2021-04-12 14:02:57 +00:00
|
|
|
|
(make-gcc-toolchain gcc-7))
|
2017-05-04 12:21:35 +00:00
|
|
|
|
|
2018-06-30 15:01:20 +00:00
|
|
|
|
(define-public gcc-toolchain-8
|
2021-07-01 12:10:18 +00:00
|
|
|
|
(make-gcc-toolchain gcc-8))
|
2018-06-30 15:01:20 +00:00
|
|
|
|
|
2019-05-05 14:32:57 +00:00
|
|
|
|
(define-public gcc-toolchain-9
|
|
|
|
|
(make-gcc-toolchain gcc-9))
|
|
|
|
|
|
2020-05-08 14:34:58 +00:00
|
|
|
|
(define-public gcc-toolchain-10
|
2022-07-18 18:54:13 +00:00
|
|
|
|
(make-gcc-toolchain gcc-10))
|
2020-05-08 14:34:58 +00:00
|
|
|
|
|
2021-04-27 14:08:21 +00:00
|
|
|
|
(define-public gcc-toolchain-11
|
2022-07-18 18:54:13 +00:00
|
|
|
|
gcc-toolchain)
|
2021-04-27 14:08:21 +00:00
|
|
|
|
|
2022-05-24 15:18:07 +00:00
|
|
|
|
(define-public gcc-toolchain-12
|
|
|
|
|
(make-gcc-toolchain gcc-12))
|
|
|
|
|
|
2020-09-10 07:53:32 +00:00
|
|
|
|
(define-public gcc-toolchain-aka-gcc
|
|
|
|
|
;; It's natural for users to try "guix install gcc". This package
|
|
|
|
|
;; automatically "redirects" them to 'gcc-toolchain'.
|
2022-07-18 18:54:13 +00:00
|
|
|
|
(deprecated-package "gcc" gcc-toolchain-11))
|
2020-09-10 07:53:32 +00:00
|
|
|
|
|
|
|
|
|
|
2020-07-16 14:35:14 +00:00
|
|
|
|
(define-public gdc-toolchain-10
|
|
|
|
|
(package (inherit (make-gcc-toolchain gdc-10))
|
|
|
|
|
(synopsis "Complete GCC tool chain for D lang development")
|
|
|
|
|
(description "This package provides a complete GCC tool chain for
|
|
|
|
|
D lang development to be installed in user profiles. This includes
|
|
|
|
|
gdc, as well as libc (headers and binaries, plus debugging symbols
|
|
|
|
|
in the @code{debug} output), and binutils.")))
|
|
|
|
|
|
2023-04-10 13:51:24 +00:00
|
|
|
|
(define-public gdc-toolchain-11
|
|
|
|
|
(package (inherit (make-gcc-toolchain gdc-11))
|
|
|
|
|
(synopsis "Complete GCC tool chain for D lang development")
|
|
|
|
|
(description "This package provides a complete GCC tool chain for
|
|
|
|
|
D lang development to be installed in user profiles. This includes
|
|
|
|
|
gdc, as well as libc (headers and binaries, plus debugging symbols
|
|
|
|
|
in the @code{debug} output), and binutils.")))
|
|
|
|
|
|
2019-12-13 12:53:47 +00:00
|
|
|
|
;; Provide the Fortran toolchain package only for the version of gfortran that
|
|
|
|
|
;; is used by Guix internally to build Fortran libraries, because combining
|
|
|
|
|
;; code compiled with different versions can cause problems.
|
|
|
|
|
|
|
|
|
|
(define-public gfortran-toolchain
|
|
|
|
|
(package (inherit (make-gcc-toolchain gfortran))
|
|
|
|
|
(synopsis "Complete GCC tool chain for Fortran development")
|
|
|
|
|
(description "This package provides a complete GCC tool chain for
|
|
|
|
|
Fortran development to be installed in user profiles. This includes
|
|
|
|
|
gfortran, as well as libc (headers and binaries, plus debugging symbols
|
|
|
|
|
in the @code{debug} output), and binutils.")))
|
|
|
|
|
|
|
|
|
|
|
gnu: Split (gnu packages base), adding (gnu packages commencement).
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0,
findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet,
binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0,
texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash,
cross-gcc-wrapper, static-bash-for-glibc, glibc-final,
gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++,
gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs,
guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final,
%boot5-inputs, %final-inputs, canonical-package, gcc-toolchain,
gcc-toolchain-4.8, gcc-toolchain-4.9): Move to...
* gnu/packages/commencement.scm: ... here. New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/check-final-inputs-self-contained.scm: Adjust accordingly.
* gnu/packages/cross-base.scm: Likewise.
* gnu/packages/make-bootstrap.scm: Likewise.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/gnu.scm (standard-packages, gnu-build,
gnu-cross-build): Likewise.
* guix/build-system/perl.scm (perl-build): Likewise.
* guix/build-system/python.scm (python-build): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Likewise.
* guix/download.scm (url-fetch): Likewise.
* guix/gexp.scm (default-guile): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/monads.scm (run-with-store): Likewise.
* guix/packages.scm (default-guile): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/svn-download.scm (svn-fetch): Likewise.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths):
Likewise.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/guix-package.sh: Likewise.
* gnu/services/base.scm: Use 'canonical-package' instead of xxx-final.
* gnu/services/xorg.scm: Likewise.
* gnu/system/vm.scm: Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-26 22:25:17 +00:00
|
|
|
|
;;; commencement.scm ends here
|