Commit graph

171 commits

Author SHA1 Message Date
Eric Huss
73b7a04032 Fix crate-version with rustdoc in bootstrap. 2020-08-14 14:50:18 -07:00
Mark Rousskov
cc7abc7563 Avoid dumping rustc invocations to stdout
These are quite long, usually, and in most cases not interesting. On smaller
terminals they can take up more than a full page of output, hiding the error
diagnostics emitted.
2020-08-02 10:54:13 -04:00
Ximin Luo
e7089a97e7 rustbuild: refactor how the wrapper deals with exit codes 2020-07-27 23:22:07 +01:00
Ximin Luo
3dcab2922c rustbuild: format both Ok/Err separately, since Result doesn't do it 2020-07-27 22:44:48 +01:00
Ximin Luo
84896c7f09 rustbuild: use Display for exit status instead of Debug, see #74832 for justification 2020-07-27 22:06:04 +01:00
Ximin Luo
b99668bd22 rustbuild: rename exec_cmd -> status_code for clarity 2020-07-27 03:00:28 +01:00
Ximin Luo
0cf17e750d rustbuild: fix bad usage of UNIX exec() in rustc wrapper
exec never returns, it replaces the current process. so anything after it is
unreachable. that's not how exec_cmd() is used in the surrounding code
2020-07-27 02:43:47 +01:00
Manish Goregaokar
e5532436a1
Rollup merge of #74046 - ehuss:deny-warnings-caching, r=Mark-Simulacrum
Fix caching issue when building tools.

This fixes a problem with tool builds not being cached properly.

#73297 changed it so that Clippy will participate in the "deny warnings" setting. Unfortunately this causes a problem because Clippy shares the build directory with other tools which do not participate in "deny warnings".  Because Cargo does not independently cache artifacts based on different RUSTFLAGS settings, it causes all the shared dependencies to get rebuilt if Clippy ever gets built.

The solution here is to stop using RUSTFLAGS, and just sneak the settings in through the rustc wrapper. Cargo won't know about the different settings, so it will not bust the cache. This should be safe since lint settings on dependencies are ignored. This is how things used to work in the past before #64316.

Alternate solutions:
* Treat Clippy as a "submodule" and don't enforce warnings on it. This was the behavior before #73297. The consequence is that if a warning sneaks into clippy, that the clippy maintainers will need to fix it when they sync clippy back to the clippy repo.
* Just deny warnings on all tools (removing the in-tree/submodule distinction). This is tempting, but with some issues (cc #52336):
  * Adding or changing warnings in rustc can be difficult to land because tools have to be updated if they trip the warning. In practice, this isn't too bad.  Cargo (and rustfmt) already runs with `deny(warnings)`, so this has been the de-facto standard already (although they do not use the extra lints like `unused_lifetimes`).
* Teach Cargo to add flags to the workspace members, but not dependencies.
* Teach Cargo to add flags without fingerprinting them?
* Teach Cargo to independently cache different RUSTFLAGS artifacts (this was [reverted](https://github.com/rust-lang/cargo/pull/7417) due to complications). This would also unnecessarily rebuild dependencies, but would avoid cache thrashing.
* Teach Cargo about lint settings.

Closes #74016
2020-07-13 22:23:08 -07:00
Manish Goregaokar
218d96ed6b
Rollup merge of #70563 - GuillaumeGomez:page-hash-handling, r=ollie27,kinnison
[rustdoc] Page hash handling

Fixes https://github.com/rust-lang/rust/issues/70476

A good example to see the change is to use this URL: https://doc.rust-lang.org/nightly/std/string/struct.String.html#from_iter.v-3

After the change, it actually goes to the target element (and change the page hash to something more clear for the users).

r? @kinnison

cc @ollie27
2020-07-06 17:45:15 -07:00
Eric Huss
310c97b6ba Fix caching issue when building tools. 2020-07-04 14:46:04 -07:00
Guillaume Gomez
e955bebcda Remove render-redirect-pages option in rustdoc 2020-07-02 14:14:59 +02:00
Alex Crichton
3dfbf0bc73 rustbuild: Move compiler-builtins build logic to manifest
This commit moves the compiler-builtins-specific build logic from
`src/bootstrap/bin/rustc.rs` into the workspace `Cargo.toml`'s
`[profile]` configuration. Now that rust-lang/cargo#7253 is fixed we can
ensure that Cargo knows about debug assertions settings, and it can also
be configured to specifically disable debug assertions unconditionally
for compiler-builtins. This should improve rebuild logic when
debug-assertions settings change and also improve build-std integration
where Cargo externally now has an avenue to learn how to build
compiler-builtins as well.
2020-06-29 06:53:56 -07:00
Alex Crichton
0546d11528 Fix cross-compiling LLD to different platforms
Looks like the native build system isn't great a coping with this, so
try to work around that with a few workarounds.
2020-04-24 11:18:59 -07:00
Vadim Petrochenkov
8771319dfa rustbuild: Remove LLD flavor workaround for MSVC 2020-04-12 21:04:17 +03:00
Guillaume Gomez
c57de34e8f Stabilize --crate-version option in rustdoc 2020-02-26 22:08:59 +01:00
bors
1ad6b5e1e6 Auto merge of #68623 - Zoxc:lld, r=Mark-Simulacrum
Add an option to use LLD to link the compiler on Windows platforms

Based on https://github.com/rust-lang/rust/pull/68609.

Using LLD is good way to improve compile times on Windows since `link.exe` is quite slow. The time for `x.py build --stage 1 src/libtest` goes from 0:12:00 to 0:08:29. Compile time for `rustc_driver` goes from 226.34s to 18.5s. `rustc_macros` goes from 28.69s to 7.7s. The size of `rustc_driver` is also reduced from 83.3 MB to 78.7 MB.

r? @Mark-Simulacrum
2020-02-09 15:24:50 +00:00
Matthias Krüger
5f979e9afa bootstrap: fix clippy warnings 2020-02-03 20:26:36 +01:00
John Kåre Alsaker
bfba6ef328 Add an option to use LLD to link the compiler on Windows platforms 2020-01-29 18:05:36 +01:00
Mark Rousskov
a06baa56b9 Format the world 2019-12-22 17:42:47 -05:00
Guillaume Gomez
0282c27781 rename cfg(rustdoc) into cfg(doc) 2019-11-06 18:32:51 +01:00
Alex Crichton
160787129b Add some FIXME for future Cargo issues 2019-09-23 09:34:44 -07:00
Alex Crichton
385470b8bb Move handling of -Cprefer-dynamic into builder.rs
This logic is *super* old and can be tweaked and moved into `builder.rs`
2019-09-23 09:34:44 -07:00
Alex Crichton
b3f95f460f Move --cfg bootstrap out of rustc.rs
Instead let's do this via `RUSTFLAGS` in `builder.rs`. Currently
requires a submodule update of `stdarch` to fix a problem with previous
compilers.
2019-09-23 09:34:44 -07:00
Alex Crichton
a816fa185b Move handling of RUSTC_PARALLEL_COMPILER to compile.rs
No longer needs to live in `rustc.rs`
2019-09-23 09:34:44 -07:00
Alex Crichton
3d13f46304 Move handling of {MUSL,WASI}_ROOT to compile.rs
No longer any need for them to live in `rustc.rs`!
2019-09-23 09:34:44 -07:00
Alex Crichton
5cc6eb4082 Move debuginfo level handling to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
5abc4cd01c Remove duplication of RUSTC_DEBUGINFO_MAP in rustc.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
2d6f3fede0 Move handling of codegen-units to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
22699d3139 Move handling of internal lints to build.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
f8b19f2b78 Move handling of some warnings to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
3a648b6580 Move handling of -Dwarnings to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
1bec962f46 bootstrap: Remove need for RUSTC_RPATH variable 2019-09-23 09:34:44 -07:00
Alex Crichton
ac29809940 bootstrap: Move RUSTC_CRT_STATIC to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
04cb0653a8 bootstrap: Remove need for RUSTC_SAVE_ANALYSIS 2019-09-23 09:34:44 -07:00
Alex Crichton
d63e2def82 bootstrap: Remove usage of RUSTC_TARGET_LINKER
Cargo has a native enviroment variable for this.
2019-09-23 09:34:44 -07:00
Alex Crichton
c36849a542 bootstrap: Move -Zdual-proc-macros to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
812117af53 bootstrap: Move -Zexternal-macro-backtrace to builder
No need for this to be in `rustc.rs`
2019-09-23 09:34:44 -07:00
Alex Crichton
4f35166f80 bootstrap: Move RUSTC_BREAK_ON_ICE out of shim
This is always set, so let's just always set it elsewhere to reduce the
need for our `rustc.rs` shim.
2019-09-23 09:34:44 -07:00
Alex Crichton
557e69b7ca bootstrap: Delete handling of RUSTC_METADATA_SUFFIX
This is already handled by `__CARGO_DEFAULT_LIB_METADATA` so there's no
need to doubly do it.
2019-09-23 09:34:44 -07:00
Mark Rousskov
c86ea34639 Ensure all warnings are emitted even on warnings=warn 2019-09-04 14:21:35 -04:00
Andreas Jonson
f0b30c7ded remove the unstable rustdoc parameter --linker
use the code generation parameter -Clinker (same parameter as rustc)
to control what linker to use for building the rustdoc test executables.

closes: #63816
2019-09-01 08:50:23 +02:00
Marc-Antoine Perennou
935c1c8607 rustbuild: allow disabling deny(warnings) for bootstrap
When deny-warnings is not specified or set to true, the behaviour is the same as before.
When deny-warnings is set to false, warnings are now allowed

Fixes #63911

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-08-27 17:26:54 +02:00
Matthew Jasper
6ee60af1ab Make built-in derives opaque macros 2019-08-17 08:59:36 +01:00
Mazdak Farrokhzad
e8fb78bf6c
Rollup merge of #63642 - eddyb:wrap-it-up, r=rkruppe,Mark-Simulacrum
Rename overflowing_{add,sub,mul} intrinsics to wrapping_{add,sub,mul}.

These confused @Gankra, and then, also me, especially since `overflowing_*` *methods* also exist, but they map to `*_with_overflow` intrinsics!

r? @oli-obk / @nikomatsakis cc @Mark-Simulacrum (on the rustbuild workaround)
2019-08-17 03:03:02 +02:00
Mazdak Farrokhzad
786aaf0f64
Rollup merge of #63558 - jgalenson:move-remap, r=alexcrichton
Remap paths for proc-macro crates.

The remap-debuginfo config option remaps paths in most crates, but it does not apply to proc-macros, so they are still non-reproducible.  This patch fixes that.

I'm not completely sure if this is the best way to do this, but to get reproducible builds we need librustc_macros to be built with --remap-path-prefix.  I was previously modifying Cargo to pass that argument to all child crates, so this seems simpler and more correct.

I did not add a test since there do not seem to be any existing tests for RUSTC_DEBUGINFO_MAP.

r? @alexcrichton
2019-08-17 03:02:59 +02:00
Eduard-Mihai Burtescu
892ef6fa48 rustbuild: work around the stdarch cfg(bootstrap) bug. 2019-08-16 20:12:10 +03:00
Joel Galenson
9e2d02a1a1 Remap debuginfo for all crates. 2019-08-14 10:47:06 -07:00
Joel Galenson
55caf1dcd3 Remap paths for proc-macro crates.
The remap-debuginfo config option remaps paths in most crates, but it
does not apply to proc-macros, so they are still non-reproducible.
This patch fixes that.
2019-08-14 08:30:59 -07:00
Alex Crichton
f7ff36dcb2 Update error-format to match new Cargo flags for pipelining 2019-08-14 05:39:53 -04:00
Mark Rousskov
6575a96198 Disable --cfg bootstrap in libcore
This is needed to permit us building core_arch which is a submodule dep
(so we can't snap it to the new beta compiler).
2019-08-14 05:39:53 -04:00