File tree Expand file tree Collapse file tree 4 files changed +49
-2
lines changed
test/run-make/symlinked-libraries Expand file tree Collapse file tree 4 files changed +49
-2
lines changed Original file line number Diff line number Diff line change @@ -67,6 +67,18 @@ pub struct ArchiveMetadata {
6767 priv data : & ' static [ u8 ] ,
6868}
6969
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+
7082impl Context {
7183 pub fn load_library_crate ( & self , root_ident : Option < ~str > ) -> Library {
7284 match self . find_library_crate ( ) {
@@ -121,7 +133,7 @@ impl Context {
121133 ( HashSet :: new ( ) , HashSet :: new ( ) )
122134 } ) ;
123135 let ( ref mut rlibs, _) = * slot;
124- rlibs. insert ( path . clone ( ) ) ;
136+ rlibs. insert ( realpath ( path ) ) ;
125137 FileMatches
126138 }
127139 None => {
@@ -138,7 +150,7 @@ impl Context {
138150 ( HashSet :: new ( ) , HashSet :: new ( ) )
139151 } ) ;
140152 let ( _, ref mut dylibs) = * slot;
141- dylibs. insert ( path . clone ( ) ) ;
153+ dylibs. insert ( realpath ( path ) ) ;
142154 FileMatches
143155 }
144156 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