-
Notifications
You must be signed in to change notification settings - Fork 12.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #126698 - Oneirical:tessteract, r=Kobzol
Migrate `unknown-mod-stdin`, `issue-68794-textrel-on-minimal-lib`, `raw-dylib-cross-compilation` and `used-cdylib-macos` `run-make` tests to rmake Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html). Seriously needs OSX/Windows try-jobs. If it fails, restore `only-linux` in `textrel-on-minimal-lib` and try again. try-job: x86_64-mingw try-job: x86_64-msvc
- Loading branch information
Showing
12 changed files
with
115 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 0 additions & 18 deletions
18
tests/run-make/issue-68794-textrel-on-minimal-lib/Makefile
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
// When cross-compiling using `raw-dylib`, rustc would try to fetch some | ||
// very specific `dlltool` to complete the cross-compilation (such as `i686-w64-mingw32-dlltool`) | ||
// when Windows only calls it `dlltool`. This test performs some cross-compilation in a | ||
// way that previously failed due to this bug, and checks that it succeeds. | ||
// See https://github.com/rust-lang/rust/pull/108355 | ||
|
||
//@ ignore-i686-pc-windows-gnu | ||
// Reason: dlltool on this distribution is unable to produce x64 binaries | ||
//@ needs-dlltool | ||
// Reason: this is the utility being checked by this test | ||
|
||
use run_make_support::{llvm_objdump, rust_lib_name, rustc}; | ||
|
||
fn main() { | ||
// Build as x86 and make sure that we have x86 objects only. | ||
rustc() | ||
.crate_type("lib") | ||
.crate_name("i686_raw_dylib_test") | ||
.target("i686-pc-windows-gnu") | ||
.input("lib.rs") | ||
.run(); | ||
llvm_objdump() | ||
.arg("-a") | ||
.input(rust_lib_name("i686_raw_dylib_test")) | ||
.run() | ||
.assert_stdout_contains("file format coff-i386") | ||
.assert_stdout_not_contains("file format coff-x86-64"); | ||
// Build as x64 and make sure that we have x64 objects only. | ||
rustc() | ||
.crate_type("lib") | ||
.crate_name("x64_raw_dylib_test") | ||
.target("x86_64-pc-windows-gnu") | ||
.input("lib.rs") | ||
.run(); | ||
llvm_objdump() | ||
.arg("-a") | ||
.input(rust_lib_name("x64_raw_dylib_test")) | ||
.run() | ||
.assert_stdout_not_contains("file format coff-i386") | ||
.assert_stdout_contains("file format coff-x86-64"); | ||
} |
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
// Verify that no text relocations are accidentally introduced by linking a | ||
// minimal rust staticlib. | ||
// The test links a rust static library into a shared library, and checks that | ||
// the linker doesn't have to flag the resulting file as containing TEXTRELs. | ||
// This bug otherwise breaks Android builds, which forbid TEXTRELs. | ||
// See https://github.com/rust-lang/rust/issues/68794 | ||
|
||
//@ ignore-cross-compile | ||
//@ ignore-windows | ||
// Reason: There is no `bar.dll` produced by CC to run readobj on | ||
|
||
use run_make_support::{ | ||
cc, dynamic_lib_name, extra_c_flags, extra_cxx_flags, llvm_readobj, rustc, static_lib_name, | ||
}; | ||
|
||
fn main() { | ||
rustc().input("foo.rs").run(); | ||
cc().input("bar.c") | ||
.input(static_lib_name("foo")) | ||
.out_exe(&dynamic_lib_name("bar")) | ||
.arg("-fPIC") | ||
.arg("-shared") | ||
.args(&extra_c_flags()) | ||
.args(&extra_cxx_flags()) | ||
.run(); | ||
llvm_readobj() | ||
.input(dynamic_lib_name("bar")) | ||
.arg("--dynamic") | ||
.run() | ||
.assert_stdout_not_contains("TEXTREL"); | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
// Rustc displays a compilation error when it finds a `mod` (module) | ||
// statement referencing a file that does not exist. However, a bug from 2019 | ||
// caused invalid `mod` statements to silently insert empty inline modules | ||
// instead of showing an error if the invalid `mod` statement had been passed | ||
// through standard input. This test checks that this bug does not make a resurgence. | ||
// See https://github.com/rust-lang/rust/issues/65601 | ||
|
||
// NOTE: This is not a UI test, because the bug which this test | ||
// is checking for is specifically tied to passing | ||
// `mod unknown;` through standard input. | ||
|
||
use run_make_support::{diff, rustc}; | ||
|
||
fn main() { | ||
let out = rustc().crate_type("rlib").stdin(b"mod unknown;").arg("-").run_fail(); | ||
diff() | ||
.actual_text("actual-stdout", out.stdout_utf8()) | ||
.expected_file("unknown-mod.stdout") | ||
.run(); | ||
diff() | ||
.actual_text("actual-stderr", out.stderr_utf8()) | ||
.expected_file("unknown-mod.stderr") | ||
.normalize(r#"\\"#, "/") | ||
.run(); | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// This checks that `#[used]` passes through to the linker on | ||
// Apple targets. This is subject to change in the future. | ||
// See https://github.com/rust-lang/rust/pull/93718 | ||
|
||
//@ only-apple | ||
|
||
use run_make_support::{dynamic_lib_name, llvm_readobj, rustc}; | ||
|
||
fn main() { | ||
rustc().opt_level("3").input("dylib_used.rs").run(); | ||
llvm_readobj() | ||
.input(dynamic_lib_name("dylib_used")) | ||
.arg("--all") | ||
.run() | ||
.assert_stdout_contains("VERY_IMPORTANT_SYMBOL"); | ||
} |