File tree 4 files changed +49
-2
lines changed
test/run-make/symlinked-libraries
4 files changed +49
-2
lines changed Original file line number Diff line number Diff line change @@ -67,6 +67,18 @@ pub struct ArchiveMetadata {
67
67
priv data : & ' static [ u8 ] ,
68
68
}
69
69
70
+ // FIXME(#11857) this should be a "real" realpath
71
+ fn realpath ( p : & Path ) -> Path {
72
+ use std:: os;
73
+ use std:: io:: fs;
74
+
75
+ let path = os:: make_absolute ( p) ;
76
+ match fs:: readlink ( & path) {
77
+ Ok ( p) => p,
78
+ Err ( ..) => path
79
+ }
80
+ }
81
+
70
82
impl Context {
71
83
pub fn load_library_crate ( & self , root_ident : Option < ~str > ) -> Library {
72
84
match self . find_library_crate ( ) {
@@ -121,7 +133,7 @@ impl Context {
121
133
( HashSet :: new ( ) , HashSet :: new ( ) )
122
134
} ) ;
123
135
let ( ref mut rlibs, _) = * slot;
124
- rlibs. insert ( path . clone ( ) ) ;
136
+ rlibs. insert ( realpath ( path ) ) ;
125
137
FileMatches
126
138
}
127
139
None => {
@@ -138,7 +150,7 @@ impl Context {
138
150
( HashSet :: new ( ) , HashSet :: new ( ) )
139
151
} ) ;
140
152
let ( _, ref mut dylibs) = * slot;
141
- dylibs. insert ( path . clone ( ) ) ;
153
+ dylibs. insert ( realpath ( path ) ) ;
142
154
FileMatches
143
155
}
144
156
None => {
Original file line number Diff line number Diff line change
1
+ -include ../tools.mk
2
+
3
+ all :
4
+ $(RUSTC ) foo.rs
5
+ mkdir -p $(TMPDIR ) /other
6
+ ln -nsf $(TMPDIR ) /$(call DYLIB_GLOB,foo) $(TMPDIR ) /other
7
+ $(RUSTC ) bar.rs -L $(TMPDIR ) /other
Original file line number Diff line number Diff line change
1
+ // Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ extern crate foo;
12
+
13
+ fn main ( ) {
14
+ foo:: bar ( ) ;
15
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ #[ crate_type = "dylib" ] ;
12
+
13
+ pub fn bar ( ) { }
You can’t perform that action at this time.
0 commit comments