1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

Rework bootstrap to be reproducible

* configure.ac:
* Makefile.am (SUBDIRS): Replace bootstrap/ with stage0, stage1, and
stage2.
* am/bootstrap.am: Include all files and all rules.
* meta/build-env.in (GUILE_AUTO_COMPILE): Always turn off
auto-compilation.  Take a GUILE_BOOTSTRAP_STAGE argument, which can be
stage0, stage1, stage2, or unset.  Adapt the load-compiled path
accordingly.
* meta/uninstalled-env.in: Include .go files from stage2.
* module/Makefile.am: Rework to use boostrap.am.
* module/system/base/optimize.scm (available-optimizations): Punt the
inlinable-exports machinery to -O2.
* stage0/Makefile.am:
* stage1/Makefile.am:
* stage2/Makefile.am: New files.
This commit is contained in:
Andy Wingo 2022-02-01 12:13:13 +01:00
parent 6ed66f42cb
commit 9b9149a5bf
10 changed files with 474 additions and 480 deletions

View file

@ -40,6 +40,9 @@ top_builddir="@top_builddir_absolute@"
exit 1
}
GUILE_AUTO_COMPILE=0
export GUILE_AUTO_COMPILE
# When cross-compiling, let $GUILE_FOR_BUILD use its own .go files since
# the ones that are being built may be incompatible ($GUILE_FOR_BUILD is
# typically used to run `guild compile --target=$host'.) Likewise,
@ -54,7 +57,12 @@ then
GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline"
fi
export GUILE_LOAD_PATH
GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/bootstrap:${top_srcdir}/prebuilt/@SCM_PREBUILT_BINARIES@:${top_builddir}/guile-readline"
case "$GUILE_BOOTSTRAP_STAGE" in
stage0) GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage0:${top_srcdir}/prebuilt/@SCM_PREBUILT_BINARIES@" ;;
stage1) GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage1:${top_builddir}/stage0" ;;
stage2) GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage1" ;;
*) GUILE_LOAD_COMPILED_PATH="${top_builddir}/stage2:${top_builddir}/guile-readline" ;;
esac
export GUILE_LOAD_COMPILED_PATH
# Don't look in installed dirs for guile modules

View file

@ -1,6 +1,6 @@
#!/bin/sh
# Copyright (C) 2003, 2006, 2008, 2009, 2010, 2011, 2012, 2015, 2017 Free Software Foundation
# Copyright (C) 2003, 2006, 2008, 2009, 2010, 2011, 2012, 2015, 2017, 2022 Free Software Foundation
#
# This file is part of GUILE.
#
@ -80,7 +80,7 @@ then
fi
export GUILE_LOAD_PATH
for d in "/prebuilt/@SCM_PREBUILT_BINARIES@" "/bootstrap" "/module" "/guile-readline"
for d in "/prebuilt/@SCM_PREBUILT_BINARIES@" "/stage2" "/guile-readline"
do
# This hair prevents double inclusion.
# The ":" prevents prefix aliasing.