summaryrefslogtreecommitdiffstats
path: root/main/llvm
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-10-11 13:59:03 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-10-11 13:59:03 +0000
commit29115386566152a5abf056ed1adf8c640afd7f02 (patch)
tree867fe62b7d4da0ae96e94b1b7a284e445ea9ad1d /main/llvm
parent5e5727bdfb02f387b13f3e8d81c716ef0a1299cc (diff)
downloadaports-29115386566152a5abf056ed1adf8c640afd7f02.tar.bz2
aports-29115386566152a5abf056ed1adf8c640afd7f02.tar.xz
main/llvm: moved from testing
Diffstat (limited to 'main/llvm')
-rw-r--r--main/llvm/APKBUILD91
-rw-r--r--main/llvm/clang-2.9-alpine-linux.patch71
2 files changed, 162 insertions, 0 deletions
diff --git a/main/llvm/APKBUILD b/main/llvm/APKBUILD
new file mode 100644
index 000000000..236831943
--- /dev/null
+++ b/main/llvm/APKBUILD
@@ -0,0 +1,91 @@
+# Contributor: William Pitcock <nenolod@dereferenced.org>
+# Maintainer: William Pitcock <nenolod@dereferenced.org>
+pkgname=llvm
+pkgver=2.9
+pkgrel=2
+pkgdesc="low level virtual machine compiler system"
+arch="x86"
+url="http://llvm.org/"
+license="UOI-NCSA"
+depends=
+makedepends="groff perl libffi-dev"
+install=
+subpackages="clang $pkgname-dev $pkgname-doc $pkgname-libs"
+source="http://llvm.org/releases/$pkgver/llvm-$pkgver.tgz
+ http://llvm.org/releases/$pkgver/clang-$pkgver.tgz
+ clang-2.9-alpine-linux.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 \
+ --enable-ffi \
+ --enable-shared \
+ || return 1
+
+ # configure gets it wrong. We do have error_t
+ sed -i -e 's/.*undef HAVE_ERROR_T.*/#define HAVE_ERROR_T 1/' \
+ -e '/define error_t/d' \
+ ./include/llvm/Config/config.h || return 1
+
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+
+ #relocate docs
+ mkdir -p "$pkgdir"/usr/share/doc
+ mv "$pkgdir"/usr/docs/llvm "$pkgdir"/usr/share/doc/ || return 1
+ rmdir "$pkgdir"/usr/docs || return 1
+}
+
+clang() {
+ pkgdesc="A C language family front-end for LLVM"
+ mkdir -p "$subpkgdir"/usr/bin \
+ "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/bin/clang* "$pkgdir"/usr/bin/tblgen \
+ "$subpkgdir"/usr/bin/ || return 1
+ mv "$pkgdir"/usr/lib/clang \
+ "$pkgdir"/usr/lib/libclang.so \
+ "$subpkgdir"/usr/lib/ || return 1
+
+}
+
+libs() {
+ pkgdesc="LLVM shared libraries"
+ mkdir -p "$subpkgdir"/usr/lib/
+ mv "$pkgdir"/usr/lib/*.so "$subpkgdir"/usr/lib/
+}
+
+md5sums="793138412d2af2c7c7f54615f8943771 llvm-2.9.tgz
+634de18d04b7a4ded19ec4c17d23cfca clang-2.9.tgz
+9aff59aadf89e56e173fa7be011915f1 clang-2.9-alpine-linux.patch"
diff --git a/main/llvm/clang-2.9-alpine-linux.patch b/main/llvm/clang-2.9-alpine-linux.patch
new file mode 100644
index 000000000..f173994ce
--- /dev/null
+++ b/main/llvm/clang-2.9-alpine-linux.patch
@@ -0,0 +1,71 @@
+--- ./tools.orig/clang/lib/Driver/ToolChains.cpp
++++ ./tools/clang/lib/Driver/ToolChains.cpp
+@@ -1273,6 +1273,7 @@
+ /// Linux toolchain (very bare-bones at the moment).
+
+ enum LinuxDistro {
++ AlpineLinux,
+ ArchLinux,
+ DebianLenny,
+ DebianSqueeze,
+@@ -1380,6 +1381,9 @@
+ if (!llvm::sys::fs::exists("/etc/arch-release", Exists) && Exists)
+ return ArchLinux;
+
++ if (!llvm::sys::fs::exists("/etc/alpine-release", Exists) && Exists)
++ return AlpineLinux;
++
+ return UnknownDistro;
+ }
+
+@@ -1432,6 +1436,9 @@
+ else if (!llvm::sys::fs::exists("/usr/lib/gcc/x86_64-manbo-linux-gnu",
+ Exists) && Exists)
+ GccTriple = "x86_64-manbo-linux-gnu";
++ else if (!llvm::sys::fs::exists("/usr/lib/gcc/x86_64-alpine-linux-uclibc",
++ Exists) && Exists)
++ GccTriple = "x86_64-alpine-linux-uclibc";
+ } else if (Arch == llvm::Triple::x86) {
+ if (!llvm::sys::fs::exists("/usr/lib/gcc/i686-linux-gnu", Exists) && Exists)
+ GccTriple = "i686-linux-gnu";
+@@ -1447,9 +1454,13 @@
+ else if (!llvm::sys::fs::exists("/usr/lib/gcc/i586-suse-linux", Exists) &&
+ Exists)
+ GccTriple = "i586-suse-linux";
++ else if (!llvm::sys::fs::exists("/usr/lib/gcc/i486-alpine-linux-uclibc", Exists) &&
++ Exists)
++ GccTriple = "i486-alpine-linux-uclibc";
+ }
+
+- const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
++ const char* GccVersions[] = {"4.6.1", "4.6.0",
++ "4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
+ "4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2",
+ "4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1",
+ "4.2"};
+@@ -1513,7 +1524,7 @@
+ Distro == UbuntuKarmic)
+ ExtraOpts.push_back("--build-id");
+
+- if (Distro == ArchLinux)
++ if (Distro == ArchLinux || Distro == AlpineLinux)
+ Lib = "lib";
+
+ Paths.push_back(Base + Suffix);
+--- ./tools.orig/clang/lib/Driver/Tools.cpp
++++ ./tools/clang/lib/Driver/Tools.cpp
+@@ -3621,12 +3621,12 @@
+ !Args.hasArg(options::OPT_shared))) {
+ CmdArgs.push_back("-dynamic-linker");
+ if (ToolChain.getArch() == llvm::Triple::x86)
+- CmdArgs.push_back("/lib/ld-linux.so.2");
++ CmdArgs.push_back("/lib/ld-uClibc.so.0.9.32");
+ else if (ToolChain.getArch() == llvm::Triple::arm ||
+ ToolChain.getArch() == llvm::Triple::thumb)
+ CmdArgs.push_back("/lib/ld-linux.so.3");
+ else
+- CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2");
++ CmdArgs.push_back("/lib/ld64-uClibc.so.0.9.32");
+ }
+
+ CmdArgs.push_back("-o");