From 2af577d710d6c513f0aae128d28efcc5cb60a68e Mon Sep 17 00:00:00 2001 From: "U-DESKTOP-F30HBOP\\user" Date: Sat, 3 Jun 2017 07:27:37 +0200 Subject: [PATCH] clang: add polly --- ...008-fix-bugpoint-multiple-definition.patch | 9 ++++ mingw-w64-clang/PKGBUILD | 46 ++++++++++++++----- 2 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 mingw-w64-clang/0008-fix-bugpoint-multiple-definition.patch diff --git a/mingw-w64-clang/0008-fix-bugpoint-multiple-definition.patch b/mingw-w64-clang/0008-fix-bugpoint-multiple-definition.patch new file mode 100644 index 0000000000..879684eee6 --- /dev/null +++ b/mingw-w64-clang/0008-fix-bugpoint-multiple-definition.patch @@ -0,0 +1,9 @@ +--- llvm-4.0.0.src/tools/bugpoint/CMakeLists.txt ++++ llvm-4.0.0.src/tools/bugpoint/CMakeLists.txt +@@ -37,6 +37,4 @@ + + if(WITH_POLLY AND LINK_POLLY_INTO_TOOLS) + target_link_libraries(bugpoint Polly) +- # Ensure LLVMTarget can resolve dependences in Polly. +- target_link_libraries(bugpoint LLVMTarget) + endif(WITH_POLLY AND LINK_POLLY_INTO_TOOLS) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index a0976621fc..553cf8dd86 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -2,9 +2,10 @@ # Maintainer: Alexey Pavlov # Contributor: Ray Donnelly # Contributor: Mateusz MikuĊ‚a +# Contributor: wirx6 # choose the compiler that will be used to build clang -# clang cannot build clang 64 bit due to mingw-w64 headers bugs; 32 bit clang is fine +# clang is fine but there are problems with libcxxabi _compiler=gcc # clang, gcc _realname=clang @@ -18,14 +19,15 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-lld" "${MINGW_PACKAGE_PREFIX}-libunwind" "${MINGW_PACKAGE_PREFIX}-llvm" - "${MINGW_PACKAGE_PREFIX}-lldb") + "${MINGW_PACKAGE_PREFIX}-lldb" + "${MINGW_PACKAGE_PREFIX}-polly") pkgver=4.0.0 pkgrel=1 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake>=3.4.3" $([[ "$_compiler" == "clang" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-clang") "${MINGW_PACKAGE_PREFIX}-libffi" @@ -46,6 +48,7 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/lld-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/lldb-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/libunwind-${pkgver}.src.tar.xz{,.sig} + http://llvm.org/releases/${pkgver}/polly-${pkgver}.src.tar.xz{,.sig} "0001-genlib-named-as-llvm-dlltool.patch" "0002-mingw-w64-use-MSVC-style-ByteAlignment.patch" "0003-Fix-GetHostTriple-for-mingw-w64-in-msys.patch" @@ -53,6 +56,7 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} "0005-not-install-msvc-files.patch" "0006-llvm-config-look-for-unversioned-shared-lib-on-win32.patch" "0007-add-pthread-as-system-lib-for-mingw.patch" + "0008-fix-bugpoint-multiple-definition.patch" "0101-mingw-w64-enable-support-for-__declspec-selectany.patch" "0102-Allow-build-static-clang-library-for-mingw.patch" "0103-fix-libclang-name-for-mingw.patch" @@ -100,6 +104,8 @@ sha256sums=('8d10511df96e73b8ff9e7abbfb4d4d432edbdbe965f1f4f07afaf370b8a533be' 'SKIP' '0755efa9f969373d4d543123bbed4b3f9a835f6302875c1379c5745857725973' 'SKIP' + '27a5dbf95e8aa9e0bbe3d6c5d1e83c92414d734357aa0d6c16020a65dc4dcd97' + 'SKIP' '3f55d2114805110e370fab6630763c359d83b07c356f61b86afc32feb7cf7514' '78b6951956360a8e05fdc7020bc7e1996da75b499022f9213465070fc238529c' 'aceffb61d57c7c01bc2d9d5461f961df26cffdffaaabb8dda9f219acfe59c77a' @@ -107,6 +113,7 @@ sha256sums=('8d10511df96e73b8ff9e7abbfb4d4d432edbdbe965f1f4f07afaf370b8a533be' 'c840f4e2286385c4ab3503c02976fd2459516fdc05e44f702d648afaaaebd97f' 'f06f57af203811f6a4c62ac3f1e4545628db13185f5e7d3225d4b1104ca69be1' 'c57d5f2904158b992378906bcddbae79d0566cdb07cc74fbd9b2d76d52661a12' + '5d1fbbe39221af57ae078e5387f43fec602541838b3608cd3f6517bb2364ae54' 'afdd708e2431874da4e03d9f51848840ec30ef64b4d440c8dfd50446b2f5ce1a' '8ba3968939f9a7c6a51849aaf1ab6126f85aa612349570b3644f855929d496fc' '1740ffa1d23fdee2b147a46cfed4d186bf7d3dc626bb3a1d3ca925147895a2d4' @@ -162,6 +169,7 @@ prepare() { patch -p1 -i "${srcdir}/0005-not-install-msvc-files.patch" patch -p1 -i "${srcdir}/0006-llvm-config-look-for-unversioned-shared-lib-on-win32.patch" patch -p1 -i "${srcdir}/0007-add-pthread-as-system-lib-for-mingw.patch" + patch -p1 -i "${srcdir}/0008-fix-bugpoint-multiple-definition.patch" cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i "${srcdir}/0101-mingw-w64-enable-support-for-__declspec-selectany.patch" @@ -202,12 +210,13 @@ prepare() { # See http://llvm.org/bugs/show_bug.cgi?id=4840 cd "${srcdir}"/llvm-${pkgver}.src - rm -rf tools/clang tools/clang/tools/extra tools/lld tools/lldb projects/compiler-rt projects/libcxx \ + rm -rf tools/clang tools/clang/tools/extra tools/lld tools/lldb tools/polly projects/compiler-rt projects/libcxx \ projects/libcxxabi projects/libunwind projects/test-suite | true mv "${srcdir}/cfe-${pkgver}.src" tools/clang mv "${srcdir}/clang-tools-extra-${pkgver}.src" tools/clang/tools/extra mv "${srcdir}/lld-${pkgver}.src" tools/lld mv "${srcdir}/lldb-${pkgver}.src" tools/lldb + mv "${srcdir}/polly-${pkgver}.src" tools/polly mv "${srcdir}/compiler-rt-${pkgver}.src" projects/compiler-rt mv "${srcdir}/libcxxabi-${pkgver}.src" projects/libcxxabi mv "${srcdir}/libcxx-${pkgver}.src" projects/libcxx @@ -257,17 +266,16 @@ build() { -DCMAKE_MAKE_PROGRAM="/usr/bin/make.exe" \ -DFFI_INCLUDE_DIR="${FFI_INCLUDE_DIR}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS} ${CPPFLAGS}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS} -D_GNU_SOURCE" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DLLVM_TARGETS_TO_BUILD="ARM;X86" \ -DLLVM_ENABLE_ASSERTIONS=OFF \ - -DLLVM_ENABLE_THREADS=1 \ + -DLLVM_ENABLE_THREADS=ON \ -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DLLVM_BUILD_LLVM_DYLIB=ON \ -DLLVM_LINK_LLVM_DYLIB=ON \ - -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE" \ -DLIBCLANG_BUILD_STATIC=ON \ -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ @@ -281,7 +289,7 @@ build() { # Disable automatic installation of components that go into subpackages # -i.orig to check what has been removed in-case it starts dropping more than it should # - sed -i.orig '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake + sed -i.orig '/\(clang\|lld\|lldb\|polly\)\/cmake_install.cmake/d' tools/cmake_install.cmake sed -i.orig '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake # sed -i.orig '/\(compiler-rt\|libcxxabi\|libcxx\)\/cmake_install.cmake/d' projects/cmake_install.cmake sed -i.orig '/\(compiler-rt\|libcxxabi\|libcxx\|libunwind\)\/cmake_install.cmake/d' projects/cmake_install.cmake @@ -295,7 +303,8 @@ build() { package_llvm() { pkgdesc="Low Level Virtual Machine (mingw-w64)" - depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") # "compiler-rt" + depends=("${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-gcc-libs") # "compiler-rt" cd "${srcdir}"/llvm-${pkgver}.src @@ -322,7 +331,7 @@ package_compiler-rt() { cd "${srcdir}"/llvm-${pkgver}.src make -C ../build-${CARCH}/projects/compiler-rt DESTDIR="${pkgdir}" install - } +} package_libcxxabi() { pkgdesc="C++ Standard Library Support (mingw-w64)" @@ -416,6 +425,15 @@ package_clang-tools-extra() { make -C ../build-${CARCH}/tools/clang/tools/extra -j1 DESTDIR="${pkgdir}" install } +package_polly() { + pkgdesc="Polly - Polyhedral optimizations for LLVM (mingw-w64)" + url="http://polly.llvm.org/" + depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}") + + cd "${srcdir}"/llvm-${pkgver}.src + make -C ../build-${CARCH}/tools/polly DESTDIR="${pkgdir}" install +} + # Wrappers package_mingw-w64-i686-clang(){ package_clang @@ -457,6 +475,10 @@ package_mingw-w64-i686-llvm(){ package_llvm } +package_mingw-w64-i686-polly(){ + package_polly +} + package_mingw-w64-x86_64-clang(){ package_clang } @@ -497,4 +519,6 @@ package_mingw-w64-x86_64-llvm(){ package_llvm } -# vim:set ts=2 sw=2 et: +package_mingw-w64-x86_64-polly(){ + package_polly +}