summaryrefslogtreecommitdiffstats
path: root/tests/run-make/print-native-static-libs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:42 +0000
commit837b550238aa671a591ccf282dddeab29cadb206 (patch)
tree914b6b8862bace72bd3245ca184d374b08d8a672 /tests/run-make/print-native-static-libs
parentAdding debian version 1.70.0+dfsg2-1. (diff)
downloadrustc-837b550238aa671a591ccf282dddeab29cadb206.tar.xz
rustc-837b550238aa671a591ccf282dddeab29cadb206.zip
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/run-make/print-native-static-libs')
-rw-r--r--tests/run-make/print-native-static-libs/Makefile15
-rw-r--r--tests/run-make/print-native-static-libs/bar.rs13
-rw-r--r--tests/run-make/print-native-static-libs/foo.rs15
3 files changed, 43 insertions, 0 deletions
diff --git a/tests/run-make/print-native-static-libs/Makefile b/tests/run-make/print-native-static-libs/Makefile
new file mode 100644
index 000000000..98e72d769
--- /dev/null
+++ b/tests/run-make/print-native-static-libs/Makefile
@@ -0,0 +1,15 @@
+include ../tools.mk
+
+# ignore-cross-compile
+# ignore-wasm
+
+all:
+ $(RUSTC) --crate-type rlib -lbar_cli bar.rs
+ $(RUSTC) foo.rs -lfoo_cli --crate-type staticlib --print native-static-libs 2>&1 \
+ | grep 'note: native-static-libs: ' \
+ | sed 's/note: native-static-libs: \(.*\)/\1/' > $(TMPDIR)/libs.txt
+
+ cat $(TMPDIR)/libs.txt | grep -F "glib-2.0" # in bar.rs
+ cat $(TMPDIR)/libs.txt | grep -F "systemd" # in foo.rs
+ cat $(TMPDIR)/libs.txt | grep -F "bar_cli"
+ cat $(TMPDIR)/libs.txt | grep -F "foo_cli"
diff --git a/tests/run-make/print-native-static-libs/bar.rs b/tests/run-make/print-native-static-libs/bar.rs
new file mode 100644
index 000000000..a563bbc2a
--- /dev/null
+++ b/tests/run-make/print-native-static-libs/bar.rs
@@ -0,0 +1,13 @@
+#[no_mangle]
+pub extern "C" fn my_bar_add(left: i32, right: i32) -> i32 {
+ // Obviously makes no sense but...
+ unsafe {
+ g_free(std::ptr::null_mut());
+ }
+ left + right
+}
+
+#[link(name = "glib-2.0")]
+extern "C" {
+ fn g_free(p: *mut ());
+}
diff --git a/tests/run-make/print-native-static-libs/foo.rs b/tests/run-make/print-native-static-libs/foo.rs
new file mode 100644
index 000000000..6acaee20e
--- /dev/null
+++ b/tests/run-make/print-native-static-libs/foo.rs
@@ -0,0 +1,15 @@
+extern crate bar;
+
+#[no_mangle]
+pub extern "C" fn my_foo_add(left: i32, right: i32) -> i32 {
+ // Obviously makes no sense but...
+ unsafe {
+ init(std::ptr::null_mut());
+ }
+ bar::my_bar_add(left, right)
+}
+
+#[link(name = "systemd")]
+extern "C" {
+ fn init(p: *mut ());
+}