about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-11-05 07:01:38 +0000
committerbors <bors@rust-lang.org>2014-11-05 07:01:38 +0000
commiteca8f11315cb3cd9836e6d8501a07fbb137f5e88 (patch)
tree0932e0efac88a5739965f58ddce4d3775c4b156b /src/test
parent4375b32dabf8096a1137a68c1070fc9a9292cb06 (diff)
parent3036b001276a6e43409b08b7f2334ce72aeeb036 (diff)
downloadrust-eca8f11315cb3cd9836e6d8501a07fbb137f5e88.tar.gz
rust-eca8f11315cb3cd9836e6d8501a07fbb137f5e88.zip
auto merge of #18592 : alexcrichton/rust/dylib-harder, r=pcwalton
If a dylib is being produced, the compiler will now first check to see if it can
be created entirely statically before falling back to dynamic dependencies. This
behavior can be overridden with `-C prefer-dynamic`.

Due to the alteration in behavior, this is a breaking change. Any previous users
relying on dylibs implicitly maximizing dynamic dependencies should start
passing `-C prefer-dynamic` to compilations.

Closes #18499
[breaking-change]
Diffstat (limited to 'src/test')
-rw-r--r--src/test/auxiliary/issue-12133-dylib.rs2
-rw-r--r--src/test/auxiliary/syntax-extension-with-dll-deps-1.rs1
-rw-r--r--src/test/auxiliary/syntax-extension-with-dll-deps-2.rs1
-rw-r--r--src/test/run-make/c-dynamic-dylib/Makefile2
-rw-r--r--src/test/run-make/c-static-dylib/Makefile2
-rw-r--r--src/test/run-make/dylib-chain/Makefile6
-rw-r--r--src/test/run-make/issue-15460/Makefile2
-rw-r--r--src/test/run-make/mixing-deps/Makefile2
-rw-r--r--src/test/run-make/mixing-formats/Makefile38
-rw-r--r--src/test/run-make/prefer-dylib/Makefile2
-rw-r--r--src/test/run-make/simple-dylib/Makefile2
-rw-r--r--src/test/run-make/static-dylib-by-default/Makefile9
-rw-r--r--src/test/run-make/static-dylib-by-default/bar.rs18
-rw-r--r--src/test/run-make/static-dylib-by-default/foo.rs14
-rw-r--r--src/test/run-make/static-dylib-by-default/main.c16
-rw-r--r--src/test/run-make/suspicious-library/Makefile2
-rw-r--r--src/test/run-make/symlinked-libraries/Makefile2
17 files changed, 87 insertions, 34 deletions
diff --git a/src/test/auxiliary/issue-12133-dylib.rs b/src/test/auxiliary/issue-12133-dylib.rs
index 858d7269cd8..ea22258f67d 100644
--- a/src/test/auxiliary/issue-12133-dylib.rs
+++ b/src/test/auxiliary/issue-12133-dylib.rs
@@ -8,6 +8,4 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// no-prefer-dynamic
-
 #![crate_type = "dylib"]
diff --git a/src/test/auxiliary/syntax-extension-with-dll-deps-1.rs b/src/test/auxiliary/syntax-extension-with-dll-deps-1.rs
index a6e17e73322..338e04fbb07 100644
--- a/src/test/auxiliary/syntax-extension-with-dll-deps-1.rs
+++ b/src/test/auxiliary/syntax-extension-with-dll-deps-1.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// no-prefer-dynamic
 // force-host
 
 #![crate_type = "dylib"]
diff --git a/src/test/auxiliary/syntax-extension-with-dll-deps-2.rs b/src/test/auxiliary/syntax-extension-with-dll-deps-2.rs
index 7a4339aa9f0..88548bb5410 100644
--- a/src/test/auxiliary/syntax-extension-with-dll-deps-2.rs
+++ b/src/test/auxiliary/syntax-extension-with-dll-deps-2.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 // force-host
-// no-prefer-dynamic
 
 #![crate_type = "dylib"]
 #![feature(plugin_registrar, quote, globs)]
diff --git a/src/test/run-make/c-dynamic-dylib/Makefile b/src/test/run-make/c-dynamic-dylib/Makefile
index c4720c418a7..83bddd4c73c 100644
--- a/src/test/run-make/c-dynamic-dylib/Makefile
+++ b/src/test/run-make/c-dynamic-dylib/Makefile
@@ -6,7 +6,7 @@ all:
 	echo ignored
 else
 all: $(call DYLIB,cfoo)
-	$(RUSTC) foo.rs
+	$(RUSTC) foo.rs -C prefer-dynamic
 	$(RUSTC) bar.rs
 	$(call RUN,bar)
 	$(call REMOVE_DYLIBS,cfoo)
diff --git a/src/test/run-make/c-static-dylib/Makefile b/src/test/run-make/c-static-dylib/Makefile
index 6b047846cfd..9914e12d569 100644
--- a/src/test/run-make/c-static-dylib/Makefile
+++ b/src/test/run-make/c-static-dylib/Makefile
@@ -1,7 +1,7 @@
 -include ../tools.mk
 
 all: $(call STATICLIB,cfoo)
-	$(RUSTC) foo.rs
+	$(RUSTC) foo.rs -C prefer-dynamic
 	$(RUSTC) bar.rs
 	rm $(TMPDIR)/$(call STATICLIB_GLOB,cfoo)
 	$(call RUN,bar)
diff --git a/src/test/run-make/dylib-chain/Makefile b/src/test/run-make/dylib-chain/Makefile
index 2149f245147..a33177197b1 100644
--- a/src/test/run-make/dylib-chain/Makefile
+++ b/src/test/run-make/dylib-chain/Makefile
@@ -1,9 +1,9 @@
 -include ../tools.mk
 
 all:
-	$(RUSTC) m1.rs
-	$(RUSTC) m2.rs
-	$(RUSTC) m3.rs
+	$(RUSTC) m1.rs -C prefer-dynamic
+	$(RUSTC) m2.rs -C prefer-dynamic
+	$(RUSTC) m3.rs -C prefer-dynamic
 	$(RUSTC) m4.rs
 	$(call RUN,m4)
 	$(call REMOVE_DYLIBS,m1)
diff --git a/src/test/run-make/issue-15460/Makefile b/src/test/run-make/issue-15460/Makefile
index e6dd5c4c1af..bc5e9b72869 100644
--- a/src/test/run-make/issue-15460/Makefile
+++ b/src/test/run-make/issue-15460/Makefile
@@ -1,6 +1,6 @@
 -include ../tools.mk
 
 all: $(TMPDIR)/libfoo.a
-	$(RUSTC) foo.rs -C extra-filename=-383hf8
+	$(RUSTC) foo.rs -C extra-filename=-383hf8 -C prefer-dynamic
 	$(RUSTC) bar.rs
 	$(call RUN,bar)
diff --git a/src/test/run-make/mixing-deps/Makefile b/src/test/run-make/mixing-deps/Makefile
index 76106ada144..0e52d4a8bef 100644
--- a/src/test/run-make/mixing-deps/Makefile
+++ b/src/test/run-make/mixing-deps/Makefile
@@ -1,7 +1,7 @@
 -include ../tools.mk
 
 all:
-	$(RUSTC) both.rs
+	$(RUSTC) both.rs -C prefer-dynamic
 	$(RUSTC) dylib.rs -C prefer-dynamic
 	$(RUSTC) prog.rs
 	$(call RUN,prog)
diff --git a/src/test/run-make/mixing-formats/Makefile b/src/test/run-make/mixing-formats/Makefile
index e665cb2e535..48257669baf 100644
--- a/src/test/run-make/mixing-formats/Makefile
+++ b/src/test/run-make/mixing-formats/Makefile
@@ -15,60 +15,60 @@
 all:
 	# Building just baz
 	$(RUSTC) --crate-type=rlib  foo.rs
-	$(RUSTC) --crate-type=dylib bar1.rs
-	$(RUSTC) --crate-type=dylib,rlib baz.rs
+	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
+	$(RUSTC) --crate-type=dylib,rlib baz.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=bin baz.rs
 	rm $(TMPDIR)/*
-	$(RUSTC) --crate-type=dylib foo.rs
+	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=rlib  bar1.rs
-	$(RUSTC) --crate-type=dylib,rlib baz.rs
+	$(RUSTC) --crate-type=dylib,rlib baz.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=bin baz.rs
 	rm $(TMPDIR)/*
 	# Building baz2
 	$(RUSTC) --crate-type=rlib  foo.rs
-	$(RUSTC) --crate-type=dylib bar1.rs
-	$(RUSTC) --crate-type=dylib bar2.rs
+	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
+	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=dylib baz2.rs && exit 1 || exit 0
 	$(RUSTC) --crate-type=bin baz2.rs && exit 1 || exit 0
 	rm $(TMPDIR)/*
 	$(RUSTC) --crate-type=rlib  foo.rs
 	$(RUSTC) --crate-type=rlib  bar1.rs
-	$(RUSTC) --crate-type=dylib bar2.rs
+	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=dylib,rlib baz2.rs
 	$(RUSTC) --crate-type=bin baz2.rs
 	rm $(TMPDIR)/*
 	$(RUSTC) --crate-type=rlib  foo.rs
-	$(RUSTC) --crate-type=dylib bar1.rs
+	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=rlib  bar2.rs
-	$(RUSTC) --crate-type=dylib,rlib baz2.rs
+	$(RUSTC) --crate-type=dylib,rlib baz2.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=bin baz2.rs
 	rm $(TMPDIR)/*
 	$(RUSTC) --crate-type=rlib  foo.rs
 	$(RUSTC) --crate-type=rlib  bar1.rs
 	$(RUSTC) --crate-type=rlib  bar2.rs
-	$(RUSTC) --crate-type=dylib,rlib baz2.rs
+	$(RUSTC) --crate-type=dylib,rlib baz2.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=bin baz2.rs
 	rm $(TMPDIR)/*
-	$(RUSTC) --crate-type=dylib foo.rs
+	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=rlib  bar1.rs
 	$(RUSTC) --crate-type=rlib  bar2.rs
-	$(RUSTC) --crate-type=dylib,rlib baz2.rs
+	$(RUSTC) --crate-type=dylib,rlib baz2.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=bin baz2.rs
 	rm $(TMPDIR)/*
-	$(RUSTC) --crate-type=dylib foo.rs
-	$(RUSTC) --crate-type=dylib bar1.rs
+	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
+	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=rlib  bar2.rs
 	$(RUSTC) --crate-type=dylib,rlib baz2.rs
 	$(RUSTC) --crate-type=bin baz2.rs
 	rm $(TMPDIR)/*
-	$(RUSTC) --crate-type=dylib foo.rs
+	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=rlib  bar1.rs
-	$(RUSTC) --crate-type=dylib bar2.rs
+	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=dylib,rlib baz2.rs
 	$(RUSTC) --crate-type=bin baz2.rs
 	rm $(TMPDIR)/*
-	$(RUSTC) --crate-type=dylib foo.rs
-	$(RUSTC) --crate-type=dylib bar1.rs
-	$(RUSTC) --crate-type=dylib bar2.rs
+	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
+	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
+	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
 	$(RUSTC) --crate-type=dylib,rlib baz2.rs
 	$(RUSTC) --crate-type=bin baz2.rs
diff --git a/src/test/run-make/prefer-dylib/Makefile b/src/test/run-make/prefer-dylib/Makefile
index fe9bbb95095..bd44feecf2a 100644
--- a/src/test/run-make/prefer-dylib/Makefile
+++ b/src/test/run-make/prefer-dylib/Makefile
@@ -1,7 +1,7 @@
 -include ../tools.mk
 
 all:
-	$(RUSTC) bar.rs --crate-type=dylib --crate-type=rlib
+	$(RUSTC) bar.rs --crate-type=dylib --crate-type=rlib -C prefer-dynamic
 	$(RUSTC) foo.rs -C prefer-dynamic
 	$(call RUN,foo)
 	rm $(TMPDIR)/*bar*
diff --git a/src/test/run-make/simple-dylib/Makefile b/src/test/run-make/simple-dylib/Makefile
index 84e6e079e6f..26730820fea 100644
--- a/src/test/run-make/simple-dylib/Makefile
+++ b/src/test/run-make/simple-dylib/Makefile
@@ -1,5 +1,5 @@
 -include ../tools.mk
 all:
-	$(RUSTC) bar.rs --crate-type=dylib
+	$(RUSTC) bar.rs --crate-type=dylib -C prefer-dynamic
 	$(RUSTC) foo.rs
 	$(call RUN,foo)
diff --git a/src/test/run-make/static-dylib-by-default/Makefile b/src/test/run-make/static-dylib-by-default/Makefile
new file mode 100644
index 00000000000..20bed0abbfd
--- /dev/null
+++ b/src/test/run-make/static-dylib-by-default/Makefile
@@ -0,0 +1,9 @@
+-include ../tools.mk
+
+all:
+	$(RUSTC) foo.rs
+	$(RUSTC) bar.rs
+	$(CC) main.c -o $(call RUN_BINFILE,main) -lbar
+	rm $(TMPDIR)/*.rlib
+	rm $(call DYLIB,foo)
+	$(call RUN,main)
diff --git a/src/test/run-make/static-dylib-by-default/bar.rs b/src/test/run-make/static-dylib-by-default/bar.rs
new file mode 100644
index 00000000000..63da277dece
--- /dev/null
+++ b/src/test/run-make/static-dylib-by-default/bar.rs
@@ -0,0 +1,18 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![crate_type = "dylib"]
+
+extern crate foo;
+
+#[no_mangle]
+pub extern fn bar() {
+    foo::foo();
+}
diff --git a/src/test/run-make/static-dylib-by-default/foo.rs b/src/test/run-make/static-dylib-by-default/foo.rs
new file mode 100644
index 00000000000..341040e653c
--- /dev/null
+++ b/src/test/run-make/static-dylib-by-default/foo.rs
@@ -0,0 +1,14 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![crate_type = "rlib"]
+#![crate_type = "dylib"]
+
+pub fn foo() {}
diff --git a/src/test/run-make/static-dylib-by-default/main.c b/src/test/run-make/static-dylib-by-default/main.c
new file mode 100644
index 00000000000..30bb0783edf
--- /dev/null
+++ b/src/test/run-make/static-dylib-by-default/main.c
@@ -0,0 +1,16 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+extern void bar();
+
+int main() {
+    bar();
+    return 0;
+}
diff --git a/src/test/run-make/suspicious-library/Makefile b/src/test/run-make/suspicious-library/Makefile
index 621f3064b5c..12f437075fb 100644
--- a/src/test/run-make/suspicious-library/Makefile
+++ b/src/test/run-make/suspicious-library/Makefile
@@ -1,7 +1,7 @@
 -include ../tools.mk
 
 all:
-	$(RUSTC) foo.rs
+	$(RUSTC) foo.rs -C prefer-dynamic
 	touch $(call DYLIB,foo-something-special)
 	touch $(call DYLIB,foo-something-special2)
 	$(RUSTC) bar.rs
diff --git a/src/test/run-make/symlinked-libraries/Makefile b/src/test/run-make/symlinked-libraries/Makefile
index 9eb2c135230..ac595546aa7 100644
--- a/src/test/run-make/symlinked-libraries/Makefile
+++ b/src/test/run-make/symlinked-libraries/Makefile
@@ -4,7 +4,7 @@
 ifndef IS_WINDOWS
 
 all:
-	$(RUSTC) foo.rs
+	$(RUSTC) foo.rs -C prefer-dynamic
 	mkdir -p $(TMPDIR)/other
 	ln -nsf $(TMPDIR)/$(call DYLIB_GLOB,foo) $(TMPDIR)/other
 	$(RUSTC) bar.rs -L $(TMPDIR)/other