diff --git a/src/tools/tidy/src/issues.txt b/src/tools/tidy/src/issues.txt index 25cd32063aab8..54de2ef83148f 100644 --- a/src/tools/tidy/src/issues.txt +++ b/src/tools/tidy/src/issues.txt @@ -2710,8 +2710,6 @@ ui/limits/issue-75158-64.rs ui/link-native-libs/issue-109144.rs ui/link-native-libs/issue-43925.rs ui/link-native-libs/issue-43926.rs -ui/link-native-libs/issue-70093/issue-70093-link-directives.rs -ui/link-native-libs/issue-70093/issue-70093.rs ui/linkage-attr/auxiliary/issue-12133-dylib.rs ui/linkage-attr/auxiliary/issue-12133-dylib2.rs ui/linkage-attr/auxiliary/issue-12133-rlib.rs diff --git a/tests/ui/link-native-libs/issue-70093/issue-70093-link-directives.rs b/tests/ui/link-native-libs/issue-70093/issue-70093-link-directives.rs deleted file mode 100644 index 9c60affbccd59..0000000000000 --- a/tests/ui/link-native-libs/issue-70093/issue-70093-link-directives.rs +++ /dev/null @@ -1,10 +0,0 @@ -//@ run-pass -//@ compile-flags: -Zlink-directives=no -//@ ignore-windows - this will probably only work on unixish systems -//@ ignore-fuchsia - missing __libc_start_main for some reason (#84733) -//@ ignore-cross-compile - default-linker-libraries=yes doesn't play well with cross compiling - -#[link(name = "some-random-non-existent-library", kind = "static")] -extern "C" {} - -fn main() {} diff --git a/tests/ui/link-native-libs/issue-70093/issue-70093.rs b/tests/ui/link-native-libs/issue-70093/issue-70093.rs deleted file mode 100644 index 8697423933893..0000000000000 --- a/tests/ui/link-native-libs/issue-70093/issue-70093.rs +++ /dev/null @@ -1,10 +0,0 @@ -//@ run-pass -//@ compile-flags: -Zlink-native-libraries=no -Cdefault-linker-libraries=yes -//@ ignore-windows - this will probably only work on unixish systems -//@ ignore-fuchsia - missing __libc_start_main for some reason (#84733) -//@ ignore-cross-compile - default-linker-libraries=yes doesn't play well with cross compiling - -#[link(name = "some-random-non-existent-library", kind = "static")] -extern "C" {} - -fn main() {} diff --git a/tests/ui/link-native-libs/issue-70093/link-directives.rs b/tests/ui/link-native-libs/issue-70093/link-directives.rs new file mode 100644 index 0000000000000..1dc44c996fcd9 --- /dev/null +++ b/tests/ui/link-native-libs/issue-70093/link-directives.rs @@ -0,0 +1,14 @@ +// Ensure that `#[link]` attributes are entirely ignore when using `-Zlink-directives=no`. + +//@ run-pass +//@ compile-flags: -Zlink-directives=no +//@ ignore-fuchsia - missing __libc_start_main for some reason (#84733) +//@ ignore-cross-compile - default-linker-libraries=yes doesn't play well with cross compiling + +// Usually these `#[link]` attribute would cause `libsome-random-non-existent-library` +// to be passed to the linker, causing it to fail because the file doesn't exist. +// However, with -Zlink-directives=no, the `#[link]` is ignored. +#[link(name = "some-random-non-existent-library", kind = "static")] +extern "C" {} + +fn main() {} diff --git a/tests/ui/link-native-libs/issue-70093/link-native-libraries.rs b/tests/ui/link-native-libs/issue-70093/link-native-libraries.rs new file mode 100644 index 0000000000000..b4dc9fb5cde17 --- /dev/null +++ b/tests/ui/link-native-libs/issue-70093/link-native-libraries.rs @@ -0,0 +1,26 @@ +// Ensure that rust does not pass native libraries to the linker when +// `-Zlink-native-libraries=no` is used. + +//@ run-pass +//@ compile-flags: -Zlink-native-libraries=no -Cdefault-linker-libraries=yes +//@ ignore-fuchsia - missing __libc_start_main for some reason (#84733) +//@ ignore-cross-compile - default-linker-libraries=yes doesn't play well with cross compiling + +//@ revisions: other +//@[other] ignore-msvc + +//@ revisions: msvc +// On Windows MSVC, default-linker-libraries=yes doesn't work because +// rustc drives the linker directly instead of going through another compiler. +// Therefore rustc would need to implement default-linker-libraries itself but doesn't. +// So instead we use -Clink-arg to directly set the required msvcrt.lib as a link arg. +//@[msvc] compile-flags: -Clink-arg=msvcrt.lib +//@[msvc] only-msvc + +// Usually these `#[link]` attribute would cause `libsome-random-non-existent-library` +// to be passed to the linker, causing it to fail because the file doesn't exist. +// However, -Zlink-native-libraries=no disables that. +#[link(name = "some-random-non-existent-library", kind = "static")] +extern "C" {} + +fn main() {}