# Contributor Travis Tilley # Maintainer: Travis Tilley pkgname=llvm pkgver=3.6.2 pkgrel=0 use_svn="false" pkgdesc="low level virtual machine compiler system" arch="all" url="http://llvm.org/" license="UOI-NCSA" depends="" depends_dev="perl" makedepends="$depends_dev paxmark cmake make flex bison groff musl-dev binutils-dev isl-dev libffi-dev libxml2-dev libxml2-utils zlib-dev ncurses-dev python python-dev py-sphinx chrpath" [ "${use_svn}" = "true" ] && makedepends="$makedepends subversion" install= subpackages="clang clang-doc:clang_doc $pkgname-dev $pkgname-doc $pkgname-libs" source=" llvm-0001-fix-shared-build.patch llvm-0002-musl-triple.patch llvm-0003-musl-hacks.patch compiler-rt-0001-musl-no-dlvsym.patch compiler-rt-0002-musl-no-sanitizers.patch compiler-rt-0003-off_t.patch clang-0001-fix-stdint.h.patch clang-0002-fix-unwind-header.patch clang-0003-add-alpine-linux-distro.patch clang-0004-alpine-use-z-relro.patch clang-0005-alpine-hash-style-gnu.patch clang-0006-musl-alpine-triple.patch clang-0007-musl-dynamic-linker-paths.patch clang-0008-alpine-PIE-by-default.patch clang-0009-pass-host-triple-to-compiler-rt.patch clang-0010-alpine-use-z-now.patch clang-0011-alpine-SSP-by-default.patch " if [ "${use_svn}" != "true" ]; then source="$source http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz http://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz http://llvm.org/releases/$pkgver/clang-tools-extra-$pkgver.src.tar.xz http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.xz http://llvm.org/releases/$pkgver/polly-$pkgver.src.tar.xz" fi _builddir="$srcdir"/build _bootstrapdir="$srcdir"/bootstrap _cmake_flags="\ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_VERBOSE_MAKEFILE=NO \ " # the binutils include directory setting appears to be necessary in order to # build the LLVMGold plugin, even if the headers are in /usr/include and easily # detected. # auto-detection of both go and ocaml are explicitly disabled here, as they # currently do not compile. _cmake_common_flags="\ ${_cmake_flags} \ -DLLVM_DEFAULT_TARGET_TRIPLE=$CBUILD \ -DLLVM_HOST_TRIPLE=$CHOST \ -DLLVM_BINUTILS_INCDIR=/usr/include \ -DLLVM_ENABLE_ASSERTIONS=NO \ -DLLVM_ENABLE_LIBCXX=NO \ -DLLVM_ENABLE_PIC=YES \ -DLLVM_ENABLE_ZLIB=YES \ -DLLVM_ENABLE_RTTI=YES \ -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND \ -DOCAMLFIND=OCAMLFIND-NOTFOUND \ -DCLANG_BUILD_EXAMPLES=NO \ -DLLVM_BUILD_EXAMPLES=NO \ -DLLVM_INCLUDE_EXAMPLES=NO \ -DLIBXML2_INCLUDE_DIR=/usr/include/libxml2 \ " # attempt to build the bootstrap compiler as quickly as is sane. unfortunately, # there is no way to turn off ObjC support. we can, however, disable building # ARCMT (automatic reference counting migration tool), the static analyzer, and # documentation. also, since we're using the cmake build and not autotools, the # tests aren't automatically built (targets for testing are emitted, just not # built as part of the default target). _cmake_bootstrap_flags="\ ${_cmake_common_flags} \ -DLLVM_TARGETS_TO_BUILD=host \ -DBUILD_SHARED_LIBS=NO \ -DCLANG_ENABLE_ARCMT=NO \ -DCLANG_ENABLE_STATIC_ANALYZER=NO \ -DCLANG_INCLUDE_DOCS=NO \ -DCLANG_PLUGIN_SUPPORT=NO \ -DLLVM_ENABLE_CXX1Y=NO \ -DLLVM_ENABLE_FFI=NO \ -DLLVM_ENABLE_SPHINX=NO \ -DLLVM_ENABLE_TERMINFO=NO \ -DLLVM_INCLUDE_DOCS=NO \ -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_BUILD=NO \ -DLLVM_EXTERNAL_POLLY_BUILD=NO \ " # setting compiler-rt to compile as if it were an external build allows it to # use the freshly built clang to compile, rather than the bootstrap compiler. # NOTE: there appears to be an issue building compiler-rt as an external project # and using ninja as the build tool, so stick to good old fashioned makefiles. _cmake_final_flags="\ ${_cmake_common_flags} \ -DCMAKE_INSTALL_PREFIX=/usr \ -DLLVM_TARGETS_TO_BUILD=all \ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=YES \ -DBUILD_SHARED_LIBS=YES \ -DCLANG_PLUGIN_SUPPORT=YES \ -DLINK_POLLY_INTO_TOOLS=YES \ -DLLVM_BUILD_DOCS=YES \ -DLLVM_BUILD_TESTS=YES \ -DLLVM_ENABLE_CXX1Y=YES \ -DLLVM_ENABLE_FFI=YES \ -DLLVM_ENABLE_SPHINX=YES \ -DLLVM_ENABLE_TERMINFO=YES \ -DLIBCLANG_BUILD_STATIC=YES \ -DWITH_POLLY=YES \ -DPOLLY_ENABLE_GPGPU_CODEGEN=NO \ " _srcdir="$srcdir"/"$pkgname-$pkgver.src" _srcdir_clang="$_srcdir"/tools/clang _srcdir_clang_extra="$_srcdir_clang"/tools/extra _srcdir_polly="$_srcdir"/tools/polly _srcdir_compiler_rt="$_srcdir"/projects/compiler-rt prepare() { if [[ "${use_svn}" = "true" ]]; then pkgsvnver="tags/RELEASE_${pkgver//./}/final/" svn_source="http://llvm.org/svn/llvm-project" cd "$srcdir" svn co "$svn_source/llvm/$pkgsvnver" llvm-$pkgver.src svn co "$svn_source/cfe/$pkgsvnver" cfe-$pkgver.src svn co "$svn_source/clang-tools-extra/$pkgsvnver" clang-tools-extra-$pkgver.src svn co "$svn_source/polly/$pkgsvnver" polly-$pkgver.src svn co "$svn_source/compiler-rt/$pkgsvnver" compiler-rt-$pkgver.src fi msg "Preparing LLVM project sources..." mv "$srcdir"/cfe-$pkgver.src \ "$_srcdir_clang" || return 1 mv "$srcdir"/clang-tools-extra-$pkgver.src \ "$_srcdir_clang_extra" || return 1 mv "$srcdir"/polly-$pkgver.src \ "$_srcdir_polly" || return 1 mv "$srcdir"/compiler-rt-$pkgver.src \ "$_srcdir_compiler_rt" || return 1 msg "Patching LLVM core..." cd "$_srcdir" || return 1 update_config_sub || return 1 sed -i -e '/case "\${UNAME_MACHINE}:\${UNAME_SYSTEM}:\${UNAME_RELEASE}:\${UNAME_VERSION}" in/i \' \ -e 'if [ x != "x$CBUILD" ]; then echo "$CBUILD"; exit; fi' \ ./autoconf/config.guess || return 1 for i in $source; do case $i in llvm-*.patch) msg "Applying $i..." patch -s -p1 -N -i "$srcdir"/$i || return 1 ;; esac done msg "Patching clang..." cd "$_srcdir_clang" || return 1 # FIXME: I have never seen these tests pass on any system, be it vanilla clang # or patched, musl or glibc, autoconf or cmake. It fails on alpine, gentoo, # and ubuntu. # TODO: The version of this test in 3.7 works just fine. Re-enable for 3.7 rm ./test/Driver/lto.c for i in $source; do case $i in clang-*.patch) msg "Applying $i..." patch -s -p1 -N -i "$srcdir"/$i || return 1 ;; esac done msg "Patching compiler-rt..." cd "$_srcdir_compiler_rt" || return 1 for i in $source; do case $i in compiler-rt-*.patch) msg "Applying $i..." patch -s -p1 -N -i "$srcdir"/$i || return 1 ;; esac done } build() { # cmake is funky. it uses several flag related settings in addition to picking # up what's in the CFLAGS/CXXFLAGS env variables. to make using any abuild-set # flags sane, we pass them in as options to cmake and unset the environment # variables. we also back up the original flags so that we can tweak them # without losing the original setting (see below re: -fno-devirtualize). orig_cflags="${CFLAGS}" orig_cxxflags="${CXXFLAGS}" unset CFLAGS unset CXXFLAGS # just in case those were set to blank strings, we _really_ want to make sure # we're not building what will effectively be a -O0 build here... test -z "${orig_cflags}" && orig_cflags="-O3" test -z "${orig_cxxflags}" && orig_cxxflags="-O3" # -fno-devirtualize is added here because, to quote the fedora spec file, # "gcc has scary template-related bugs". the flag is removed post-bootstrap. # -DNDEBUG is required to disable assertions cflags="${orig_cflags} -DNDEBUG" cxxflags="${orig_cxxflags} -DNDEBUG -fno-devirtualize" # The cmake logic appears to use the result of config.guess in a few places # even though we override the various triple settings manually. export CBUILD # to the tweaked config.guess just to be safe. export CBUILD # cmake doesn't call out to pkg-config to determine the include path for FFI, # and since alpine installs the headers to a versioned directory cmake can't # auto-detect it by guessing either. ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')" mkdir -p "$_bootstrapdir" "$_builddir" cd "$_bootstrapdir" msg "Compiling bootstrap compiler" cmake -G "Unix Makefiles" -Wno-dev ${_cmake_bootstrap_flags} \ -DCMAKE_C_FLAGS_RELEASE="${cflags}" \ -DCMAKE_CXX_FLAGS_RELEASE="${cxxflags}" \ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \ -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \ -DFFI_INCLUDE_DIR="$ffi_include_dir" \ "${_srcdir}" || return 1 # work around parallel build issue: make llvm-tblgen && make clang-tblgen || return 1 make || return 1 paxmark m bin/llvm-rtdyld paxmark m bin/lli paxmark m bin/lli-child-target cflags="${orig_cflags} -DNDEBUG" cxxflags="${orig_cxxflags} -DNDEBUG" CC="${_bootstrapdir}/bin/clang" CXX="${_bootstrapdir}/bin/clang++" cd ../"$_builddir" msg "Compiling final compiler" cmake -G "Unix Makefiles" -Wno-dev ${_cmake_final_flags} \ -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_C_FLAGS_RELEASE="${cflags}" \ -DCMAKE_CXX_FLAGS_RELEASE="${cxxflags}" \ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \ -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \ -DFFI_INCLUDE_DIR="$ffi_include_dir" \ "${_srcdir}" || return 1 make llvm-tblgen && make clang-tblgen || return 1 make || return 1 paxmark m bin/llvm-rtdyld paxmark m bin/lli paxmark m bin/lli-child-target paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests paxmark m unittests/Support/SupportTests make check-llvm || return 1 make check-clang || return 1 make check-compiler-rt || return 1 make check-polly || return 1 # 27 failures, all related to clang-tidy. # clang-format/clang-modernize and friends pass their test suites # make check-clang-tools || return 1 } package() { cd "$_builddir" make DESTDIR="$pkgdir" install rm "$pkgdir"/usr/lib/LLVMHello.so file "$pkgdir"/usr/lib/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d file "$pkgdir"/usr/bin/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d } clang() { pkgdesc="A C language family front-end for LLVM" mkdir -p "$subpkgdir"/usr/bin \ "$subpkgdir"/usr/lib "$subpkgdir"/usr/share/clang "$subpkgdir"/usr/include mv "$pkgdir"/usr/bin/*clang* \ "$subpkgdir"/usr/bin/ || return 1 mv "$pkgdir"/usr/lib/clang \ "$pkgdir"/usr/lib/libclang* \ "$pkgdir"/usr/lib/libmodernize* \ "$subpkgdir"/usr/lib/ || return 1 mv "$pkgdir"/usr/include/clang "$pkgdir"/usr/include/clang-c \ "$subpkgdir"/usr/include/ || return 1 cp -r "$_srcdir"/tools/clang/tools/scan-build "$subpkgdir"/usr/share/clang/scan-build cp -r "$_srcdir"/tools/clang/tools/scan-view "$subpkgdir"/usr/share/clang/scan-view ln -s /usr/share/clang/scan-build/scan-build "$subpkgdir"/usr/bin/scan-build ln -s /usr/share/clang/scan-view/scan-view "$subpkgdir"/usr/bin/scan-view } clang_doc() { pkgdesc="clang documentation" mkdir -p "$subpkgdir"/usr/share/doc/ || return 1 mv "$pkgdir"/usr/share/doc/clang "$subpkgdir"/usr/share/doc/ || return 1 } libs() { pkgdesc="LLVM shared libraries" mkdir -p "$subpkgdir"/usr/lib/ mv "$pkgdir"/usr/lib/*.so "$subpkgdir"/usr/lib/ } md5sums="0947294a8c83c8d7f857dfc16204c4eb llvm-0001-fix-shared-build.patch dacc40624cf09fa98de27016bebb1432 llvm-0002-musl-triple.patch 056178d87918d531f531b1b765a59e7c llvm-0003-musl-hacks.patch 346081b2f0825ca7f491155c4b3ca0ea compiler-rt-0001-musl-no-dlvsym.patch eb3797555357896a92f74bf1bacfbdc2 compiler-rt-0002-musl-no-sanitizers.patch 8bc11d4a60af51a7fc10643bd0970d3a compiler-rt-0003-off_t.patch eab0123372fa909817ed21cfcffdbe16 clang-0001-fix-stdint.h.patch 069f5cd7a6d0b01eade62bb72aac9e8b clang-0002-fix-unwind-header.patch 93ffbede80bc857c8ae6bed5ff016a52 clang-0003-add-alpine-linux-distro.patch 231fad6dc619ef6a54567c14082bf7af clang-0004-alpine-use-z-relro.patch 2967fea7ed0624d99808bc091be1bab4 clang-0005-alpine-hash-style-gnu.patch 1ae0e80cfd31a42b299a65ba67e244ef clang-0006-musl-alpine-triple.patch f69714b175a5a888f77d68e2ebf76167 clang-0007-musl-dynamic-linker-paths.patch 6bc4b7047042f9afec452a97c35c2cd5 clang-0008-alpine-PIE-by-default.patch 0ae0c5939c27750c52b39158fbc7a7a9 clang-0009-pass-host-triple-to-compiler-rt.patch 26831612243302f3ef964f355bf8c409 clang-0010-alpine-use-z-now.patch 308db990bb9c1c28152fdf18dddcb6eb clang-0011-alpine-SSP-by-default.patch 0c1ee3597d75280dee603bae9cbf5cc2 llvm-3.6.2.src.tar.xz ff862793682f714bb7862325b9c06e20 cfe-3.6.2.src.tar.xz 3ebc1dc41659fcec3db1b47d81575e06 clang-tools-extra-3.6.2.src.tar.xz e3bc4eb7ba8c39a6fe90d6c988927f3c compiler-rt-3.6.2.src.tar.xz 09dd91d06cc0832095379d00206bc3a1 polly-3.6.2.src.tar.xz" sha256sums="4f75c2a76cf4c439d65c8e67511cd91c895edf8ccf003a5f94ffa07c29456296 llvm-0001-fix-shared-build.patch 98d92c6cb305faff141b1b5a7cfa18656bd80aa478e7a45984f27e60a80bfdd9 llvm-0002-musl-triple.patch c6892c843b38c9a852367e5d76ffc29c21bdfd522adbc4c4e3e3c890a513c0db llvm-0003-musl-hacks.patch 94f5626b4729afb39ad00a6cac4f8d44e3ee6f3d87362268bcd2c0ec637edc22 compiler-rt-0001-musl-no-dlvsym.patch 7dd2d22c61892eb651809649606fb3722520a5d12f8d88c2e96be977d0f8b71a compiler-rt-0002-musl-no-sanitizers.patch 45bcfa7d1c757e32183c5cd95703f150ec3d1ed966a9cfa68b13b648e5310e78 compiler-rt-0003-off_t.patch 516a1dbba85731a557840ee3ebc9cc82a2e5ce625cf5b37f5392bd089ef40bdc clang-0001-fix-stdint.h.patch 3be240b78d2371728280ffb15191573c969b304ed784883b79c662ff73c2bc43 clang-0002-fix-unwind-header.patch 78449c4f7c9fdfaccef3b68039c69e7e041fb34862d39c803d7e6fac17f659aa clang-0003-add-alpine-linux-distro.patch 501ab6e3fb99c9ffb82329475051a633797bf824c0dea437843266f190c062a0 clang-0004-alpine-use-z-relro.patch 1c4dbd1d474bf08de5979d6f4399aeba29de9ba8950aa0688d081d82e552d7d3 clang-0005-alpine-hash-style-gnu.patch b62205ddb4b76470ba433c69ecb20d1be41963d1f826b8a6937cc024d8159268 clang-0006-musl-alpine-triple.patch 44667890d5fa1816ca6cb33e63b49c5e9cfcb8265cdae513b2d0bd0916726766 clang-0007-musl-dynamic-linker-paths.patch 39c275490e3360d50fe339406992616fad0fa9127204c9b93578ee2403ae850c clang-0008-alpine-PIE-by-default.patch ec0c2014d455040499f599dc3d690fb92e54baf6058605be5f25c2c845629cfe clang-0009-pass-host-triple-to-compiler-rt.patch a34aca360fa52231b6c8663ee8b1103492f1c2600a08cc670616ce97d14e0ba9 clang-0010-alpine-use-z-now.patch e8056b8fbf7dc0abc0c966c43642ffd72878453b04fa94c18bc7d92ee3e405f4 clang-0011-alpine-SSP-by-default.patch f60dc158bfda6822de167e87275848969f0558b3134892ff54fced87e4667b94 llvm-3.6.2.src.tar.xz ae9180466a23acb426d12444d866b266ff2289b266064d362462e44f8d4699f3 cfe-3.6.2.src.tar.xz 6a0ec627d398f501ddf347060f7a2ccea4802b2494f1d4fd7bda3e0442d04feb clang-tools-extra-3.6.2.src.tar.xz 0f2ff37d80a64575fecd8cf0d5c50f7ac1f837ddf700d1855412bb7547431d87 compiler-rt-3.6.2.src.tar.xz f2a956730b76212f22a1c10f35f195795e4d027ad28c226f97ddb8c0fd16bcbc polly-3.6.2.src.tar.xz" sha512sums="b3c0e0f74680e9b2d02f1c923a191ef5eb913be84105e4d63aae6a88b1dac758467cecad3430496a7945cebdc73ec5ee1f643dc5dc7b336fee920e3c8b6d54d2 llvm-0001-fix-shared-build.patch 49203df74402b2e080fafb99a4df54d1822dbd3e4e018c44f2b41c95fcfa01b14c8c505405fd1c8909eac5effd36c60decdc771b4db9a16faf5f980af75c7551 llvm-0002-musl-triple.patch df8959d43af48054bc35e4125f98e5dab1e1b5beaf7b67e95791caf144efec06764bd31a9eb5efc2179932591de8b862ebf89592d131e47070c89f19412979b7 llvm-0003-musl-hacks.patch f1e6d17f4cc618b6a1edba64bda652f210d3c839bd8d2d4eff81af0895176062dab1e8fa963d0fe2403311863aee083d257bdb57ad9b44e23a958286a0d2e12b compiler-rt-0001-musl-no-dlvsym.patch 45f64cd5863238b7f7ad2f4a3733455e17eb3ab3121ba3404404f312beb91bb4d109c7c3278f77fc78730086e70cfe6532e159efef30e34af0132ca44a965220 compiler-rt-0002-musl-no-sanitizers.patch effed16bed6160c1629c72960424afed87f8c1c1290bf4eccd43da5a1fcb5b350242c01fcc1cc7355b420f5ac80231ea7a33ca71cafad884ea4c756cbdfbdd59 compiler-rt-0003-off_t.patch 6ad0a3409eb9c9bd43115c696f2894b683e4659b16b7ce29c7d88c35b3f585c10870c9df224a63fa14ff78810ee829b88a60dbf426f5b36084dfce7541a0cc00 clang-0001-fix-stdint.h.patch 0e3c9fbc70a12986e0531c9c642f9fff97d9d7617fd33ee69ac81d283ee14e86b6de435f1b51478a9c304f787c1b21ebc804d39a57a1ebeedce7308362d93614 clang-0002-fix-unwind-header.patch 0b8108c96948a1704275a93f3b872572fe2c61a0cd3e7f4caf63c0ca262cc079e2424b70f41d20f4a9aebe30333e39e3c594b4240fd41f7bd9a6682e751a23d9 clang-0003-add-alpine-linux-distro.patch ac72ea29d6f889f2b54915b97d56bc388e849da2f524b872241053fa6bb9dde4eb6b1333813070e3671115121da34c22ff1e87aa19ce82a393166143b30c7de4 clang-0004-alpine-use-z-relro.patch 0594cc85b6cf0be66e747eb7ba6af5aff401d65b4072f3da4a3e531795965f72df5a3850c7abbbe4e1fde3dc6ad583ecfc4a77429531bae02143b5ca36bed37e clang-0005-alpine-hash-style-gnu.patch 0c87ff437bebc9dda188a710a6c32a6e7288692ff862556bb53f5e61b0ef6aa6bba74b9a9302808df6bfe1afaa41489203f45779c627c09e46ebffd1627eff3f clang-0006-musl-alpine-triple.patch d23c9fb922312229d333091122ca65d94a4595af651657d8cca5a57c5804642897947702567c213027b02c98204cac9b92fee4a3e9e514bd7c539902e84462f4 clang-0007-musl-dynamic-linker-paths.patch 2a217800aefbce07017b793a8c91e174dac20546343de47749b4b07b4905db9a55411ef45e482b8df93cb4dbbdf25415202c3257be36ae095a6f2de11935f80b clang-0008-alpine-PIE-by-default.patch 7628c1b12febb27d0a9ecb846205edec61044fbb963ba5e588863652bccbb05d1436febf8840ff4b47dfb326689bb142464be59a18b17bd5d30aa03bb7e76a9f clang-0009-pass-host-triple-to-compiler-rt.patch 1bec07a11885b4e1b692a1df1ca2de8075016619b4086d9114553386e4de5956fbc7da5e234075f08eb635df8c01ebf51c9e2fc33aa483f02050eddbe66e38d2 clang-0010-alpine-use-z-now.patch 23940138bf5208719ce38660d9f1a1fcf498a249243951c7e02c947780444228494a1f68380dc609093a3358273fd3d520f0b61ffe198bfccbec1de6aabd7670 clang-0011-alpine-SSP-by-default.patch 42b44ce69cfb96e2dc12dc2246f0de8ff983a99741206e2c46ccf074b3248aaab9c0f22c6baad802de851d06f202f40db9dd62fe38aab4479b3f70026c936b36 llvm-3.6.2.src.tar.xz ed837c48f38d8998efd675b56477c8681dcedfcf3f71bba65930f145501289bebb6fe6a6d9de336548f94c381d016b99f10c58e046b885449755d44ac782de03 cfe-3.6.2.src.tar.xz 1b7710a7deee30cefb6a3b4edb026a96d8935a0c6f3056ccdb7a45564d10baf01a4f6722ae853ad9a3bad17e8de32a3c0ec99c5cf6144647a5e182809d403f7a clang-tools-extra-3.6.2.src.tar.xz 7dafcc5bd4822475de649d8a84ae51af3c4ed4d0958f76b1b55ba79219638f3e78eb94a1986c6e9ba0e7f1ccf3ec834d546b5ca60e8b08083fea5880ecdf17a3 compiler-rt-3.6.2.src.tar.xz c3b0ce2179fb441dd1b4c99e801a15bcb205e7156ab22c181e6c4f15abaeec7797ef2ce4b8f41ffd31dd90b224290a15e5d94aaf992fb88fe8444cdb55c24ce1 polly-3.6.2.src.tar.xz"