• A
    rustbuild: Tweak how stage1 compilers are selected · f7cc467b
    Alex Crichton 提交于
    This commit furthers the previous one to ensure that we don't build an
    extra stage of the compiler in CI. A test has been added to rustbuild to
    ensure that this doesn't regress, and then in debugging this test it was
    hunted down that the `dist::Std` target was the one erroneously pulling
    in the wrong compiler.
    
    The `dist::Std` step was updated to instead account for the "full
    bootstrap" or not flag, ensuring that the correct compiler for compiling
    the final standard library was used. This was another use of the
    `force_use_stage1` function which was in theory supposed to be pretty
    central, so existing users were all evaluated and a new function,
    `Builder::compiler_for`, was introduced. All existing users of
    `force_use_stage1` have been updated to use `compiler_for`, where the
    semantics of `compiler_for` are similar to that of `compiler` except
    that it doesn't guarantee the presence of a sysroot for the arguments
    passed (as they may be modified).
    
    Perhaps one day we can unify `compiler` and `compiler_for`, but the
    usage of `Builder::compiler` is so ubiquitous it would take quite some
    time to evaluate whether each one needs the sysroot or not, so it's
    hoped that can be done in parallel.
    f7cc467b
builder.rs 69.1 KB