From 29115386566152a5abf056ed1adf8c640afd7f02 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 11 Oct 2011 13:59:03 +0000 Subject: main/llvm: moved from testing --- main/llvm/APKBUILD | 91 ++++++++++++++++++++++++++++++++++ main/llvm/clang-2.9-alpine-linux.patch | 71 ++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 main/llvm/APKBUILD create mode 100644 main/llvm/clang-2.9-alpine-linux.patch (limited to 'main/llvm') 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 +# Maintainer: William Pitcock +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"); -- cgit v1.2.3