tsan: fix darwin build after 328079

328079 introduced a weak hook without default implementation.
This broke darwin build:
http://green.lab.llvm.org/green//job/clang-stage1-configure-RA/43731/consoleFull#-119213188149ba4694-19c4-4d7e-bec5-911270d8a58c

Provide default impl for the hook.



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@328082 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/tsan/rtl/tsan_symbolize.cc b/lib/tsan/rtl/tsan_symbolize.cc
index de50c4e..27f0e01 100644
--- a/lib/tsan/rtl/tsan_symbolize.cc
+++ b/lib/tsan/rtl/tsan_symbolize.cc
@@ -48,11 +48,11 @@
 
 // New API: call __tsan_symbolize_external_ex only when it exists.
 // Once old clients are gone, provide dummy implementation.
-extern "C" SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
+SANITIZER_WEAK_DEFAULT_IMPL
 void __tsan_symbolize_external_ex(uptr pc,
                                   void (*add_frame)(void *, const char *,
                                                     const char *, int, int),
-                                  void *ctx);
+                                  void *ctx) {}
 
 struct SymbolizedStackBuilder {
   SymbolizedStack *head;
@@ -83,11 +83,10 @@
 SymbolizedStack *SymbolizeCode(uptr addr) {
   // Check if PC comes from non-native land.
   if (addr & kExternalPCBit) {
-    if (__tsan_symbolize_external_ex) {
-      SymbolizedStackBuilder ssb = {nullptr, nullptr, addr};
-      __tsan_symbolize_external_ex(addr, AddFrame, &ssb);
-      return ssb.head ? ssb.head : SymbolizedStack::New(addr);
-    }
+    SymbolizedStackBuilder ssb = {nullptr, nullptr, addr};
+    __tsan_symbolize_external_ex(addr, AddFrame, &ssb);
+    if (ssb.head)
+      return ssb.head;
     // Legacy code: remove along with the declaration above
     // once all clients using this API are gone.
     // Declare static to not consume too much stack space.