diff options
author | Heinz Wiesinger <pprkut@liwjatan.at> | 2011-12-17 22:54:23 -0600 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2011-12-17 22:54:23 -0600 |
commit | 8cc82f7af33407c24402998f9c6b1516d0154454 (patch) | |
tree | b593b192cab0d23e4155db9b35b28dccafafcdaf | |
parent | 27f68e1684022dd5f3cf1e713198225edf4d4326 (diff) |
development/llvm: Updated for version 2.9 and added clang support.
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
-rw-r--r-- | development/llvm/README | 9 | ||||
-rw-r--r-- | development/llvm/clang-slackware.diff | 39 | ||||
-rw-r--r-- | development/llvm/llvm.SlackBuild | 58 | ||||
-rw-r--r-- | development/llvm/llvm.info | 8 | ||||
-rw-r--r-- | development/llvm/slack-desc | 6 |
5 files changed, 105 insertions, 15 deletions
diff --git a/development/llvm/README b/development/llvm/README index 14c71bc1f2e3e..49353dc1f907f 100644 --- a/development/llvm/README +++ b/development/llvm/README @@ -1,6 +1,7 @@ Low Level Virtual Machine is a toolkit for the construction of -highly optimized compilers, optimizers, and runtime -environments. +highly optimized compilers, optimizers, and runtime environments. -llvm makes use of ocaml if available, which is also available -from SlackBuilds.org +This optionally builds with the clang compiler. In order to +enable building clang you have to pass CLANG=yes to the script. + +ocaml is an optional dependency. diff --git a/development/llvm/clang-slackware.diff b/development/llvm/clang-slackware.diff new file mode 100644 index 0000000000000..7047ece73e961 --- /dev/null +++ b/development/llvm/clang-slackware.diff @@ -0,0 +1,39 @@ +diff -U 3 -H -d -r -N -- clang-2.9.orig/lib/Driver/ToolChains.cpp clang-2.9/lib/Driver/ToolChains.cpp +--- clang-2.9.orig/lib/Driver/ToolChains.cpp 2011-03-21 22:29:27.000000000 +0100 ++++ clang-2.9/lib/Driver/ToolChains.cpp 2011-12-14 22:50:28.813000001 +0100 +@@ -1432,6 +1432,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/lib64/gcc/x86_64-slackware-linux", Exists) ++ && Exists) ++ GccTriple = "x86_64-slackware-linux"; + } else if (Arch == llvm::Triple::x86) { + if (!llvm::sys::fs::exists("/usr/lib/gcc/i686-linux-gnu", Exists) && Exists) + GccTriple = "i686-linux-gnu"; +@@ -1447,6 +1450,9 @@ + 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-slackware-linux", Exists) ++ && Exists) ++ GccTriple = "i486-slackware-linux"; + } + + const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4", +diff -U 3 -H -d -r -N -- clang-2.9.orig/lib/Frontend/InitHeaderSearch.cpp clang-2.9/lib/Frontend/InitHeaderSearch.cpp +--- clang-2.9.orig/lib/Frontend/InitHeaderSearch.cpp 2011-03-22 01:24:04.000000000 +0100 ++++ clang-2.9/lib/Frontend/InitHeaderSearch.cpp 2011-12-17 19:12:24.966000013 +0100 +@@ -748,6 +748,12 @@ + AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.5", + "x86_64-suse-linux", "", "", triple); + ++ // Slackware 13.37 ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.5.2", ++ "i486-slackware-linux", "", "", triple); ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.5.2", ++ "x86_64-slackware-linux", "", "", triple); ++ + // Arch Linux 2008-06-24 + AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1", + "i686-pc-linux-gnu", "", "", triple); diff --git a/development/llvm/llvm.SlackBuild b/development/llvm/llvm.SlackBuild index cf9e67440599d..ddc573d093348 100644 --- a/development/llvm/llvm.SlackBuild +++ b/development/llvm/llvm.SlackBuild @@ -2,7 +2,7 @@ # Slackware build script for llvm -# Copyright 2008-2010 Heinz Wiesinger, Amsterdam, The Netherlands +# Copyright 2008-2011 Heinz Wiesinger, Amsterdam, The Netherlands # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,7 +23,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=llvm -VERSION=2.7 +VERSION=2.9 BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -54,6 +54,8 @@ else LIBDIRSUFFIX="" fi +CLANG=${CLANG:-no} + set -e rm -rf $PKG @@ -61,10 +63,27 @@ mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tgz -cd $PRGNAM-$VERSION + +if [ "$CLANG" = "no" ]; then + cd $PRGNAM-$VERSION +else + cd $PRGNAM-$VERSION/tools + rm -rf clang + tar xvf $CWD/clang-$VERSION.tgz + mv clang-$VERSION clang + cd ../ + + # clang fixes for slackware + patch -p1 -d tools/clang -i $CWD/clang-slackware.diff +fi + chown -R root:root . chmod -R u+w,go+r-w,a-s . +CINC="/usr/include/" +CINC="$CINC:/usr/lib$LIBDIRSUFFIX/gcc/$ARCH-slackware-linux/4.5.2/include/" +CINC="$CINC:/usr/lib$LIBDIRSUFFIX/gcc/$ARCH-slackware-linux/4.5.2/include-fixed/" + # --mandir doesn't work currently # need to disable assertions to make llvm thread-safe CFLAGS="$SLKCFLAGS" \ @@ -78,21 +97,43 @@ CXXFLAGS="$SLKCFLAGS" \ --enable-optimized \ --disable-assertions \ --enable-pic \ + --with-c-include-dirs=$CINC \ --build=$ARCH-slackware-linux \ --host=$ARCH-slackware-linux # Correct libdir setting -sed -i "s|\$(PROJ_prefix)/lib|\$(PROJ_prefix)/lib$LIBDIRSUFFIX|" Makefile.config +sed -i "s|\$(PROJ_prefix)/lib|\$(PROJ_prefix)/lib$LIBDIRSUFFIX|" \ + Makefile.config + +if [ "$CLANG" != "no" ]; then + sed -i "s|\$(PROJ_prefix)/lib|\$(PROJ_prefix)/lib$LIBDIRSUFFIX|" \ + tools/clang/lib/Headers/Makefile +fi make make install DESTDIR=$PKG +if [ "$CLANG" != "no" ]; then + # install clang-static-analyzer + mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/clang-analyzer + cp -pr tools/clang/tools/scan-{build,view} \ + $PKG/usr/lib$LIBDIRSUFFIX/clang-analyzer/ + for i in scan-{build,view}; do + ln -s /usr/lib$LIBDIRSUFFIX/clang-analyzer/$i/$i \ + $PKG/usr/bin/$i + done + for i in ccc c++; do + ln -s /usr/lib$LIBDIRSUFFIX/clang-analyzer/scan-build/$i-analyzer \ + $PKG/usr/bin/$i-analyzer + done +fi + # Remove example libraries rm -f $PKG/usr/lib$LIBDIRSUFFIX/LLVMHello* # Fix wrong libdir sed -i -e "s|ABS_RUN_DIR/lib\"|ABS_RUN_DIR/lib$LIBDIRSUFFIX\"|" \ - $PKG/usr/bin/llvm-config + $PKG/usr/bin/llvm-config mv $PKG/usr/share/* $PKG/usr/ rmdir $PKG/usr/share @@ -106,6 +147,13 @@ mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a CREDITS* LICENSE* README* $PKG/usr/doc/$PRGNAM-$VERSION mv $PKG/usr/docs/llvm/* $PKG/usr/doc/$PRGNAM-$VERSION rm -rf $PKG/usr/docs + +if [ "$CLANG" != "no" ]; then + mkdir $PKG/usr/doc/$PRGNAM-$VERSION/clang + cp -a tools/clang/{INSTALL,NOTES,README,TODO}.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION/clang +fi + cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install diff --git a/development/llvm/llvm.info b/development/llvm/llvm.info index 06930eb42aa7d..358c912ffc536 100644 --- a/development/llvm/llvm.info +++ b/development/llvm/llvm.info @@ -1,8 +1,10 @@ PRGNAM="llvm" -VERSION="2.7" +VERSION="2.9" HOMEPAGE="http://llvm.org/" -DOWNLOAD="http://llvm.org/releases/2.7/llvm-2.7.tgz" -MD5SUM="ac322661f20e7d6c810b1869f886ad9b" +DOWNLOAD="http://llvm.org/releases/2.9/llvm-2.9.tgz \ + http://llvm.org/releases/2.9/clang-2.9.tgz" +MD5SUM="793138412d2af2c7c7f54615f8943771 \ + 634de18d04b7a4ded19ec4c17d23cfca" DOWNLOAD_x86_64="" MD5SUM_x86_64="" MAINTAINER="Heinz Wiesinger" diff --git a/development/llvm/slack-desc b/development/llvm/slack-desc index 5447393f47373..70157b3a8bf3d 100644 --- a/development/llvm/slack-desc +++ b/development/llvm/slack-desc @@ -8,12 +8,12 @@ |-----handy-ruler------------------------------------------------| llvm: llvm (Low Level Virtual Machine) llvm: -llvm: Low Level Virtual Machine is a toolkit for the construction of -llvm: highly optimized compilers, optimizers, and runtime +llvm: Low Level Virtual Machine is a toolkit for the construction +llvm: of highly optimized compilers, optimizers, and runtime llvm: environments. llvm: llvm: Homepage: http://llvm.org/ llvm: llvm: llvm: -llvm:
\ No newline at end of file +llvm: |