diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2022-02-11 15:08:35 +0800 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2022-03-30 23:53:21 +0300 |
| commit | 1004783ef9bdcf006f0ed33badacf83a5934feb2 (patch) | |
| tree | 9db8e33f5809076953c29ae6e7bc569266f48130 /src/test | |
| parent | bb5c437a2ce9ccf2204c974300c5ea9eb32d3635 (diff) | |
Stabilize native library modifier syntax and the `whole-archive` modifier specifically
Diffstat (limited to 'src/test')
19 files changed, 59 insertions, 56 deletions
diff --git a/src/test/run-make/native-link-modifier-whole-archive/native_lib_in_src.rs b/src/test/run-make/native-link-modifier-whole-archive/native_lib_in_src.rs index 373d89b7936..2436c36e6eb 100644 --- a/src/test/run-make/native-link-modifier-whole-archive/native_lib_in_src.rs +++ b/src/test/run-make/native-link-modifier-whole-archive/native_lib_in_src.rs @@ -1,6 +1,4 @@ #![feature(native_link_modifiers_bundle)] -#![feature(native_link_modifiers_whole_archive)] -#![feature(native_link_modifiers)] use std::io::Write; diff --git a/src/test/run-make/raw-dylib-c/lib.rs b/src/test/run-make/raw-dylib-c/lib.rs index d8e6301f38e..e185c4aec12 100644 --- a/src/test/run-make/raw-dylib-c/lib.rs +++ b/src/test/run-make/raw-dylib-c/lib.rs @@ -1,4 +1,4 @@ -#![feature(raw_dylib, native_link_modifiers, native_link_modifiers_verbatim)] +#![feature(raw_dylib, native_link_modifiers_verbatim)] #[link(name = "extern_1.dll", kind = "raw-dylib", modifiers = "+verbatim")] extern { diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers.rs b/src/test/ui/feature-gates/feature-gate-native_link_modifiers.rs deleted file mode 100644 index 2d00aa2a3cf..00000000000 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers.rs +++ /dev/null @@ -1,5 +0,0 @@ -#[link(name = "foo", modifiers = "")] -//~^ ERROR: native link modifiers are experimental -extern "C" {} - -fn main() {} diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers.stderr b/src/test/ui/feature-gates/feature-gate-native_link_modifiers.stderr deleted file mode 100644 index 20a2d6a26fa..00000000000 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers.stderr +++ /dev/null @@ -1,12 +0,0 @@ -error[E0658]: native link modifiers are experimental - --> $DIR/feature-gate-native_link_modifiers.rs:1:22 - | -LL | #[link(name = "foo", modifiers = "")] - | ^^^^^^^^^^^^^^ - | - = note: see issue #81490 <https://github.com/rust-lang/rust/issues/81490> for more information - = help: add `#![feature(native_link_modifiers)]` to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.rs b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.rs index 4cf8067592e..fedee812398 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.rs +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.rs @@ -1,6 +1,3 @@ -#![allow(incomplete_features)] -#![feature(native_link_modifiers)] - #[link(name = "foo", modifiers = "+as-needed")] //~^ ERROR: `#[link(modifiers="as-needed")]` is unstable extern "C" {} diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.stderr b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.stderr index 08ce807851b..96750aa6e80 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.stderr +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_as_needed.stderr @@ -1,5 +1,5 @@ error[E0658]: `#[link(modifiers="as-needed")]` is unstable - --> $DIR/feature-gate-native_link_modifiers_as_needed.rs:4:34 + --> $DIR/feature-gate-native_link_modifiers_as_needed.rs:1:34 | LL | #[link(name = "foo", modifiers = "+as-needed")] | ^^^^^^^^^^^^ diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-2.rs b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-2.rs index 1b5fa78ee55..e229564950f 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-2.rs +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-2.rs @@ -1,7 +1,6 @@ // Test native_link_modifiers_bundle don't need static-nobundle // check-pass -#![feature(native_link_modifiers)] #![feature(native_link_modifiers_bundle)] #[link(name = "foo", kind = "static", modifiers = "-bundle")] diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-3.stderr b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-3.stderr index 86ccb4e860b..900605c3b37 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-3.stderr +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle-3.stderr @@ -1,2 +1,2 @@ -error: linking modifiers are currently unstable, the `-Z unstable-options` flag must also be passed to use it +error: bundle linking modifier is currently unstable and only accepted on the nightly compiler diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.rs b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.rs index b2b1dc28e47..c3c3cff17c4 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.rs +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.rs @@ -1,6 +1,3 @@ -#![allow(incomplete_features)] -#![feature(native_link_modifiers)] - #[link(name = "foo", modifiers = "+bundle")] //~^ ERROR: `#[link(modifiers="bundle")]` is unstable extern "C" {} diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.stderr b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.stderr index b3e22b0644a..984b90d9b6c 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.stderr +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_bundle.stderr @@ -1,5 +1,5 @@ error[E0658]: `#[link(modifiers="bundle")]` is unstable - --> $DIR/feature-gate-native_link_modifiers_bundle.rs:4:34 + --> $DIR/feature-gate-native_link_modifiers_bundle.rs:1:34 | LL | #[link(name = "foo", modifiers = "+bundle")] | ^^^^^^^^^ diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.rs b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.rs index 042ce0b3f65..57527be1112 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.rs +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.rs @@ -1,6 +1,3 @@ -#![allow(incomplete_features)] -#![feature(native_link_modifiers)] - #[link(name = "foo", modifiers = "+verbatim")] //~^ ERROR: `#[link(modifiers="verbatim")]` is unstable extern "C" {} diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.stderr b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.stderr index 8159416edfa..5c64c0d21bd 100644 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.stderr +++ b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_verbatim.stderr @@ -1,5 +1,5 @@ error[E0658]: `#[link(modifiers="verbatim")]` is unstable - --> $DIR/feature-gate-native_link_modifiers_verbatim.rs:4:34 + --> $DIR/feature-gate-native_link_modifiers_verbatim.rs:1:34 | LL | #[link(name = "foo", modifiers = "+verbatim")] | ^^^^^^^^^^^ diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_whole_archive.rs b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_whole_archive.rs deleted file mode 100644 index ca801e59114..00000000000 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_whole_archive.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![allow(incomplete_features)] -#![feature(native_link_modifiers)] - -#[link(name = "foo", modifiers = "+whole-archive")] -//~^ ERROR: `#[link(modifiers="whole-archive")]` is unstable -extern "C" {} - -fn main() {} diff --git a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_whole_archive.stderr b/src/test/ui/feature-gates/feature-gate-native_link_modifiers_whole_archive.stderr deleted file mode 100644 index cacaa789ecb..00000000000 --- a/src/test/ui/feature-gates/feature-gate-native_link_modifiers_whole_archive.stderr +++ /dev/null @@ -1,12 +0,0 @@ -error[E0658]: `#[link(modifiers="whole-archive")]` is unstable - --> $DIR/feature-gate-native_link_modifiers_whole_archive.rs:4:34 - | -LL | #[link(name = "foo", modifiers = "+whole-archive")] - | ^^^^^^^^^^^^^^^^ - | - = note: see issue #81490 <https://github.com/rust-lang/rust/issues/81490> for more information - = help: add `#![feature(native_link_modifiers_whole_archive)]` to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/native-library-link-flags/mix-bundle-and-whole-archive-link-attr.rs b/src/test/ui/native-library-link-flags/mix-bundle-and-whole-archive-link-attr.rs index c3714a38451..b153ef94626 100644 --- a/src/test/ui/native-library-link-flags/mix-bundle-and-whole-archive-link-attr.rs +++ b/src/test/ui/native-library-link-flags/mix-bundle-and-whole-archive-link-attr.rs @@ -2,9 +2,7 @@ // build-fail // error-pattern: the linking modifiers `+bundle` and `+whole-archive` are not compatible with each other when generating rlibs -#![feature(native_link_modifiers)] #![feature(native_link_modifiers_bundle)] -#![feature(native_link_modifiers_whole_archive)] #[link(name = "mylib", kind = "static", modifiers = "+bundle,+whole-archive")] extern "C" { } diff --git a/src/test/ui/native-library-link-flags/modifiers-override-2.rs b/src/test/ui/native-library-link-flags/modifiers-override-2.rs new file mode 100644 index 00000000000..333f6786b0f --- /dev/null +++ b/src/test/ui/native-library-link-flags/modifiers-override-2.rs @@ -0,0 +1,3 @@ +// compile-flags:-lstatic:+whole-archive,-whole-archive=foo + +fn main() {} diff --git a/src/test/ui/native-library-link-flags/modifiers-override-2.stderr b/src/test/ui/native-library-link-flags/modifiers-override-2.stderr new file mode 100644 index 00000000000..9200d7bfb0c --- /dev/null +++ b/src/test/ui/native-library-link-flags/modifiers-override-2.stderr @@ -0,0 +1,2 @@ +error: duplicating linking modifier is currently unstable and only accepted on the nightly compiler + diff --git a/src/test/ui/native-library-link-flags/modifiers-override.rs b/src/test/ui/native-library-link-flags/modifiers-override.rs new file mode 100644 index 00000000000..f6d770559e6 --- /dev/null +++ b/src/test/ui/native-library-link-flags/modifiers-override.rs @@ -0,0 +1,17 @@ +// compile-flags:-ldylib:+as-needed=foo -lstatic=bar -Zunstable-options + +#![feature(native_link_modifiers_bundle)] + +#[link(name = "foo")] +#[link( //~ ERROR multiple `modifiers` arguments in a single `#[link]` attribute + name = "bar", + kind = "static", + modifiers = "+whole-archive,-whole-archive", + //~^ ERROR same modifier is used multiple times in a single `modifiers` argument + modifiers = "+bundle" +)] +extern "C" {} +//~^ ERROR overriding linking modifiers from command line is not supported +//~| ERROR overriding linking modifiers from command line is not supported + +fn main() {} diff --git a/src/test/ui/native-library-link-flags/modifiers-override.stderr b/src/test/ui/native-library-link-flags/modifiers-override.stderr new file mode 100644 index 00000000000..8644d2382d2 --- /dev/null +++ b/src/test/ui/native-library-link-flags/modifiers-override.stderr @@ -0,0 +1,32 @@ +error: same modifier is used multiple times in a single `modifiers` argument + --> $DIR/modifiers-override.rs:9:5 + | +LL | modifiers = "+whole-archive,-whole-archive", + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: multiple `modifiers` arguments in a single `#[link]` attribute + --> $DIR/modifiers-override.rs:6:1 + | +LL | / #[link( +LL | | name = "bar", +LL | | kind = "static", +LL | | modifiers = "+whole-archive,-whole-archive", +LL | | +LL | | modifiers = "+bundle" +LL | | )] + | |__^ + +error: overriding linking modifiers from command line is not supported + --> $DIR/modifiers-override.rs:13:1 + | +LL | extern "C" {} + | ^^^^^^^^^^^^^ + +error: overriding linking modifiers from command line is not supported + --> $DIR/modifiers-override.rs:13:1 + | +LL | extern "C" {} + | ^^^^^^^^^^^^^ + +error: aborting due to 4 previous errors + |
