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

Commits on Jan 17, 2022

  1. Add PanicInfo::can_unwind which indicates whether a panic handler is

    allowed to trigger unwinding.
    Amanieu committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    528c4f9 View commit details
    Browse the repository at this point in the history
  2. Change TerminatorKind::Abort to call the panic handler instead of

    aborting immediately.
    
    The panic handler is called with a special flag which forces it to abort
    after calling the panic hook.
    Amanieu committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    fe9dc6e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ecd39aa View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2022

  1. Update dependencies

    GuillaumeGomez committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    80b26bd View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2022

  1. Simplify use of map_or

    oli-obk authored Jan 20, 2022
    Configuration menu
    Copy the full SHA
    8d0d023 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1521b53 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c55819a View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2022

  1. Clarify some code relating to interning and types.

    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.
    nnethercote committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    d46ed5d View commit details
    Browse the repository at this point in the history
  2. Add L4Bender as linker variant

    humenda authored and atopia committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    d984287 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    24588e6 View commit details
    Browse the repository at this point in the history
  4. adapt L4Bender implementation

    - 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.
    atopia committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    660d993 View commit details
    Browse the repository at this point in the history
  5. Gate l4-bender linker flavor

    petrochenkov authored and atopia committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    29d6235 View commit details
    Browse the repository at this point in the history
  6. 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.
    tmiasko committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    888332f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    beeba4b View commit details
    Browse the repository at this point in the history
  8. 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 miri, we temporarily disable drop
    tracking so miri is unblocked while we properly fix the issue.
    eholk committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    1309088 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    2c2deff View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    ead84d0 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    78cee22 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    2eb8bfc View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2022

  1. Rollup merge of rust-lang#85967 - atopia:update-l4re-target, r=petroc…

    …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.
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    6e5ec70 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#92828 - Amanieu:unwind-abort, r=dtolnay

    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)
    ```
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    87b7ad4 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#93012 - GuillaumeGomez:pulldown-list, r=cam…

    …elid
    
    Update pulldown-cmark version to fix markdown list issue
    
    Fixes rust-lang#92971.
    
    r? ``@camelid``
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    3c37d63 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#93116 - rust-lang:oli-obk-patch-1, r=jackh726

    Simplify use of `map_or`
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    287d439 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#93132 - Urgau:fix-rustdoc-json-format-versi…

    …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.
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    dca374f View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#93147 - nnethercote:interner-cleanups, r=lcnr

    Interner cleanups
    
    Improve some code that I have found confusing.
    
    r? ``@lcnr``
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    2aa8b90 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#93153 - tmiasko:reject-unsupported-naked-fu…

    …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``
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    7d624e1 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#93165 - eholk:disable-generator-drop-tracki…

    …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.
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    828b28c View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#93170 - GuillaumeGomez:gui-tests-explanatio…

    …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``
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    0bfa1a4 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#93172 - jsha:re-remove-line, r=camelid

    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``
    matthiaskrgr authored Jan 22, 2022
    Configuration menu
    Copy the full SHA
    9a93de8 View commit details
    Browse the repository at this point in the history