summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2019-10-19 17:32:02 +0800
committerJohn Hodge <tpg@ucc.asn.au>2019-10-19 17:32:02 +0800
commitb4c1472657dd29bb477821ceee0c80ea30212448 (patch)
treecea795ba7959f8fea6bac309059ca7a6b0355c4c /src
parent4d97194c39a03e15def144c612ef96fa2f0745f6 (diff)
downloadmrust-b4c1472657dd29bb477821ceee0c80ea30212448.tar.gz
Codegen C - Tweak handling of dylibs at linking
Diffstat (limited to 'src')
-rw-r--r--src/trans/codegen_c.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp
index 1ee74fee..8ecf988a 100644
--- a/src/trans/codegen_c.cpp
+++ b/src/trans/codegen_c.cpp
@@ -848,12 +848,15 @@ namespace {
if( is_in_dylib )
break;
}
- if( is_in_dylib ) {
+ // NOTE: Only exclude non-dylibs referenced by other dylibs
+ if( is_in_dylib && !is_dylib(crate.second) ) {
}
else if( crate.second.m_path.compare(crate.second.m_path.size() - 5, 5, ".rlib") == 0 ) {
args.push_back(crate.second.m_path + ".o");
}
else if( is_dylib(crate.second) ) {
+ // TODO: Get the dir and base name (strip `lib` and `.so` off)
+ // and emit -L/-Wl,-rpath if that path isn't already emitted.
args.push_back(crate.second.m_path);
}
else {