aports/testing/llvm/llvm-uclibc-errno-fsckery.patch
William Pitcock d73d155969 testing/llvm: new aport.
clang is included with this port, but does not generate PIC on x86_64.  on
i386, this is not a problem so clang should, in theory, be working fully there.
2010-12-17 09:58:27 +00:00

87 lines
2.0 KiB
Diff

--- 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) {