Skip to content

Commit

Permalink
Unrolled build for rust-lang#127928
Browse files Browse the repository at this point in the history
Rollup merge of rust-lang#127928 - Oneirical:anatesthetic-sleep, r=Kobzol

Migrate `lto-smoke-c` and `link-path-order` `run-make` tests to rmake

Part of rust-lang#121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).
  • Loading branch information
rust-timer authored Jul 19, 2024
2 parents 8c3a94a + 7303132 commit fb99d59
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 33 deletions.
2 changes: 0 additions & 2 deletions src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,11 @@ run-make/libtest-junit/Makefile
run-make/libtest-thread-limit/Makefile
run-make/link-cfg/Makefile
run-make/link-framework/Makefile
run-make/link-path-order/Makefile
run-make/linkage-attr-on-static/Makefile
run-make/long-linker-command-lines-cmd-exe/Makefile
run-make/long-linker-command-lines/Makefile
run-make/lto-linkage-used-attr/Makefile
run-make/lto-no-link-whole-rlib/Makefile
run-make/lto-smoke-c/Makefile
run-make/macos-deployment-target/Makefile
run-make/macos-fat-archive/Makefile
run-make/manual-link/Makefile
Expand Down
19 changes: 0 additions & 19 deletions tests/run-make/link-path-order/Makefile

This file was deleted.

33 changes: 33 additions & 0 deletions tests/run-make/link-path-order/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// The order in which "library search path" `-L` arguments are given to the command line rustc
// is important. These arguments must match the order of the linker's arguments. In this test,
// fetching the Wrong library before the Correct one causes a function to return 0 instead of the
// expected 1, causing a runtime panic, as expected.
// See https://github.com/rust-lang/rust/pull/16904

//@ ignore-cross-compile
// Reason: the compiled binary is executed

use run_make_support::{build_native_static_lib, path, rfs, run, run_fail, rustc, static_lib_name};

fn main() {
build_native_static_lib("correct");
build_native_static_lib("wrong");
rfs::create_dir("correct");
rfs::create_dir("wrong");
rfs::rename(static_lib_name("correct"), path("correct").join(static_lib_name("foo")));
rfs::rename(static_lib_name("wrong"), path("wrong").join(static_lib_name("foo")));
rustc()
.input("main.rs")
.output("should_succeed")
.library_search_path("correct")
.library_search_path("wrong")
.run();
run("should_succeed");
rustc()
.input("main.rs")
.output("should_fail")
.library_search_path("wrong")
.library_search_path("correct")
.run();
run_fail("should_fail");
}
12 changes: 0 additions & 12 deletions tests/run-make/lto-smoke-c/Makefile

This file was deleted.

20 changes: 20 additions & 0 deletions tests/run-make/lto-smoke-c/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// LLVM's link-time-optimization (LTO) is a useful feature added to Rust in response
// to #10741. This test uses this feature with `-C lto` alongside a native C library,
// and checks that compilation and execution is successful.
// See https://github.com/rust-lang/rust/issues/10741

//@ ignore-cross-compile
// Reason: the compiled binary is executed

use run_make_support::{cc, extra_c_flags, extra_cxx_flags, run, rustc, static_lib_name};

fn main() {
rustc().input("foo.rs").arg("-Clto").run();
cc().input("bar.c")
.arg(static_lib_name("foo"))
.out_exe("bar")
.args(extra_c_flags())
.args(extra_cxx_flags())
.run();
run("bar");
}

0 comments on commit fb99d59

Please sign in to comment.