about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-01-19 05:56:35 -0800
committerbors <bors@rust-lang.org>2014-01-19 05:56:35 -0800
commit5512fb49a038ca3827e33d8ddf41f6901f11c2f5 (patch)
tree33fdd6c20106d00bfd8de42c3a802fd3aeb2ac77 /src/libsyntax
parent52f1d905b0c7a0f99f4e2a7c330acc86b9700cb0 (diff)
parent1e20960f794a820791d4cb64e35d7c03ec505065 (diff)
downloadrust-5512fb49a038ca3827e33d8ddf41f6901f11c2f5.tar.gz
rust-5512fb49a038ca3827e33d8ddf41f6901f11c2f5.zip
auto merge of #11639 : sfackler/rust/macro-crate-path, r=alexcrichton
If the library is in the working directory, its path won't have a "/"
which will cause dlopen to search /usr/lib etc. It turns out that Path
auto-normalizes during joins so Path::new(".").join(path) is actually a
no-op.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ext/expand.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 7d46f6e4594..13bb2770c8e 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -31,6 +31,7 @@ use util::small_vector::SmallVector;
 
 use std::vec;
 use std::unstable::dynamic_lib::DynamicLibrary;
+use std::os;
 
 pub fn expand_expr(e: @ast::Expr, fld: &mut MacroExpander) -> @ast::Expr {
     match e.node {
@@ -402,8 +403,7 @@ fn load_extern_macros(crate: &ast::ViewItem, fld: &mut MacroExpander) {
         None => return
     };
     // Make sure the path contains a / or the linker will search for it.
-    // If path is already absolute this is a no-op.
-    let path = Path::new(".").join(path);
+    let path = os::make_absolute(&path);
 
     let registrar = match fld.cx.loader.get_registrar_symbol(cnum) {
         Some(registrar) => registrar,