summaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2025-09-12 15:01:48 +0400
committerDylan Baker <dylan@pnwbakers.com>2025-10-08 10:51:48 -0700
commitabb39aed2281a1a63259c31f221cda508e1600eb (patch)
tree48ec5057c8b9b41fb1d53f940fb50325af38442a /test cases
parent2e63336bf3e58eb3364bd8f7eedddbbc40ee6f69 (diff)
downloadmeson-abb39aed2281a1a63259c31f221cda508e1600eb.tar.gz
rust: add test case for issue #15020
Do not link with link_whole/bundle, to show linking issue with Apple ld. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'test cases')
-rw-r--r--test cases/rust/3 staticlib/meson.build3
-rw-r--r--test cases/rust/3 staticlib/prog2.rs5
-rw-r--r--test cases/rust/3 staticlib/stuff2.rs14
3 files changed, 22 insertions, 0 deletions
diff --git a/test cases/rust/3 staticlib/meson.build b/test cases/rust/3 staticlib/meson.build
index cf8e1032e..c577fab95 100644
--- a/test cases/rust/3 staticlib/meson.build
+++ b/test cases/rust/3 staticlib/meson.build
@@ -5,3 +5,6 @@ v = static_library('value', 'value.c')
l = static_library('stuff', 'stuff.rs', link_whole : [o, v], install : true)
e = executable('prog', 'prog.rs', link_with : l, install : true)
test('linktest', e)
+
+l = static_library('stuff2', 'stuff2.rs', link_with : [o, v])
+e = executable('prog2', 'prog2.rs', link_with : l)
diff --git a/test cases/rust/3 staticlib/prog2.rs b/test cases/rust/3 staticlib/prog2.rs
new file mode 100644
index 000000000..9c25c77d5
--- /dev/null
+++ b/test cases/rust/3 staticlib/prog2.rs
@@ -0,0 +1,5 @@
+extern crate stuff2;
+
+fn main() {
+ println!("printing: {}", stuff2::explore());
+}
diff --git a/test cases/rust/3 staticlib/stuff2.rs b/test cases/rust/3 staticlib/stuff2.rs
new file mode 100644
index 000000000..5e0167ace
--- /dev/null
+++ b/test cases/rust/3 staticlib/stuff2.rs
@@ -0,0 +1,14 @@
+#![crate_name = "stuff2"]
+
+extern crate other;
+
+extern "C" {
+ fn c_explore_value() -> i32;
+}
+
+pub fn explore(
+) -> String {
+ unsafe {
+ other::explore(c_explore_value())
+ }
+}