diff options
author | John Hodge <tpg@ucc.asn.au> | 2019-10-19 17:32:02 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2019-10-19 17:32:02 +0800 |
commit | b4c1472657dd29bb477821ceee0c80ea30212448 (patch) | |
tree | cea795ba7959f8fea6bac309059ca7a6b0355c4c /src | |
parent | 4d97194c39a03e15def144c612ef96fa2f0745f6 (diff) | |
download | mrust-b4c1472657dd29bb477821ceee0c80ea30212448.tar.gz |
Codegen C - Tweak handling of dylibs at linking
Diffstat (limited to 'src')
-rw-r--r-- | src/trans/codegen_c.cpp | 5 |
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 { |