raj.khem created this revision.
raj.khem added a reviewer: rengolin.
raj.khem added a project: clang.
Herald added subscribers: cfe-commits, jfb.

when trying to use llvm libunwind via clang driver option --unwindlib and using 
-static together, linking fails with missing symbols

  libunwind/src/RWMutex.hpp:68: undefined reference to `pthread_rwlock_wrlock'
  ..
  libunwind/src/AddressSpace.hpp:597: undefined reference to `dladdr'

There are missing symbols in linunwind.a which should be coming from libpthread 
and libdl


Repository:
  rC Clang

https://reviews.llvm.org/D65572

Files:
  clang/lib/Driver/ToolChains/CommonArgs.cpp


Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===================================================================
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -1185,6 +1185,10 @@
   }
   case ToolChain::UNW_CompilerRT:
     CmdArgs.push_back("-lunwind");
+    if (Args.hasArg(options::OPT_static)) {
+      CmdArgs.push_back("-lpthread");
+      CmdArgs.push_back("-ldl");
+    }
     break;
   }
 


Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===================================================================
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -1185,6 +1185,10 @@
   }
   case ToolChain::UNW_CompilerRT:
     CmdArgs.push_back("-lunwind");
+    if (Args.hasArg(options::OPT_static)) {
+      CmdArgs.push_back("-lpthread");
+      CmdArgs.push_back("-ldl");
+    }
     break;
   }
 
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to