diff options
| author | bors <bors@rust-lang.org> | 2015-10-01 04:29:04 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-10-01 04:29:04 +0000 |
| commit | 587be42d0bd318d6c2f41fe4716e040366dc8951 (patch) | |
| tree | f029b84fe4e63374038bf89e179f1689ab81bf3a /src/test | |
| parent | 031dd9c38153558025b3de97d486541b56275002 (diff) | |
| parent | 9502df5798f2d7de41fe59927fddd894f7769a73 (diff) | |
Auto merge of #28605 - alexcrichton:link-native-first, r=brson
This commit swaps the order of linking local native libraries and upstream native libraries on the linker command line. Detail of bugs this can cause can be found in #28595, and this change also invalidates the test case that was added for #12446 which is now considered a bug because the downstream dependency would need to declare that it depends on the native library somehow. Closes #28595 [breaking-change]
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/run-make/issue-12446/Makefile | 6 | ||||
| -rw-r--r-- | src/test/run-make/issue-12446/foo.c | 2 | ||||
| -rw-r--r-- | src/test/run-make/issue-28595/Makefile | 6 | ||||
| -rw-r--r-- | src/test/run-make/issue-28595/a.c | 11 | ||||
| -rw-r--r-- | src/test/run-make/issue-28595/a.rs (renamed from src/test/run-make/issue-12446/foo.rs) | 9 | ||||
| -rw-r--r-- | src/test/run-make/issue-28595/b.c (renamed from src/test/run-make/issue-12446/bar.rs) | 12 | ||||
| -rw-r--r-- | src/test/run-make/issue-28595/b.rs | 21 |
7 files changed, 46 insertions, 21 deletions
diff --git a/src/test/run-make/issue-12446/Makefile b/src/test/run-make/issue-12446/Makefile deleted file mode 100644 index c412b0479fb..00000000000 --- a/src/test/run-make/issue-12446/Makefile +++ /dev/null @@ -1,6 +0,0 @@ --include ../tools.mk - -all: $(call NATIVE_STATICLIB,foo) - $(RUSTC) foo.rs - $(RUSTC) bar.rs - $(call RUN,bar) diff --git a/src/test/run-make/issue-12446/foo.c b/src/test/run-make/issue-12446/foo.c deleted file mode 100644 index 186a0046e80..00000000000 --- a/src/test/run-make/issue-12446/foo.c +++ /dev/null @@ -1,2 +0,0 @@ -// ignore-license -void some_c_symbol() {} diff --git a/src/test/run-make/issue-28595/Makefile b/src/test/run-make/issue-28595/Makefile new file mode 100644 index 00000000000..61e9d0c6547 --- /dev/null +++ b/src/test/run-make/issue-28595/Makefile @@ -0,0 +1,6 @@ +-include ../tools.mk + +all: $(call NATIVE_STATICLIB,a) $(call NATIVE_STATICLIB,b) + $(RUSTC) a.rs + $(RUSTC) b.rs + $(call RUN,b) diff --git a/src/test/run-make/issue-28595/a.c b/src/test/run-make/issue-28595/a.c new file mode 100644 index 00000000000..feacd7bc313 --- /dev/null +++ b/src/test/run-make/issue-28595/a.c @@ -0,0 +1,11 @@ +// Copyright 2015 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. + +void a(void) {} diff --git a/src/test/run-make/issue-12446/foo.rs b/src/test/run-make/issue-28595/a.rs index 11c61169de9..7377a9f3416 100644 --- a/src/test/run-make/issue-12446/foo.rs +++ b/src/test/run-make/issue-28595/a.rs @@ -1,4 +1,4 @@ -// Copyright 2014 The Rust Project Developers. See the COPYRIGHT +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // @@ -10,10 +10,7 @@ #![crate_type = "rlib"] +#[link(name = "a", kind = "static")] extern { - fn some_c_symbol(); -} - -pub fn foo() { - unsafe { some_c_symbol() } + pub fn a(); } diff --git a/src/test/run-make/issue-12446/bar.rs b/src/test/run-make/issue-28595/b.c index cd41058744d..de81fbcaa60 100644 --- a/src/test/run-make/issue-12446/bar.rs +++ b/src/test/run-make/issue-28595/b.c @@ -1,4 +1,4 @@ -// Copyright 2014 The Rust Project Developers. See the COPYRIGHT +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // @@ -8,11 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -extern crate foo; +extern void a(void); -#[link(name = "foo")] -extern {} - -fn main() { - foo::foo(); +void b(void) { + a(); } + diff --git a/src/test/run-make/issue-28595/b.rs b/src/test/run-make/issue-28595/b.rs new file mode 100644 index 00000000000..37ff346c3f3 --- /dev/null +++ b/src/test/run-make/issue-28595/b.rs @@ -0,0 +1,21 @@ +// Copyright 2015 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 crate a; + +#[link(name = "b", kind = "static")] +extern { + pub fn b(); +} + + +fn main() { + unsafe { b(); } +} |
