diff options
author | William Pitcock <nenolod@dereferenced.org> | 2010-12-17 09:57:10 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2010-12-17 09:58:27 +0000 |
commit | d73d15596971d1271b19edd2e90f2b4ce47646a6 (patch) | |
tree | 5462e3b3f06f37752d82a1176df30c73e89e5dbf | |
parent | 9b611b5a4bc24ae04ff1e0bc98d87de3aad3cc24 (diff) | |
download | aports-d73d15596971d1271b19edd2e90f2b4ce47646a6.tar.bz2 aports-d73d15596971d1271b19edd2e90f2b4ce47646a6.tar.xz |
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.
-rw-r--r-- | testing/llvm/APKBUILD | 57 | ||||
-rw-r--r-- | testing/llvm/llvm-uclibc-errno-fsckery.patch | 86 |
2 files changed, 143 insertions, 0 deletions
diff --git a/testing/llvm/APKBUILD b/testing/llvm/APKBUILD new file mode 100644 index 000000000..610b153ca --- /dev/null +++ b/testing/llvm/APKBUILD @@ -0,0 +1,57 @@ +# Contributor: William Pitcock <nenolod@dereferenced.org> +# Maintainer: William Pitcock <nenolod@dereferenced.org> +pkgname=llvm +pkgver=2.8 +pkgrel=0 +pkgdesc="low level virtual machine compiler system" +arch="all" +url="http://llvm.org/" +license="UOI-NCSA" +depends= +makedepends="groff" +install= +subpackages="$pkgname-dev $pkgname-doc" +source="http://llvm.org/releases/$pkgver/llvm-$pkgver.tgz + http://llvm.org/releases/$pkgver/clang-$pkgver.tgz + llvm-uclibc-errno-fsckery.patch" + +_builddir="$srcdir"/build + +prepare() { + mkdir "$_builddir" + + msg "Preparing CLANG sources..." + + mv "$srcdir"/clang-$pkgver "$srcdir"/$pkgname-$pkgver/tools/clang + + msg "Patching LLVM core..." + + cd "$srcdir"/$pkgname-$pkgver + + for i in $source; do + case $i in + *.patch) + msg "Applying $i..." + patch -s -p1 -N -i "$srcdir"/$i || return 1 + ;; + esac + done +} + +build() { + cd "$_builddir" + ../$pkgname-$pkgver/configure --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install +} + +md5sums="220d361b4d17051ff4bb21c64abe05ba llvm-2.8.tgz +10e14c901fc3728eecbd5b829e011b59 clang-2.8.tgz +089441aa2369c90a0fd0edaa311cb7d6 llvm-uclibc-errno-fsckery.patch" 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) { |