From ea1f4bece8870857691a7123bdc899562760b3fe Mon Sep 17 00:00:00 2001 From: root Date: Tue, 20 Dec 2011 23:14:59 +0000 Subject: Tue Dec 20 23:14:59 UTC 2011 --- multilib/lib32-llvm/PKGBUILD | 60 +++++--------------------- multilib/lib32-llvm/clang-pure64.patch | 29 +------------ multilib/lib32-llvm/enable-lto.patch | 18 +++----- multilib/lib32-llvm/fix-gold-lto-linking.patch | 11 +++++ 4 files changed, 31 insertions(+), 87 deletions(-) create mode 100644 multilib/lib32-llvm/fix-gold-lto-linking.patch (limited to 'multilib/lib32-llvm') diff --git a/multilib/lib32-llvm/PKGBUILD b/multilib/lib32-llvm/PKGBUILD index 4b990ad39..e7ff5c5ef 100644 --- a/multilib/lib32-llvm/PKGBUILD +++ b/multilib/lib32-llvm/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 51447 2011-07-09 06:18:32Z lcarlier $ +# $Id: PKGBUILD 60966 2011-12-19 19:56:09Z lcarlier $ # Maintainer: Evangelos Foutras # Contributor: Jan "heftig" Steffens # Contributor: Sebastian Nowicki @@ -10,32 +10,21 @@ # Contributor: Gerardo Exequiel Pozzi pkgname=('lib32-llvm') -pkgver=2.9 -#_gcc_ver=4.6.1 -pkgrel=2 +pkgver=3.0 +pkgrel=1 arch=('x86_64') url="http://llvm.org/" license=('custom:University of Illinois/NCSA Open Source License') makedepends=('lib32-libffi' 'python2' 'gcc-multilib') -source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.tgz - http://llvm.org/releases/$pkgver/clang-$pkgver.tgz - ftp://ftp.archlinux.org/other/community/clang/gcc-headers-4.5.2.tar.xz - clang-plugin-loader-registry.patch - cindexer-clang-path.patch - clang-toolchains-gcc-versions.patch - clang-pure64.patch - enable-lto.patch) -md5sums=('793138412d2af2c7c7f54615f8943771' - '634de18d04b7a4ded19ec4c17d23cfca' - '70e23a3dc2b38ecb2bb4d2c48f47295d' - '02c23b4aaca3445b8bf39fddb2f9906e' - '87a7162dbe99e9ffce6c40bd09f5f4f0' - '8da236120a9a287a977b575b8b905c93' - '225ee6b531f8327f34f344a18cb4ec81' - '8f7582d7440e4a8342c3aea9ec714fb4') +source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.tar.gz + http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz + clang-plugin-loader-registry.patch) +sha256sums=('519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477' + 'b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d' + 'a0a4494f2a692789670be37fd390906dcaa37b1824f740bdaaea21182f2f3a9c') build() { - cd "$srcdir/llvm-$pkgver" + cd "$srcdir/llvm-$pkgver.src" export CC="gcc -m32" export CXX="g++ -m32" @@ -57,19 +46,6 @@ build() { # See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008559.html patch -Np1 -i "$srcdir/clang-plugin-loader-registry.patch" - # Fix clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799) - #patch -d tools/clang -Np0 -i "$srcdir/cindexer-clang-path.patch" - - # Add GCC 4.6.0 to GccVersions (FS#23631) - #patch -d tools/clang -Np1 -i "$srcdir/clang-toolchains-gcc-versions.patch" - - # Adjust lib paths - #patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch" - - # Make -flto work - # Use gold instead of default linker, and always use the plugin - #patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch" - # Apply strip option to configure _optimized_switch="enable" [[ $(check_option strip) == n ]] && _optimized_switch="disable" @@ -77,12 +53,6 @@ build() { # Include location of libffi headers in CPPFLAGS export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)" - # TODO: Uncomment when clang works with GCC 4.6+ - #_cxx_headers="/usr/include/c++/$_gcc_ver" - #if [[ ! -d $_cxx_headers ]]; then - # error "Couldn't find the C++ headers, PKGBUILD needs fixing!" - # return 1 - #fi _cxx_headers="/usr/include/c++/clang-$pkgver" _32bit_headers="" @@ -114,21 +84,13 @@ package() { pkgdesc="Low Level Virtual Machine (32 bits version)" depends=('perl' 'lib32-libffi' 'llvm') - cd "$srcdir/llvm-$pkgver" + cd "$srcdir/llvm-$pkgver.src" # We move the clang directory out of the tree so it won't get installed and # then we bring it back in for the clang package # mv tools/clang "$srcdir" # -j1 is due to race conditions during the installation of the OCaml bindings make -j1 DESTDIR="$pkgdir" install - # mv "$srcdir/clang" tools - - # OCaml bindings go to a separate package - # rm -rf "$srcdir"/{ocaml,ocamldoc} - # mv "$pkgdir"/usr/{lib/ocaml,share/doc/llvm/ocamldoc} "$srcdir" - - # Remove duplicate files installed by the OCaml bindings - # rm "$pkgdir"/usr/{lib/llvm/libllvm*,share/doc/llvm/ocamldoc.tar.gz} # Fix permissions of static libs chmod -x "$pkgdir"/usr/lib32/llvm/*.a diff --git a/multilib/lib32-llvm/clang-pure64.patch b/multilib/lib32-llvm/clang-pure64.patch index da6178519..9bbbfaa8b 100644 --- a/multilib/lib32-llvm/clang-pure64.patch +++ b/multilib/lib32-llvm/clang-pure64.patch @@ -3,36 +3,11 @@ Index: lib/Driver/Tools.cpp --- lib/Driver/Tools.cpp (revision 123373) +++ lib/Driver/Tools.cpp (working copy) @@ -3306,7 +3306,7 @@ - else if (ToolChain.getArch() == llvm::Triple::arm) - CmdArgs.push_back("/lib/ld-linux.so.3"); + else if (ToolChain.getArch() == llvm::Triple::ppc64) + CmdArgs.push_back("/lib64/ld64.so.1"); else - CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2"); + CmdArgs.push_back("/lib/ld-linux-x86-64.so.2"); } CmdArgs.push_back("-o"); -Index: lib/Driver/ToolChains.cpp -=================================================================== ---- lib/Driver/ToolChains.cpp (revision 123373) -+++ lib/Driver/ToolChains.cpp (working copy) -@@ -1317,18 +1317,10 @@ - if (Arch == llvm::Triple::x86) - Suffix64 = "/64"; - -- std::string Lib32 = "lib"; -- -- bool Exists; -- if (!llvm::sys::fs::exists("/lib32", Exists) && Exists) -- Lib32 = "lib32"; -- -+ std::string Lib32 = "lib32"; - std::string Lib64 = "lib"; -- bool Symlink; -- if (!llvm::sys::fs::exists("/lib64", Exists) && Exists && -- (llvm::sys::fs::is_symlink("/lib64", Symlink) || !Symlink)) -- Lib64 = "lib64"; - -+ bool Exists; - std::string GccTriple = ""; - if (Arch == llvm::Triple::arm) { - if (!llvm::sys::fs::exists("/usr/lib/gcc/arm-linux-gnueabi", Exists) && diff --git a/multilib/lib32-llvm/enable-lto.patch b/multilib/lib32-llvm/enable-lto.patch index 40d93104a..3c8691b17 100644 --- a/multilib/lib32-llvm/enable-lto.patch +++ b/multilib/lib32-llvm/enable-lto.patch @@ -2,17 +2,12 @@ Index: lib/Driver/ToolChains.cpp =================================================================== --- lib/Driver/ToolChains.cpp (revision 123373) +++ lib/Driver/ToolChains.cpp (working copy) -@@ -1398,11 +1398,11 @@ - Lib = Lib64; - } +@@ -1398,7 +1398,7 @@ + PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" + + GCCInstallation.getTriple() + "/bin").str()); -- llvm::sys::Path LinkerPath(Base + "/../../../../" + GccTriple + "/bin/ld"); -+ llvm::sys::Path LinkerPath(Base + "/../../../../" + GccTriple + "/bin/ld.gold"); - if (!llvm::sys::fs::exists(LinkerPath.str(), Exists) && Exists) - Linker = LinkerPath.str(); - else -- Linker = GetProgramPath("ld"); -+ Linker = GetProgramPath("ld.gold"); +- Linker = GetProgramPath("ld"); ++ Linker = GetProgramPath("ld.gold"); LinuxDistro Distro = DetectLinuxDistro(Arch); @@ -27,7 +22,8 @@ Index: lib/Driver/Tools.cpp - if (Args.hasArg(options::OPT_use_gold_plugin)) { + // if (Args.hasArg(options::OPT_use_gold_plugin)) { CmdArgs.push_back("-plugin"); - std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so"; +- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so"; ++ std::string Plugin = ToolChain.getDriver().Dir + "/../lib/llvm/LLVMgold.so"; CmdArgs.push_back(Args.MakeArgString(Plugin)); - } + // } diff --git a/multilib/lib32-llvm/fix-gold-lto-linking.patch b/multilib/lib32-llvm/fix-gold-lto-linking.patch new file mode 100644 index 000000000..84d166471 --- /dev/null +++ b/multilib/lib32-llvm/fix-gold-lto-linking.patch @@ -0,0 +1,11 @@ +diff -upr llvm-3.0.src.orig/tools/gold/Makefile llvm-3.0.src/tools/gold/Makefile +--- llvm-3.0.src.orig/tools/gold/Makefile 2011-05-31 23:00:45.000000000 +0300 ++++ llvm-3.0.src/tools/gold/Makefile 2011-12-04 22:06:59.000000000 +0200 +@@ -26,6 +26,6 @@ LINK_COMPONENTS := support + # Because off_t is used in the public API, the largefile parts are required for + # ABI compatibility. + CXXFLAGS+=-I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +-CXXFLAGS+=$(SharedLibDir)/$(SharedPrefix)LTO$(SHLIBEXT) ++CXXFLAGS+=-L $(SharedLibDir) -lLTO + + include $(LEVEL)/Makefile.common -- cgit v1.2.3-54-g00ecf