| Age | Commit message (Collapse) | Author | Lines |
|
|
|
We can't use git commands to compute a prerelease version when we're
building from a source tarball, or if git is otherwise unavailable.
We'll just call such builds `x.y.z-beta`, without a prerelease.
|
|
We got #47396 merged but it looks like rcs failed to deploy the beta because
when it tried to calculate the beta version its cwd was different. Let's try to
fix this bug and fix auto-deploy by explicitly setting the `current_dir` for git
commands.
|
|
This commit automatically calculates the beta prerelease number meaning we'll no
longer need to manually change the beta version. Instead beta will automatically
deploy any time a backport is merged, ensuring that backports are released for
testing ASAP. More details about this can be found on the internal [forums]
The only bit of trickiness here was that on CI we do shallow clones by default
but the git history probing here requires some more information. Do cope with
that this commit chooses the strategy of converting the repository to a full
clone via the `--unshallow` flag to `git`. That way this should work for local
developers as well as CI changes.
Note that this commit is coming first to the beta branch to test it, and if
successful we can go back and land it on master.
[forums]: https://internals.rust-lang.org/t/tweaking-how-betas-are-produced/6526
|
|
This reverts commit ab018c76e14b87f3c9e0b7384cc9b02d94779cd5.
This also adds the `ToolBuild::is_ext_tool` field to replace the previous
`ToolBuild::expectation` field, to indicate whether a build-failure of
certain tool is essential.
|
|
|
|
|
|
We copy built tool binaries into a dedicated directory to avoid deleting
them, stageN-tools-bin. These aren't ever cleared out by code, since
there should be no reason to do so, and we'll simply overwrite them as
necessary.
When clearing out the stageN-{std,rustc,tools} directories, make sure to
delete both Cargo directories -- per-target and build scripts. This
ensures that changing libstd doesn't cause problems due to build scripts
not being rebuilt, even though they should be.
|
|
|
|
|
|
|
|
Add --all flag to ./x.py clean
This make `clean` removes the LLVM and download cache directory as well.
Fixes #44214.
r? @Mark-Simulacrum
|
|
This is the name the `gcc` crate has moved to
|
|
This flag removes all build artifacts, including the LLVM build
directory.
|
|
|
|
|
|
The full hash is necessary to build the download URL for "alternate"
compiler builds.
This is a first step for
https://github.com/rust-lang-nursery/rustup.rs/issues/1099
|
|
rustbuild: Avoid some extraneous rustc compiles on cross builds
This tweaks a few locations here and there to avoid compiling rustc too many times on our cross-builders on CI.
Closes https://github.com/rust-lang/rust/issues/44132
|
|
When we pass `--host` the `self.hosts` array doesn't contain `self.build`, so
check `self.build` to see if we can uplift.
|
|
The crate itself is internally referenced by serde_derive.
|
|
This avoids the possibility of a duplicate or conflicting crt-static
command line option sent to rustc.
|
|
This controls the value of the crt-static feature used when building the
standard library for a target, as well as the compiler itself when that
target is the host.
|
|
Fix typos & us spellings
Fixing some typos and non en-US spellings.
(Update of PR https://github.com/rust-lang/rust/pull/42812 )
|
|
Like #43008 (f668999), but _much more aggressive_.
|
|
|
|
Some users of the build system change the git sha on every build due to
utilizing git to push changes to a remote server. This allows them to
simply configure that away instead of depending on custom patches to
rustbuild.
|
|
This introduces a slight change in behavior, where we unilaterally
respect the --host and --target parameters passed for all sanity
checking and runtime configuration.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When copying libstd for the stage 2 compiler, the builder ignores the
configured libdir/libdir_relative configuration parameters. This causes
the compiler to fail to find libstd, which cause any tools built with the
stage 2 compiler to fail.
To fix this, make the copy steps of rustbuild aware of the libdir_relative
parameter when the stage >= 2. Also update the dist target to be aware of
the new location of libstd.
|
|
Don't pass the flag when we're compiling the compiler or other related tools
|
|
|
|
|
|
Prevents accidental mistakes in not using the right verbosity by going
to only config or flags.
|
|
This makes later negation much easier to interpret.
|
|
|
|
Rename Build.{cargo, rustc} to {initial_cargo, initial_rustc}.
|