diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:20:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:20:29 +0000 |
commit | 631cd5845e8de329d0e227aaa707d7ea228b8f8f (patch) | |
tree | a1b87c8f8cad01cf18f7c5f57a08f102771ed303 /tests/run-make/a-b-a-linker-guard | |
parent | Adding debian version 1.69.0+dfsg1-1. (diff) | |
download | rustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.tar.xz rustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.zip |
Merging upstream version 1.70.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/run-make/a-b-a-linker-guard')
-rw-r--r-- | tests/run-make/a-b-a-linker-guard/Makefile | 16 | ||||
-rw-r--r-- | tests/run-make/a-b-a-linker-guard/a.rs | 8 | ||||
-rw-r--r-- | tests/run-make/a-b-a-linker-guard/b.rs | 7 |
3 files changed, 31 insertions, 0 deletions
diff --git a/tests/run-make/a-b-a-linker-guard/Makefile b/tests/run-make/a-b-a-linker-guard/Makefile new file mode 100644 index 000000000..43282eae0 --- /dev/null +++ b/tests/run-make/a-b-a-linker-guard/Makefile @@ -0,0 +1,16 @@ +# ignore-cross-compile +include ../tools.mk + +# Test that if we build `b` against a version of `a` that has one set +# of types, it will not run with a dylib that has a different set of +# types. + +# NOTE(eddyb) this test only works with the `legacy` mangling, +# and will probably get removed once `legacy` is gone. + +all: + $(RUSTC) a.rs --cfg x -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=legacy + $(RUSTC) b.rs -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=legacy + $(call RUN,b) + $(RUSTC) a.rs --cfg y -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=legacy + $(call FAIL,b) diff --git a/tests/run-make/a-b-a-linker-guard/a.rs b/tests/run-make/a-b-a-linker-guard/a.rs new file mode 100644 index 000000000..aa07b1e71 --- /dev/null +++ b/tests/run-make/a-b-a-linker-guard/a.rs @@ -0,0 +1,8 @@ +#![crate_name = "a"] +#![crate_type = "dylib"] + +#[cfg(x)] +pub fn foo(x: u32) { } + +#[cfg(y)] +pub fn foo(x: i32) { } diff --git a/tests/run-make/a-b-a-linker-guard/b.rs b/tests/run-make/a-b-a-linker-guard/b.rs new file mode 100644 index 000000000..f30df120a --- /dev/null +++ b/tests/run-make/a-b-a-linker-guard/b.rs @@ -0,0 +1,7 @@ +#![crate_name = "b"] + +extern crate a; + +fn main() { + a::foo(22_u32); +} |