summaryrefslogtreecommitdiffstats
path: root/testing/llvm/llvm-uclibc-errno-fsckery.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/llvm/llvm-uclibc-errno-fsckery.patch')
-rw-r--r--testing/llvm/llvm-uclibc-errno-fsckery.patch86
1 files changed, 86 insertions, 0 deletions
diff --git a/testing/llvm/llvm-uclibc-errno-fsckery.patch b/testing/llvm/llvm-uclibc-errno-fsckery.patch
new file mode 100644
index 000000000..a7335f268
--- /dev/null
+++ b/testing/llvm/llvm-uclibc-errno-fsckery.patch
@@ -0,0 +1,86 @@
+--- llvm-2.8/lib/Support/CommandLine.cpp
++++ llvm-2.8.mod/lib/Support/CommandLine.cpp
+@@ -31,7 +31,10 @@
+ #include "llvm/ADT/StringMap.h"
+ #include "llvm/ADT/Twine.h"
+ #include "llvm/Config/config.h"
+-#include <cerrno>
++
++#include <asm-generic/errno-base.h>
++extern __thread int errno;
++
+ #include <cstdlib>
+ using namespace llvm;
+ using namespace cl;
+--- llvm-2.8/lib/Support/raw_ostream.cpp
++++ llvm-2.8.mod/lib/Support/raw_ostream.cpp
+@@ -22,7 +22,10 @@
+ #include "llvm/System/Signals.h"
+ #include "llvm/ADT/STLExtras.h"
+ #include <cctype>
+-#include <cerrno>
++
++#include <asm-generic/errno-base.h>
++extern __thread int errno;
++
+ #include <sys/stat.h>
+ #include <sys/types.h>
+
+--- llvm-2.8/lib/System/Errno.cpp
++++ llvm-2.8.mod/lib/System/Errno.cpp
+@@ -14,13 +14,11 @@
+ #include "llvm/System/Errno.h"
+ #include "llvm/Config/config.h" // Get autoconf configuration settings
+
++extern __thread int errno;
++
+ #if HAVE_STRING_H
+ #include <string.h>
+
+-#if HAVE_ERRNO_H
+-#include <errno.h>
+-#endif
+-
+ //===----------------------------------------------------------------------===//
+ //=== WARNING: Implementation here must contain only TRULY operating system
+ //=== independent code.
+@@ -29,11 +27,9 @@
+ namespace llvm {
+ namespace sys {
+
+-#if HAVE_ERRNO_H
+ std::string StrError() {
+ return StrError(errno);
+ }
+-#endif // HAVE_ERRNO_H
+
+ std::string StrError(int errnum) {
+ const int MaxErrStrLen = 2000;
+--- llvm-2.8/lib/System/Unix/Unix.h
++++ llvm-2.8.mod/lib/System/Unix/Unix.h
+@@ -24,7 +24,10 @@
+ #include <cstdlib>
+ #include <cstdio>
+ #include <cstring>
+-#include <cerrno>
++
++#include <asm-generic/errno-base.h>
++extern __thread int errno;
++
+ #include <string>
+ #include <algorithm>
+
+--- llvm-2.8/utils/TableGen/TGLexer.cpp
++++ llvm-2.8.mod/utils/TableGen/TGLexer.cpp
+@@ -19,7 +19,10 @@
+ #include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+-#include <cerrno>
++
++#include <asm-generic/errno-base.h>
++extern __thread int errno;
++
+ using namespace llvm;
+
+ TGLexer::TGLexer(SourceMgr &SM) : SrcMgr(SM) {