Skip to content

Commit

Permalink
Auto merge of rust-lang#125233 - jieyouxu:rollup-76hk8qu, r=jieyouxu
Browse files Browse the repository at this point in the history
Rollup of 3 pull requests

Successful merges:

 - rust-lang#125213 (Migrate `run-make/static-unwinding` to `rmake`)
 - rust-lang#125215 (Migrate `run-make/issue64319` to `rmake` and rename)
 - rust-lang#125221 (Migrate `run-make/issue-28766` to `rmake`)

r? `@ghost`
`@rustbot` modify labels: rollup
  • Loading branch information
bors committed May 18, 2024
2 parents 9b75a43 + 650bbb5 commit 8e78d16
Show file tree
Hide file tree
Showing 12 changed files with 79 additions and 56 deletions.
6 changes: 6 additions & 0 deletions src/tools/run-make-support/src/rustc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ impl Rustc {
self
}

/// Specify a specific optimization level.
pub fn opt_level(&mut self, option: &str) -> &mut Self {
self.cmd.arg(format!("-Copt-level={option}"));
self
}

/// Specify type(s) of output files to generate.
pub fn emit(&mut self, kinds: &str) -> &mut Self {
self.cmd.arg(format!("--emit={kinds}"));
Expand Down
3 changes: 0 additions & 3 deletions src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ run-make/issue-25581/Makefile
run-make/issue-26006/Makefile
run-make/issue-26092/Makefile
run-make/issue-28595/Makefile
run-make/issue-28766/Makefile
run-make/issue-30063/Makefile
run-make/issue-33329/Makefile
run-make/issue-35164/Makefile
Expand All @@ -128,7 +127,6 @@ run-make/issue-85401-static-mir/Makefile
run-make/issue-85441/Makefile
run-make/issue-88756-default-output/Makefile
run-make/issue-97463-abi-param-passing/Makefile
run-make/issue64319/Makefile
run-make/jobserver-error/Makefile
run-make/libs-through-symlinks/Makefile
run-make/libtest-json/Makefile
Expand Down Expand Up @@ -263,7 +261,6 @@ run-make/stable-symbol-names/Makefile
run-make/static-dylib-by-default/Makefile
run-make/static-extern-type/Makefile
run-make/static-pie/Makefile
run-make/static-unwinding/Makefile
run-make/staticlib-blank-lib/Makefile
run-make/staticlib-dylib-linkage/Makefile
run-make/std-core-cycle/Makefile
Expand Down
File renamed without changes.
File renamed without changes.
13 changes: 13 additions & 0 deletions tests/run-make/box-struct-no-segfault/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// The crate "foo" tied to this test executes a very specific function,
// which involves boxing an instance of the struct Foo. However,
// this once caused a segmentation fault in cargo release builds due to an LLVM
// incorrect assertion.
// This test checks that this bug does not resurface.
// See https://github.com/rust-lang/rust/issues/28766

use run_make_support::{rustc, tmp_dir};

fn main() {
rustc().opt().input("foo.rs").run();
rustc().opt().library_search_path(tmp_dir()).input("main.rs").run();
}
5 changes: 0 additions & 5 deletions tests/run-make/issue-28766/Makefile

This file was deleted.

40 changes: 0 additions & 40 deletions tests/run-make/issue64319/Makefile

This file was deleted.

File renamed without changes.
File renamed without changes.
45 changes: 45 additions & 0 deletions tests/run-make/share-generics-export-again/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// When crates had different optimization levels, a bug caused
// incorrect symbol name generations. -Z share-generics could
// also fail to re-export upstream generics on multiple compile
// runs of the same dynamic library.

// This test repeatedly compiles an rlib and a dylib with these flags
// to check if this bug ever returns.

// See https://github.com/rust-lang/rust/pull/68277
// See https://github.com/rust-lang/rust/issues/64319
//@ ignore-cross-compile

use run_make_support::rustc;

fn main() {
rustc().crate_type("rlib").input("foo.rs").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("3").run();
rustc().crate_type("rlib").input("foo.rs").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").arg("-Zshare-generics=no").run();
rustc().crate_type("rlib").input("foo.rs").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").arg("-Zshare-generics=yes").run();
rustc().crate_type("rlib").input("foo.rs").arg("-Zshare-generics=yes").run();
rustc().crate_type("dylib").input("bar.rs").arg("-Zshare-generics=no").run();
rustc().crate_type("rlib").input("foo.rs").arg("-Zshare-generics=yes").run();
rustc().crate_type("dylib").input("bar.rs").arg("-Zshare-generics=yes").run();
rustc().crate_type("rlib").input("foo.rs").run();
rustc().crate_type("dylib").input("bar.rs").run();
rustc().crate_type("dylib").input("bar.rs").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").arg("-Zshare-generics=yes").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("1").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("1").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("1").arg("-Zshare-generics=yes").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("2").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("2").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("2").arg("-Zshare-generics=yes").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("3").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("3").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("3").arg("-Zshare-generics=yes").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("s").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("s").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("s").arg("-Zshare-generics=yes").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("z").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("z").arg("-Zshare-generics=no").run();
rustc().crate_type("dylib").input("bar.rs").opt_level("z").arg("-Zshare-generics=yes").run();
}
8 changes: 0 additions & 8 deletions tests/run-make/static-unwinding/Makefile

This file was deleted.

15 changes: 15 additions & 0 deletions tests/run-make/static-unwinding/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// During unwinding, an implementation of Drop is possible to clean up resources.
// This test implements drop in both a main function and its static library.
// If the test succeeds, a Rust program being a static library does not affect Drop implementations.
// See https://github.com/rust-lang/rust/issues/10434

//@ ignore-cross-compile
//@ needs-unwind

use run_make_support::{run, rustc};

fn main() {
rustc().input("lib.rs").run();
rustc().input("main.rs").run();
run("main");
}

0 comments on commit 8e78d16

Please sign in to comment.