System: Don't reexport ___eprintf when building with Clang; this symbol isn't
authorDaniel Dunbar <daniel@zuster.org>
Fri, 17 Sep 2010 04:25:24 +0000 (04:25 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 17 Sep 2010 04:25:24 +0000 (04:25 +0000)
used on Darwin anymore, and Clang might not always link with the library it is
currently found in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114165 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/SearchForAddressOfSpecialSymbol.cpp

index 73b484c2e91750e2dc103bf30ec472fd763ec882..2fcc3401c363a363a4a4a8e4e1b14f8cafba0eab 100644 (file)
@@ -32,7 +32,14 @@ static void *DoSearch(const char* symbolName) {
     EXPLICIT_SYMBOL(__ashrdi3);
     EXPLICIT_SYMBOL(__cmpdi2);
     EXPLICIT_SYMBOL(__divdi3);
+
+    // Clang doesn't always link against libgcc.a, which is the only thing which
+    // defines ___eprintf in the modern world. Just don't attempt to export this
+    // symbol when building with Clang.
+#ifndef __clang__
     EXPLICIT_SYMBOL(__eprintf);
+#endif
+
     EXPLICIT_SYMBOL(__fixdfdi);
     EXPLICIT_SYMBOL(__fixsfdi);
     EXPLICIT_SYMBOL(__fixunsdfdi);