From 63eae6466f06256699c2816a48fa3208815df0f3 Mon Sep 17 00:00:00 2001 From: Boris Egorov Date: Fri, 10 Oct 2014 23:04:48 +0700 Subject: [PATCH] loader: suggest to set crate type explicitly Now loader suggests to set crate type explicitly if it founds file with name similar to crate name, but different extension. This commit adds warning if loader found static library instead of rlib or dylib. It fixes issue #14416. --- src/librustc/metadata/loader.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/librustc/metadata/loader.rs b/src/librustc/metadata/loader.rs index 62c179f598c96..cfb58734df287 100644 --- a/src/librustc/metadata/loader.rs +++ b/src/librustc/metadata/loader.rs @@ -426,6 +426,14 @@ impl<'a> Context<'a> { (file.slice(dylib_prefix.len(), file.len() - suffix.len()), false) } else { + let static_lib = format!("lib{}.a", self.crate_name); + if file == static_lib.as_slice() { + let msg = format!("found staticlib `{}` instead of \ + rlib `{}`, please compile using \ + --crate-type rlib instead.", + self.crate_name, self.crate_name); + self.sess.span_warn(self.span, msg.as_slice()); + } return FileDoesntMatch }; info!("lib candidate: {}", path.display());