summaryrefslogtreecommitdiffstats
path: root/main/llvm/llvm-musl.patch
blob: b6a3e216f0609b627b2045c586ab76f8d0c98dc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
diff -ru llvm-3.5.0.src.orig/include/llvm/Target/TargetLibraryInfo.h llvm-3.5.0.src/include/llvm/Target/TargetLibraryInfo.h
--- llvm-3.5.0.src.orig/include/llvm/Target/TargetLibraryInfo.h	2014-11-13 12:51:53.341455401 +0000
+++ llvm-3.5.0.src/include/llvm/Target/TargetLibraryInfo.h	2014-11-13 12:52:35.078889077 +0000
@@ -13,6 +13,15 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Pass.h"
 
+#undef fopen64
+#undef fseeko64
+#undef fstat64
+#undef fstatvfs64
+#undef ftello64
+#undef lstat64
+#undef stat64
+#undef tmpfile64
+
 namespace llvm {
   class Triple;
 
diff -ru llvm-3.5.0.src.orig/lib/Support/DynamicLibrary.cpp llvm-3.5.0.src/lib/Support/DynamicLibrary.cpp
--- llvm-3.5.0.src.orig/lib/Support/DynamicLibrary.cpp	2014-11-13 12:51:53.341455401 +0000
+++ llvm-3.5.0.src/lib/Support/DynamicLibrary.cpp	2014-11-13 12:52:07.781720766 +0000
@@ -138,7 +138,7 @@
 
 // This macro returns the address of a well-known, explicit symbol
 #define EXPLICIT_SYMBOL(SYM) \
-   if (!strcmp(symbolName, #SYM)) return &SYM
+   if (!strcmp(symbolName, #SYM)) return (void *) &SYM
 
 // On linux we have a weird situation. The stderr/out/in symbols are both
 // macros and global variables because of standards requirements. So, we
diff -ru llvm-3.5.0.src.orig/lib/Support/Unix/Signals.inc llvm-3.5.0.src/lib/Support/Unix/Signals.inc
--- llvm-3.5.0.src.orig/lib/Support/Unix/Signals.inc	2014-11-13 12:51:53.341455401 +0000
+++ llvm-3.5.0.src/lib/Support/Unix/Signals.inc	2014-11-13 12:52:07.781720766 +0000
@@ -266,7 +266,7 @@
 // On glibc systems we have the 'backtrace' function, which works nicely, but
 // doesn't demangle symbols.
 void llvm::sys::PrintStackTrace(FILE *FD) {
-#if defined(HAVE_BACKTRACE) && defined(ENABLE_BACKTRACES)
+#if defined(__GLIBC__) && defined(HAVE_BACKTRACE) && defined(ENABLE_BACKTRACES)
   static void* StackTrace[256];
   // Use backtrace() to output a backtrace on Linux systems with glibc.
   int depth = backtrace(StackTrace,
diff -ru llvm-3.5.0.src.orig/lib/Target/TargetLibraryInfo.cpp llvm-3.5.0.src/lib/Target/TargetLibraryInfo.cpp
--- llvm-3.5.0.src.orig/lib/Target/TargetLibraryInfo.cpp	2014-11-13 12:51:53.341455401 +0000
+++ llvm-3.5.0.src/lib/Target/TargetLibraryInfo.cpp	2014-11-13 12:52:07.785054160 +0000
@@ -653,14 +653,15 @@
   }
 
   // The following functions are available on at least Linux:
-  if (!T.isOSLinux()) {
+  if (!T.isOSLinux())
+    TLI.setUnavailable(LibFunc::memalign);
+  if (1 /*!T.isGlibc()*/) {
     TLI.setUnavailable(LibFunc::dunder_strdup);
     TLI.setUnavailable(LibFunc::dunder_strtok_r);
     TLI.setUnavailable(LibFunc::dunder_isoc99_scanf);
     TLI.setUnavailable(LibFunc::dunder_isoc99_sscanf);
     TLI.setUnavailable(LibFunc::under_IO_getc);
     TLI.setUnavailable(LibFunc::under_IO_putc);
-    TLI.setUnavailable(LibFunc::memalign);
     TLI.setUnavailable(LibFunc::fopen64);
     TLI.setUnavailable(LibFunc::fseeko64);
     TLI.setUnavailable(LibFunc::fstat64);
diff -ru llvm-3.5.0.src.orig/utils/unittest/googletest/src/gtest.cc llvm-3.5.0.src/utils/unittest/googletest/src/gtest.cc
--- llvm-3.5.0.src.orig/utils/unittest/googletest/src/gtest.cc	2014-11-13 12:51:53.341455401 +0000
+++ llvm-3.5.0.src/utils/unittest/googletest/src/gtest.cc	2014-11-13 12:52:07.785054160 +0000
@@ -120,6 +120,7 @@
 
 #if GTEST_CAN_STREAM_RESULTS_
 # include <arpa/inet.h>  // NOLINT
+# include <sys/socket.h>  // NOLINT
 # include <netdb.h>  // NOLINT
 #endif