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 10 pull requests #93191

Closed
wants to merge 29 commits into from

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Amanieu and others added 29 commits January 17, 2022 00:39
aborting immediately.

The panic handler is called with a special flag which forces it to abort
after calling the panic hook.
I have found this code very confusing at times. This commit clarifies
things.

In particular, the commit explains the requirements that the `Borrow`
impls put on the `Eq` and `Hash` impls, which are non-obvious. And it
puts the `Borrow` impls first, since they force `Eq` and `Hash` to have
particular forms.

The commit also notes `TyS`'s uniqueness requirements.
- Fix style errors.

- L4-bender does not yet support dynamic linking.

- Stack unwinding is not yet supported for x86_64-unknown-l4re-uclibc.
  For now, just abort on panics.

- Use GNU-style linker options where possible. As suggested by review:
    - Use standard GNU-style ld syntax for relro flags.
    - Use standard GNU-style optimization flags and logic.
    - Use standard GNU-style ld syntax for --subsystem.

- Don't read environment variables in L4Bender linker. Thanks to
  CARGO_ENCODED_RUSTFLAGS introduced in rust-lang#9601, l4-bender's arguments can
  now be passed from the L4Re build system without resorting to custom
  parsing of environment variables.
Transition unsupported naked functions future incompatibility lint into
an error:

* Naked functions must contain a single inline assembly block.
  Introduced as future incompatibility lint in 1.50 rust-lang#79653.
  Change into an error fixes a soundness issue described in rust-lang#32489.

* Naked functions must not use any forms of inline attribute.
  Introduced as future incompatibility lint in 1.56 rust-lang#87652.
Generator drop tracking caused an ICE for generators involving the Never
type (Issue rust-lang#93161). Since this breaks miri, we temporarily disable drop
tracking so miri is unblocked while we properly fix the issue.
…henkov

add support for the l4-bender linker on the x86_64-unknown-l4re-uclibc tier 3 target

This PR contains the work by ``@humenda`` to update support for the `x86_64-unknown-l4re-uclibc` tier 3 target (published at [humenda/rust](https://github.com/humenda/rust)), rebased and adapted to current rust in follow up commits by myself. The publishing of the rebased changes is authorized and preferred by the original author. As the goal was to distort the original work as little as possible, individual commits introduce changes that are incompatible to the newer code base that the changes were rebased on. These incompatibilities have been remedied in follow up commits, so that the PR as a whole should result in a clean update of the target.
If you prefer another strategy to mainline these changes while preserving attribution, please let me know.
Print a helpful message if unwinding aborts when it reaches a nounwind function

This is implemented by routing `TerminatorKind::Abort` back through the panic handler, but with a special flag in the `PanicInfo` which indicates that the panic handler should *not* attempt to unwind the stack and should instead abort immediately.

This is useful for the planned change in rust-lang/lang-team#97 which would make `Drop` impls `nounwind` by default.

### Code

```rust
#![feature(c_unwind)]

fn panic() {
    panic!()
}

extern "C" fn nounwind() {
    panic();
}

fn main() {
    nounwind();
}
```

### Before

```
$ ./test
thread 'main' panicked at 'explicit panic', test.rs:4:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Illegal instruction (core dumped)
```

### After

```
$ ./test
thread 'main' panicked at 'explicit panic', test.rs:4:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at 'panic in a function that cannot unwind', test.rs:7:1
stack backtrace:
   0:     0x556f8f86ec9b - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hdccefe11a6ac4396
   1:     0x556f8f88ac6c - core::fmt::write::he152b28c41466ebb
   2:     0x556f8f85d6e2 - std::io::Write::write_fmt::h0c261480ab86f3d3
   3:     0x556f8f8654fa - std::panicking::default_hook::{{closure}}::h5d7346f3ff7f6c1b
   4:     0x556f8f86512b - std::panicking::default_hook::hd85803a1376cac7f
   5:     0x556f8f865a91 - std::panicking::rust_panic_with_hook::h4dc1c5a3036257ac
   6:     0x556f8f86f079 - std::panicking::begin_panic_handler::{{closure}}::hdda1d83c7a9d34d2
   7:     0x556f8f86edc4 - std::sys_common::backtrace::__rust_end_short_backtrace::h5b70ed0cce71e95f
   8:     0x556f8f865592 - rust_begin_unwind
   9:     0x556f8f85a764 - core::panicking::panic_no_unwind::h2606ab3d78c87899
  10:     0x556f8f85b910 - test::nounwind::hade6c7ee65050347
  11:     0x556f8f85b936 - test::main::hdc6e02cb36343525
  12:     0x556f8f85b7e3 - core::ops::function::FnOnce::call_once::h4d02663acfc7597f
  13:     0x556f8f85b739 - std::sys_common::backtrace::__rust_begin_short_backtrace::h071d40135adb0101
  14:     0x556f8f85c149 - std::rt::lang_start::{{closure}}::h70dbfbf38b685e93
  15:     0x556f8f85c791 - std::rt::lang_start_internal::h798f1c0268d525aa
  16:     0x556f8f85c131 - std::rt::lang_start::h476a7ee0a0bb663f
  17:     0x556f8f85b963 - main
  18:     0x7f64c0822b25 - __libc_start_main
  19:     0x556f8f85ae8e - _start
  20:                0x0 - <unknown>
thread panicked while panicking. aborting.
Aborted (core dumped)
```
…elid

Update pulldown-cmark version to fix markdown list issue

Fixes rust-lang#92971.

r? ``@camelid``
…on, r=oli-obk

Increase the format version of rustdoc-json-types

PR rust-lang#87648 changed `rustdoc-json-types` without increasing the format version.
rust-lang@e7529d6#diff-ede26372490522288745c5b3df2b6b2a1cc913dcd09b29af3a49935afe00c7e6

This PR increase the format version by +1 and move the `FORMAT_VERSION` constant to the start of the file to hopefully make it more clear that `rustdoc-json-types` is versioned.
Interner cleanups

Improve some code that I have found confusing.

r? ``@lcnr``
…nctions, r=Amanieu

Reject unsupported naked functions

Transition unsupported naked functions future incompatibility lint into an error:

* Naked functions must contain a single inline assembly block. Introduced as future incompatibility lint in 1.50 rust-lang#79653. Change into an error fixes a soundness issue described in rust-lang#32489.

* Naked functions must not use any forms of inline attribute. Introduced as future incompatibility lint in 1.56 rust-lang#87652.

Closes rust-lang#32490.
Closes rust-lang#32489.

r? ``@Amanieu`` ``@npmccallum`` ``@joshtriplett``
…ng, r=nikomatsakis

Disable drop range tracking in generators

Generator drop tracking caused an ICE for generators involving the Never type (Issue rust-lang#93161). Since this breaks a test case with miri, we temporarily disable drop tracking so miri is unblocked while we properly fix the issue.
…ns, r=jsha

Add missing GUI test explanations

Some GUI tests didn't have a global explanation about what they were testing. This fixes it.

r? ``@jsha``
rustdoc: remove dashed underline under main heading

This was removed in rust-lang#92797 but accidentally re-introduced by a bad merge in rust-lang#92861.

r? ``@camelid``
@rustbot rustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Jan 22, 2022
@rustbot rustbot added T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jan 22, 2022
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=10

@bors
Copy link
Contributor

bors commented Jan 22, 2022

📌 Commit 9a93de8 has been approved by matthiaskrgr

@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 Jan 22, 2022
@bors
Copy link
Contributor

bors commented Jan 22, 2022

⌛ Testing commit 9a93de8 with merge fd4ea864e7938263b9df92b1eb4a82e767b1950a...

@bors
Copy link
Contributor

bors commented Jan 22, 2022

💥 Test timed out

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 22, 2022
@matthiaskrgr
Copy link
Member Author

matthiaskrgr commented Jan 22, 2022

@bors retry x86_64-msvc-1 timeout

Sat, 22 Jan 2022 10:50:56 GMT
Sat, 22 Jan 2022 10:50:56 GMT 	finished in 2.029 seconds
Sat, 22 Jan 2022 10:50:56 GMT [TIMING] Crate { compiler: Compiler { stage: 2, host: TargetSelection { triple: "x86_64-pc-windows-msvc", file: None } }, target: TargetSelection { triple: "x86_64-pc-windows-msvc", file: None }, mode: Rustc, test_kind: Test, krate: "rustc_log" } -- 2.031
Sat, 22 Jan 2022 10:50:56 GMT Set({test::compiler\rustc_macros}) not skipped for "bootstrap::test::CrateLibrustc" -- not in [src/test/ui, src/tools/linkchecker]
Sat, 22 Jan 2022 10:50:56 GMT [TIMING] CrateLibrustc { compiler: Compiler { stage: 2, host: TargetSelection { triple: "x86_64-pc-windows-msvc", file: None } }, target: TargetSelection { triple: "x86_64-pc-windows-msvc", file: None }, test_kind: Test, krate: "rustc_log" } -- 0.000
Sat, 22 Jan 2022 10:50:56 GMT Testing rustc_macros stage1 (x86_64-pc-windows-msvc -> x86_64-pc-windows-msvc)
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] build_script_build test:false 0.861
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] unicode_xid test:false 0.178
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] build_script_build test:false 0.835
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] proc_macro2 test:false 2.013
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] quote test:false 0.854
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] syn test:false 18.773
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] synstructure test:false 2.273
Sat, 22 Jan 2022 10:50:57 GMT [RUSTC-TIMING] rustc_macros test:false 4.988
Sat, 22 Jan 2022 10:50:57 GMT    Compiling rustc_macros v0.1.0 (D:\a\rust\rust\compiler\rustc_macros)
Sat, 22 Jan 2022 14:06:24 GMT Error: The operation was canceled.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 22, 2022
@bors
Copy link
Contributor

bors commented Jan 22, 2022

⌛ Testing commit 9a93de8 with merge bf6677e5b746d114bab76446002dc6a63e82b43c...

@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@klensy
Copy link
Contributor

klensy commented Jan 22, 2022

Here we go again:

Sat, 22 Jan 2022 10:50:57 GMT Compiling rustc_macros v0.1.0 (D:\a\rust\rust\compiler\rustc_macros)
Sat, 22 Jan 2022 14:06:24 GMT Error: The operation was canceled.

#92883 (comment)

@matthiaskrgr
Copy link
Member Author

@klensy yeah :/
Do you want to open an issue for tracking all these msvc hangs? 🙂 Maybe we can gather some data and the infra team can have a look if this keeps bugging us.

@matthiaskrgr
Copy link
Member Author

Actually I didn't want to include #93165 in this, I'll abort
@bors r-

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 22, 2022
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@matthiaskrgr
Copy link
Member Author

this pr was also affected by #93329

@matthiaskrgr matthiaskrgr deleted the rollup-2mnnbmy branch February 13, 2022 00:53
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-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.