about summary refs log tree commit diff
diff options
context:
space:
mode:
author12101111 <w12101111@gmail.com>2021-05-22 19:51:26 +0800
committer12101111 <w12101111@gmail.com>2021-05-22 19:51:26 +0800
commit8e42fa55dbaec9a6560b59fb023e50713ef94e93 (patch)
treebded86092a715e9c40cb8ebaeeb37a48cef96da4
parent004614c4b38eead656201c97d2e50f55c28c79b3 (diff)
downloadrust-8e42fa55dbaec9a6560b59fb023e50713ef94e93.tar.gz
rust-8e42fa55dbaec9a6560b59fb023e50713ef94e93.zip
Add test for deduplicate native lib in linking
-rw-r--r--src/test/run-make-fulldeps/link-dedup/Makefile12
-rw-r--r--src/test/run-make-fulldeps/link-dedup/depa.rs7
-rw-r--r--src/test/run-make-fulldeps/link-dedup/depb.rs8
-rw-r--r--src/test/run-make-fulldeps/link-dedup/depc.rs4
-rw-r--r--src/test/run-make-fulldeps/link-dedup/empty.rs5
5 files changed, 36 insertions, 0 deletions
diff --git a/src/test/run-make-fulldeps/link-dedup/Makefile b/src/test/run-make-fulldeps/link-dedup/Makefile
new file mode 100644
index 00000000000..4e7ce0f02d4
--- /dev/null
+++ b/src/test/run-make-fulldeps/link-dedup/Makefile
@@ -0,0 +1,12 @@
+# ignore-msvc
+
+-include ../tools.mk
+
+all:
+	$(RUSTC) depa.rs
+	$(RUSTC) depb.rs
+	$(RUSTC) depc.rs
+	$(RUSTC) empty.rs --cfg bar 2>&1 | $(CGREP) '"-ltesta" "-ltestb" "-ltesta"'
+	$(RUSTC) empty.rs 2>&1 | $(CGREP) '"-ltesta"'
+	$(RUSTC) empty.rs 2>&1 | $(CGREP) -v '"-ltestb"'
+	$(RUSTC) empty.rs 2>&1 | $(CGREP) -v '"-ltesta" "-ltesta"'
diff --git a/src/test/run-make-fulldeps/link-dedup/depa.rs b/src/test/run-make-fulldeps/link-dedup/depa.rs
new file mode 100644
index 00000000000..e48ffd6413c
--- /dev/null
+++ b/src/test/run-make-fulldeps/link-dedup/depa.rs
@@ -0,0 +1,7 @@
+#![crate_type = "rlib"]
+
+#[link(name = "testa")]
+extern "C" {}
+
+#[link(name = "testa")]
+extern "C" {}
diff --git a/src/test/run-make-fulldeps/link-dedup/depb.rs b/src/test/run-make-fulldeps/link-dedup/depb.rs
new file mode 100644
index 00000000000..b1be21fe005
--- /dev/null
+++ b/src/test/run-make-fulldeps/link-dedup/depb.rs
@@ -0,0 +1,8 @@
+#![feature(link_cfg)]
+#![crate_type = "rlib"]
+
+#[link(name = "testb", cfg(foo))]
+extern "C" {}
+
+#[link(name = "testb", cfg(bar))]
+extern "C" {}
diff --git a/src/test/run-make-fulldeps/link-dedup/depc.rs b/src/test/run-make-fulldeps/link-dedup/depc.rs
new file mode 100644
index 00000000000..8dcb3dee5a2
--- /dev/null
+++ b/src/test/run-make-fulldeps/link-dedup/depc.rs
@@ -0,0 +1,4 @@
+#![crate_type = "rlib"]
+
+#[link(name = "testa")]
+extern "C" {}
diff --git a/src/test/run-make-fulldeps/link-dedup/empty.rs b/src/test/run-make-fulldeps/link-dedup/empty.rs
new file mode 100644
index 00000000000..e00ae18f4af
--- /dev/null
+++ b/src/test/run-make-fulldeps/link-dedup/empty.rs
@@ -0,0 +1,5 @@
+extern crate depa;
+extern crate depb;
+extern crate depc;
+
+fn main() {}