Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 6 pull requests #66452

Closed
wants to merge 22 commits into from
Closed

Conversation

Centril
Copy link
Contributor

@Centril Centril commented Nov 15, 2019

Successful merges:

Failed merges:

r? @ghost

ehuss and others added 22 commits November 9, 2019 12:21
add on HermizCore an additional lock to protect static data
This is a bit unfortunate, but code needs to be able to fatally error
early on (in particular, syntax_pos after we move SourceMap there). It's
also a tiny bit of code, which means it's ultimately not that bad.
This does not update the use sites or delete the now unnecessary
SourceMapper trait, to allow git to interpret the file move as a rename
rather than a new file.
SourceMap is now in the root of all rustc-specific crates, syntax_pos,
so there's no need for the trait object to decouple the dependencies
between librustc_errors and libsyntax as was needed previously.
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
Update cc, git2, num_cpus.

This updates the `cc` crate, bringing in better parallel building support. Also updates `git2` which enables the parallel feature. (Note: I don't expect it will have a significant impact on build time, but seems good to update anyways.)

The main thorn is that `cc` gained knowledge about RISC-V architectures (rust-lang/cc-rs#428, rust-lang/cc-rs#429, rust-lang/cc-rs#430), but the builders on CI do not have the riscv C compiler installed. This means that bootstraps' cc detection was finding a C compiler that isn't installed, and fails.

The solution here is to override the cc detection to `false`. The C compiler isn't actually used on riscv platforms. AFAIK, the only location would be compiler_builtins, and it currently forces C support off (https://github.com/rust-lang/compiler-builtins/blob/a533ae9c5aa325db209659679535fe1f186eae81/build.rs#L49-L55).

Other possible solutions:
- Add the override in cc_detect for riscv (or any "no-C" platform like wasm32 and nvptx)
- Install and use the appropriate c compiler. I tried this the `g++-riscv64-linux-gnu` package, but it failed missing some header file.

Closes rust-lang#66232
protect creation of destructors by a mutex

- add on HermitCore an additional lock to protect static data
Add more tests for fixed ICEs

Closes rust-lang#36122 (fixed in 1.20.0)
Closes rust-lang#58094 (fixed in rust-lang#66054)
Also, fix mistaken test case, from rust-lang#30904 to rust-lang#30906 (cc @eddyb)

r? @Centril
…excrichton

Add --force-run-in-process unstable option to libtest

When running tests with `-Zpanic_abort_tests`, it's sometimes desirable to fall back to the old behavior of only running tests in-process. This comes in handy if the system process launcher is unavailable, or the test code somehow expects all tests to be run in the same process.

For example, in Fuchsia we have unit tests that actually test the process launcher itself, in which case we can't use the process launcher to run the tests :).

r? @alexcrichton
cc @cramertj,@petrhosek
Move the JSON error emitter to librustc_errors

This is done both as a cleanup (it makes little sense for this emitter to be in libsyntax), but also as part of broader work to decouple Session from librustc itself.

Along the way, this also moves SourceMap to syntax_pos, which is also nice for the above reasons, as well as allowing dropping the SourceMapper trait from code. This had the unfortunate side-effect of moving `FatalError` to rustc_data_structures (it's needed in syntax_pos, due to SourceMap, but putting it there feels somehow worse).
libpanic_unwind for Miri: make sure we have the SEH lang items when needed

r? @oli-obk  @alexcrichton This is required to fix the Miri toolstate. Turns out rustc complains when doing codegen for MSVC and these lang items do not exist. For now `cfg(miri)` needs to still be able to codegen (we [plan to change that](rust-lang/miri#1048 (comment)) but that's a larger project requiring improvements to xargo and maybe also cargo; that should not block fixing the toolstate). Yes, this is a hack, but it is inside `cfg(miri)` so I hope this is okay.

Cc @Aaron1011
@Centril Centril added the rollup A PR which is a rollup label Nov 15, 2019
@Centril
Copy link
Contributor Author

Centril commented Nov 15, 2019

@bors r+ p=6 rollup=never

@bors
Copy link
Contributor

bors commented Nov 15, 2019

📌 Commit 7761647 has been approved by Centril

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Nov 15, 2019
@Centril Centril closed this Nov 15, 2019
@Centril Centril deleted the rollup-p9c0a8b branch November 15, 2019 17:01
@rust-highfive
Copy link
Collaborator

Your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-11-15T17:01:41.6527566Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-15T17:01:41.6782339Z ##[command]git config gc.auto 0
2019-11-15T17:01:41.6849638Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-15T17:01:41.6909874Z ##[command]git config --get-all http.proxy
2019-11-15T17:01:41.7072829Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66452/merge:refs/remotes/pull/66452/merge
2019-11-15T17:01:42.8293753Z fatal: couldn't find remote ref refs/pull/66452/merge
2019-11-15T17:01:42.9031081Z ##[warning]Git fetch failed with exit code 128, back off 1.012 seconds before retry.
2019-11-15T17:01:43.6396122Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66452/merge:refs/remotes/pull/66452/merge
2019-11-15T17:01:44.3743227Z fatal: couldn't find remote ref refs/pull/66452/merge
2019-11-15T17:01:44.4317531Z ##[warning]Git fetch failed with exit code 128, back off 4.729 seconds before retry.
2019-11-15T17:01:49.1087756Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/66452/merge:refs/remotes/pull/66452/merge
2019-11-15T17:01:49.8356066Z fatal: couldn't find remote ref refs/pull/66452/merge
2019-11-15T17:01:49.8880963Z ##[error]Git fetch failed with exit code: 128
2019-11-15T17:01:49.9053369Z ##[section]Starting: Checkout
2019-11-15T17:01:49.9054843Z ==============================================================================
2019-11-15T17:01:49.9054894Z Task         : Get sources
2019-11-15T17:01:49.9054936Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants