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 11 pull requests #68470

Closed
wants to merge 30 commits into from
Closed

Commits on Jan 15, 2020

  1. add bare metal ARM Cortex-A targets to rustc

    -> `rustc --target armv7-none-eabi` will work
    
    also build rust-std (rustup) components for them
    
    -> `rustup target add armv7-none-eabi` will work
    japaric committed Jan 15, 2020
    Configuration menu
    Copy the full SHA
    470cdf5 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2020

  1. Add -Wl,-znotext to default linker flags to link with lld 9 on FreeBS…

    …D 13.0-CURRENT i386
    
    rust-nightly has been failing to link since 2019-12-10 with variations of
    ```
     = note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
    
              ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
              clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)
    
    error: aborting due to previous error
    
    error: could not compile `rustc_macros`.
    ```
    Full log: http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log
    
    AFAICT it stopped building after bumping compiler_builtins to 0.1.22
    in rust-lang#67110.
    Tobias Kortkamp committed Jan 19, 2020
    Configuration menu
    Copy the full SHA
    de38803 View commit details
    Browse the repository at this point in the history
  2. Add -Z no-link flag

    Adds a compiler option to allow rustc compile a crate without linking.
    With this flag, rustc serializes codegen_results into a .rlink file.
    Victor Ding committed Jan 19, 2020
    Configuration menu
    Copy the full SHA
    358ade9 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2020

  1. Configuration menu
    Copy the full SHA
    a3a0776 View commit details
    Browse the repository at this point in the history
  2. compiletest: Simplify multi-debugger support

    Previous implementation used a single mode type to store various pieces
    of otherwise loosely related information:
    
    * Whether debuginfo mode is in use or not.
    * Which debuggers should run in general.
    * Which debuggers are enabled for particular test case.
    
    The new implementation introduces a separation between those aspects.
    There is a single debuginfo mode parametrized by a debugger type.
    The debugger detection is performed first and a separate configuration
    is created for each detected debugger. The test cases are gathered
    independently for each debugger which makes it trivial to implement
    support for `ignore` / `only` conditions.
    
    Functional changes:
    
    * A single `debuginfo` entry point (rather than `debuginfo-cdb`, `debuginfo-gdb+lldb`, etc.).
    * Debugger name is included in the test name.
    * Test outputs are placed in per-debugger directory.
    * Fixed spurious hash mismatch. Previously, the config mode would change
      from `DebugInfoGdbLldb` (when collecting tests) to `DebugInfoGdb` or
      `DebugInfoLldb` (when running them) which would affect hash computation.
    * PYTHONPATH is additionally included in gdb hash.
    * lldb-python and lldb-python-dir are additionally included in lldb hash.
    tmiasko committed Jan 20, 2020
    Configuration menu
    Copy the full SHA
    6d218db View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2c0845c View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2020

  1. Configuration menu
    Copy the full SHA
    d8c661a View commit details
    Browse the repository at this point in the history
  2. Make TooGeneric error in WF checking a proper error

    `TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.
    varkor committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    dd0507c View commit details
    Browse the repository at this point in the history
  3. for now, do not build rust-std for the armv7a-none-eabihf target

    it needs some upstream changes in the build script of the compiler-builtins
    crate
    japaric committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    8abbd0b View commit details
    Browse the repository at this point in the history
  4. Handle methods in try diagnostic

    The diagnostic for diagnostic for methods and trait provided
    methods would only show the empty string:
    
        error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
    
    Handle the missing cases so it reads ``a method'' / ``an async
    method'' / ``a trait method'' respectively.
    
    Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
    phi-gamma committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    5dee7dd View commit details
    Browse the repository at this point in the history
  5. Test try diagnostics for impl and trait methods

    Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
    phi-gamma committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    02e66ba View commit details
    Browse the repository at this point in the history
  6. Cleanup: rewrite conditional as match

    As suggested by @Centril.
    
    Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
    phi-gamma committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    db3b40c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d1bb7e1 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    8c6067c View commit details
    Browse the repository at this point in the history
  9. Do not base path to append extension

    We already have ownership of the base path, so no need to clone it (within
    Path::with_extension).
    Mark-Simulacrum authored and sinkuu committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    dc97181 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2020

  1. bootstrap: update clippy subcmd decription

    Clarify where the clippy used in `./x.py clippy` is coming from.
    It uses whatever clippy binary was installed via rustup, cargo-install
    or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.
    matthiaskrgr committed Jan 22, 2020
    Configuration menu
    Copy the full SHA
    eb2da27 View commit details
    Browse the repository at this point in the history
  2. pprust: use as_deref

    Centril committed Jan 22, 2020
    Configuration menu
    Copy the full SHA
    7962ccb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    be86fb3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    71370c8 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#67195 - 0dvictor:nolink, r=tmandry

    [experiment] Add `-Z no-link` flag
    
    Adds a compiler option to allow rustc compile a crate without linking.
    With this flag, `rustc` serializes codegen_results into a `.rlink` file.
    
    Part of Issue rust-lang#64191
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    aad22f2 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#68253 - japaric:bare-metal-cortex-a, r=alex…

    …crichton
    
    add bare metal ARM Cortex-A targets to rustc
    
    -> `rustc --target armv7a-none-eabi` will work
    
    also build rust-std (rustup) components for them
    
    -> `rustup target add armv7a-none-eabi` will work
    
    this completes our bare-metal support of ARMv7 cores on stable Rust (by 1.42 or 1.43)
    
    (these target specifications have been tested on a real (no emulation / QEMU) [Cortex-A7 core](https://github.com/iqlusioninc/usbarmory.rs/))
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    3ac1c5e View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#68361 - t6:patch-freebsd-lld-i386, r=alexcr…

    …ichton
    
    Unbreak linking with lld 9 on FreeBSD 13.0-CURRENT i386
    
    Add -Wl,-znotext to default linker flags to link with lld 9 on FreeBSD 13.0-CURRENT i386 where rust-nightly has been failing to link since 2019-12-10 with variations of
    ```
     = note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
    
              ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
              clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)
    
    error: aborting due to previous error
    
    error: could not compile `rustc_macros`.
    ```
    Full log: http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log
    
    AFAICT it stopped building after bumping compiler_builtins to 0.1.22 in rust-lang#67110.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    403a452 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#68388 - varkor:toogeneric-wf, r=eddyb

    Make `TooGeneric` error in WF checking a proper error
    
    `TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.
    
    Fixes rust-lang#66962.
    
    r? @eddyb
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    eed641e View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#68391 - tmiasko:compiletest-debuginfo, r=al…

    …excrichton
    
    compiletest: Simplify multi-debugger support
    
    Previous implementation used a single mode type to store various pieces
    of otherwise loosely related information:
    
    * Whether debuginfo mode is in use or not.
    * Which debuggers should run in general.
    * Which debuggers are enabled for particular test case.
    
    The new implementation introduces a separation between those aspects.
    There is a single debuginfo mode parametrized by a debugger type.
    The debugger detection is performed first and a separate configuration
    is created for each detected debugger. The test cases are gathered
    independently for each debugger which makes it trivial to implement
    support for `ignore` / `only` conditions.
    
    Functional changes:
    
    * A single `debuginfo` entry point (rather than `debuginfo-cdb`, `debuginfo-gdb+lldb`, etc.).
    * Debugger name is included in the test name.
    * Test outputs are placed in per-debugger directory.
    * Fixed spurious hash mismatch. Previously, the config mode would change
      from `DebugInfoGdbLldb` (when collecting tests) to `DebugInfoGdb` or
      `DebugInfoLldb` (when running them) which would affect hash computation.
    * PYTHONPATH is additionally included in gdb hash.
    * lldb-python and lldb-python-dir are additionally included in lldb hash.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    22606de View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#68409 - sinkuu:temp_path, r=Mark-Simulacrum

    Micro-optimize OutputFilenames
    
    For example, its methods consume 6% of time during debug-compiling a `warp` example:
    ![Screenshot (debug-compiling a `warp` example)](https://user-images.githubusercontent.com/7091080/72780288-d74f1580-3c61-11ea-953b-34e59ca682f9.png)
    
    This PR optimize them a bit by using `PathBuf::set_extension` instead of `Path::with_extension`, to avoid cloning `PathBuf` excessively.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    5801824 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#68410 - tmiasko:msan-lto, r=varkor

    Export weak symbols used by MemorySanitizer
    
    Export weak symbols defined by MemorySanitizer instrumentation, which are used
    to implement `-Zsanitizer-memory-track-origins` and `-Zsanitizer-recover=memory`.
    Previously, when using fat LTO, they would internalized and eliminated.
    
    Fixes rust-lang#68367.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    0dcea65 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#68425 - phi-gamma:try-method, r=varkor

    Fix try-op diagnostic in E0277 for methods
    
    For methods the try-op diagnostic displays the empty string where
    it has more descriptive strings like “a function” otherwise:
    
        error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
                                                          ^^
           | |             ^^ cannot use the `?` operator in  that returns `()`
                                                            ^^
    
    I’m seeing this on nightly (rustc 1.42.0-nightly (b5a3341
    2020-01-20)) and [on the playpen](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0e7ce7792c2aceb8056941710d539124).
    
    The changeset add strings for impl methods and trait provided
    methods and test cases for the option type.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    80b5eaf View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#68440 - matthiaskrgr:xpyclippy, r=Mark-Simu…

    …lacrum
    
    bootstrap: update clippy subcmd decription
    
    Clarify where the clippy used in `./x.py clippy` is coming from.
    It uses whatever clippy binary was installed via rustup, cargo-install
    or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    238cd11 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of rust-lang#68441 - Centril:pprust-as_deref, r=Mark-Sim…

    …ulacrum
    
    pprust: use as_deref
    
    Some drive-by cleanup.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    23fff15 View commit details
    Browse the repository at this point in the history
  15. Rollup merge of rust-lang#68462 - matthiaskrgr:novec, r=varkor

    librustc_mir: don't allocate vectors where slices will do.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    22d9d10 View commit details
    Browse the repository at this point in the history