rust/mk
Alex Crichton c822546c9e mk: Hardcode the bootstrap key for each release
Starting with the 1.10.0 release we would like to bootstrap all compilers from
the previous stable release. For example the 1.10.0 compiler should bootstrap
from the literal 1.9.0 release artifacts. To do this, however, we need a way to
enable unstable features temporarily in a stable compiler (as the released
compiler is stable), but it turns out we already have a way to do that!

At compile time the configure script selects a `CFG_BOOTSTRAP_KEY` variable
value and then exports it into the makefiles. If the `RUSTC_BOOTSTRAP_KEY`
environment variable is set to this value, then the compiler is allowed to
"cheat" and use unstable features.

This method of choosing the bootstrap key, however, is problematic for the
intention of bootstrapping from the previous release. Each time a 1.9.0 compiler
is created, a new bootstrap key will be selected. That means that the 1.10.0
compiler will only compile from *our* literal release artifacts. Instead
distributions would like to bootstrap from their own compilers, so instead we
simply hardcode the bootstrap key for each release.

This patch uses the same `CFG_FILENAME_EXTRA` value (a hash of the release
string) as the bootstrap key. Consequently all 1.9.0 compilers, no matter where
they are compiled, will have the same bootstrap key. Additionally we won't need
to keep updating this as it'll be based on the release number anyway.

Once the 1.9.0 beta has been created, we can update the 1.10.0 nightly sources
(the `master` branch at that time) to bootstrap from that release using this
hard-coded bootstrap key. We will likely just hardcode into the makefiles what
the previous bootstrap key was and we'll change that whenever the stage0
compiler is updated.
2016-04-04 11:24:44 -07:00
..
cfg Use explicit -march flags in the i586 mk file 2016-03-19 00:04:27 +01:00
clean.mk Added missing argument to 'find' 2015-10-27 23:47:53 +13:00
crates.mk move const_eval and check_match out of librustc 2016-03-30 13:43:36 +02:00
ctags.mk Update the ctags rules and targets. 2015-07-30 06:35:42 +10:00
debuggers.mk
dist.mk mk: Fix make dist 2016-03-12 12:22:40 -08:00
docs.mk mk: Move disable-jemalloc logic into makefiles 2016-02-25 21:05:59 -08:00
grammar.mk Revert "mk: fix some undefined variable warnings" 2016-02-01 23:27:04 -08:00
host.mk mk: Move disable-jemalloc logic into makefiles 2016-02-25 21:05:59 -08:00
install.mk mk: Move disable-jemalloc logic into makefiles 2016-02-25 21:05:59 -08:00
llvm.mk rustc_llvm: Tweak how initialization is performed 2016-02-11 11:12:33 -08:00
main.mk mk: Hardcode the bootstrap key for each release 2016-04-04 11:24:44 -07:00
platform.mk mk: Move disable-jemalloc logic into makefiles 2016-02-25 21:05:59 -08:00
prepare.mk mk: Move disable-jemalloc logic into makefiles 2016-02-25 21:05:59 -08:00
reconfig.mk
rt.mk mk: A few build fixes for i586-pc-windows-msvc 2016-03-29 16:43:49 -07:00
rustllvm.mk
snap.mk Remove extra eval call in snap.mk 2015-11-13 15:15:51 -05:00
stage0.mk
target.mk mk: Add -C metadata for compiling crates we ship 2016-03-28 09:19:25 -07:00
tests.mk Salt test crates in buildsystem. 2016-03-25 14:07:18 -04:00
util.mk