diff options
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 { |