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 5 pull requests #131506

Closed
wants to merge 13 commits into from

Commits on Sep 24, 2024

  1. tests: add test for rust-lang#105111

    Enabling a tied feature should not enable the other feature
    automatically. This was fixed by something in rust-lang#128796, probably rust-lang#128221
    or rust-lang#128679.
    davidtwco committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    6edd86d View commit details
    Browse the repository at this point in the history
  2. codegen_ssa: consolidate tied feature checking

    `rustc_codegen_llvm` and `rustc_codegen_gcc` duplicated logic for
    checking if tied target features were partially enabled. This commit
    consolidates these checks into `rustc_codegen_ssa` in the
    `codegen_fn_attrs` query, which also is run pre-monomorphisation for
    each function, which ensures that this check is run for unused functions,
    as would be expected.
    davidtwco committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    207bc77 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2024

  1. Configuration menu
    Copy the full SHA
    becf664 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    62b24ea View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2e7a52b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    20cebae View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2024

  1. Configuration menu
    Copy the full SHA
    b12dc20 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1edff46 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#130308 - davidtwco:tied-target-consolidatio…

    …n, r=wesleywiser
    
    codegen_ssa: consolidate tied target checks
    
    Fixes rust-lang#105110.
    Fixes rust-lang#105111.
    
    `rustc_codegen_llvm` and `rustc_codegen_gcc` duplicated logic for checking if tied target features were partially enabled. This PR consolidates these checks into `rustc_codegen_ssa` in the `codegen_fn_attrs` query, which also is run pre-monomorphisation for each function, which ensures that this check is run for unused functions, as would be expected.
    
    Also adds a test confirming that enabling one tied feature doesn't imply another - the appropriate error for this was already being emitted. I did a bisect and narrowed it down to two patches it was likely to be - something in rust-lang#128796, probably rust-lang#128221 or rust-lang#128679.
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    5b2942e View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#131442 - jieyouxu:mir-opt-rebuild, r=onur-o…

    …zkan
    
    Match std `RUSTFLAGS` for host and target for `mir-opt` test suite to fix double std build/rebuilds
    
    Previously the bootstrap compiletest `Step::run` flow had:
    
    ```rs
    // ensure that `libproc_macro` is available on the host.
    builder.ensure(compile::Std::new(compiler, compiler.host));
    
    // ...
    
    if suite == "mir-opt" {
        builder.ensure(compile::Std::new_for_mir_opt_tests(compiler, target));
    } else {
        builder.ensure(compile::Std::new(compiler, target));
    }
    ```
    
    This can cause unnecessary std rebuilds (even on the same invocation) because if host == target then `builder.ensure(compile::Std::new_for_mir_opt_tests(compiler, target))` will have different `RUSTFLAGS` than `builder.ensure(compile::Std::new(compiler, compiler.host))`.
    
    This PR fixes that by matching up std `RUSTFLAGS` if the test suite is `mir-opt`:
    
    ```rs
    if suite == "mir-opt" {
        builder.ensure(compile::Std::new_for_mir_opt_tests(compiler, compiler.host));
    } else {
        builder.ensure(compile::Std::new(compiler, compiler.host));
    }
    ```
    
    This is a short-term fix, the better fix is to enforce how `RUSTFLAGS` are handled as described in rust-lang#131437 (comment).
    
    Fixes rust-lang#131437.
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    af7bb0f View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#131470 - EnzymeAD:enzyme-testinfra2, r=jiey…

    …ouxu
    
    add test infra to explicitely test rustc with autodiff/enzyme disabled
    
    I assume this is not what you want for now, but I'll update the PR once I understand how the ignore- directives work.
    
    To summarize the situation, we want a feature gate test where we don't enable the autodiff feature using `#![feature(autodiff)]`. There are two situations.
    1) We have a rustc which was build without autodiff support (current default): It gives one error about the feature being needed and one error about this rustc version being build without autodiff support.
    2) We have a rustc which was build with autodiff support (i.e. for now a custom build): It gives one error about the feature being needed.
    
    We have a `//```@needs-enzyme```` directive which we can use in revisions for the second case.
    However, we have no way to specify that needs-enzyme implies that the second error should not be seen.
    This ads a way of passing the following test:
    ```
    //@ revisions: has_support no_support
    //```@[has_support]``` needs-enzyme
    //```@[no_support]``` needs-enzyme-disabled
    
    #![crate_type = "lib"]
    
    #[autodiff(dfoo, Reverse)]
    //[has_support]~^ ERROR use of unstable library feature 'autodiff' [E0658]
    //[no_support]~^^ ERROR use of unstable library feature 'autodiff' [E0658]
    //[no_support]~| ERROR this rustc version does not support autodiff
    fn foo() {}
    ```
    Cherry picking this PR to my frontend pr makes the test above pass in both configurations (enzyme=true/false in config.toml).
    I'm open to other changes that make this testcase pass.
    
    r? ```@jieyouxu```
    
    Tracking:
    
    - rust-lang#124509
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    27ec35d View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#131475 - fmease:compiler-mv-obj-safe-dyn-co…

    …mpat-2, r=jieyouxu
    
    Compiler & its UI tests: Rename remaining occurrences of "object safe" to "dyn compatible"
    
    Follow-up to rust-lang#130826.
    Part of rust-lang#130852.
    
    1. 1st commit: Fix stupid oversights. Should've been part of rust-lang#130826.
    2. 2nd commit: Rename the unstable feature `object_safe_for_dispatch` to `dyn_compatible_for_dispatch`. Might not be worth the churn, you decide.
    3. 3rd commit: Apply the renaming to all UI tests (contents and paths).
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    0ebf0ef View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#131493 - madsmtm:avoid-redundant-linker-pat…

    …h, r=jieyouxu
    
    Avoid redundant sysroot additions to `PATH` when linking
    
    Currently, `rustc` prepends `$HOME/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin` to the `PATH` three times before invoking the linker, which is unnecessary, once should be enough.
    
    Spotted this while trying to get `-Clinker-flavor=gcc` and `-Clinker-flavor=ld` closer together, not really important.
    
    ```@rustbot``` A-linkage
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    e6c99b1 View commit details
    Browse the repository at this point in the history