From 8d30fb028b829dcd153ac1af891bdfbc78eca14e Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Thu, 7 Jun 2018 07:49:12 +0300 Subject: [PATCH] clang: Fixes for new z3 package. Link with -mbig-obj everything --- mingw-w64-clang/0010-mbig-obj-for-all.patch | 13 +++++++++ mingw-w64-clang/0107-z3-fixes.patch | 18 ++++++++++++ mingw-w64-clang/PKGBUILD | 31 ++++++++++++--------- 3 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 mingw-w64-clang/0010-mbig-obj-for-all.patch create mode 100644 mingw-w64-clang/0107-z3-fixes.patch diff --git a/mingw-w64-clang/0010-mbig-obj-for-all.patch b/mingw-w64-clang/0010-mbig-obj-for-all.patch new file mode 100644 index 0000000000..e19e3bb3b5 --- /dev/null +++ b/mingw-w64-clang/0010-mbig-obj-for-all.patch @@ -0,0 +1,13 @@ +--- llvm-6.0.0.src/cmake/modules/HandleLLVMOptions.cmake.orig 2018-06-06 14:33:51.928460200 +0300 ++++ llvm-6.0.0.src/cmake/modules/HandleLLVMOptions.cmake 2018-06-06 14:33:59.840471400 +0300 +@@ -312,9 +312,7 @@ + # Pass -mbig-obj to mingw gas on Win64. COFF has a 2**16 section limit, and + # on Win64, every COMDAT function creates at least 3 sections: .text, .pdata, + # and .xdata. +- if (CMAKE_SIZEOF_VOID_P EQUAL 8) +- append("-Wa,-mbig-obj" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) +- endif() ++ append("-Wa,-mbig-obj" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + endif() + + if( MSVC ) diff --git a/mingw-w64-clang/0107-z3-fixes.patch b/mingw-w64-clang/0107-z3-fixes.patch new file mode 100644 index 0000000000..60e7b2bd77 --- /dev/null +++ b/mingw-w64-clang/0107-z3-fixes.patch @@ -0,0 +1,18 @@ +--- clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp.orig 2018-06-06 13:29:57.070228300 +0300 ++++ clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp 2018-06-06 13:31:19.912344400 +0300 +@@ -679,13 +679,13 @@ + // type, which isn't compatible with a unsigned long type, even if they + // are the same size. + Z3_get_numeral_uint64(Z3Context::ZC, AST, +- reinterpret_cast<__uint64 *>(&Value[0])); ++ &Value[0]); + if (Sort.getBitvectorSortSize() <= 64) { + Int = llvm::APSInt(llvm::APInt(Int.getBitWidth(), Value[0]), true); + } else if (Sort.getBitvectorSortSize() == 128) { + Z3Expr ASTHigh = Z3Expr(Z3_mk_extract(Z3Context::ZC, 127, 64, AST)); + Z3_get_numeral_uint64(Z3Context::ZC, AST, +- reinterpret_cast<__uint64 *>(&Value[1])); ++ &Value[1]); + Int = llvm::APSInt(llvm::APInt(Int.getBitWidth(), Value), true); + } else { + assert(false && "Bitwidth not supported!"); diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index f25827c955..f536338ca2 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -38,7 +38,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake>=3.4.3" "tar" "groff") depends=("${MINGW_PACKAGE_PREFIX}-gcc") -#options=('debug' '!strip') +options=('!debug' 'strip') source=(https://releases.llvm.org/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} https://releases.llvm.org/${pkgver}/cfe-${pkgver}.src.tar.xz{,.sig} https://releases.llvm.org/${pkgver}/compiler-rt-${pkgver}.src.tar.xz{,.sig} @@ -60,12 +60,14 @@ source=(https://releases.llvm.org/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} "0007-getLoadAddressWithOffset-assertion.patch" "0008-unmangled-getSymbolAddressInProcess.patch" "0009-empty-target-prefix-only-msvc.patch" + "0010-mbig-obj-for-all.patch" "0101-Allow-build-static-clang-library-for-mingw.patch" "0102-fix-libclang-name-for-mingw.patch" "0103-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch" "0104-link-pthread-with-mingw.patch" "0105-use-emulated-tls-with-mingw.patch" "0106-MinGW-use-flto-visibility-public-std-CC1-arg-to-get-.patch" + "0107-z3-fixes.patch" "0201-mingw-w64-__udivdi3-mangle-hack.patch" "0401-mingw-w64-hack-and-slash-fixes-for-libc.patch" "0402-D40181.patch" @@ -118,12 +120,14 @@ sha256sums=('1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408' '1887ea21fcd591a50dd10559774e872ce1183177e672b028133d9b669e3cac32' '8fd8556f7b4f3adaabd5540f500bae1c3dc0daa7a23880c62860ed347c76b188' '33400d16d5f6671a8fd60345c3ae44b9777a7d600061957889d14305eb2ad709' + '1c9efccd40a0e7834c3aa9d819aa25cfdd2cec389d1bd3e8a89bc9ff670a0129' 'f2b0403e6b6cafddf364a90a6bb1e57793fd98d6f80f8976a87574cd93eb1d1a' 'b1ed2ccdb87bb4f024a5cd750e71de3706fd24ccfeb87835403dab84ef7a9019' 'ab49b90d69a609f441fa58e835873f2b1a8a060c9ca6358fee7d99c1973da692' '53646dd01af2862473e9719c5223366486268891ccbff86413943a432a8342e9' '7b85221a5d8506abc622dc8f252866c93183ccd7e44d5e1bc082d6fcb244e7d3' '3d6045cf35d5523c68baf87bd490007d4ac8fe3eabcbc23d8c66e80ff1c234e7' + 'adbdc2edb31b4e3ff8be6f721f8052006420b819035f381f21475aab665a5c56' 'bafaf7d06bec3ed7fba58e8a926e7b472b5e16442b6ee9dd8c7ee6c0cce9792a' 'da44cca549bc7fb9e04f0f038a1ed68ba99cdfec834fc241ab13880bd0aa3b0f' '5e215239b99de4687b2ac133f5044bd9478e87b316df517dcc572ba67f9731d2' @@ -161,6 +165,7 @@ prepare() { patch -p1 -i "${srcdir}/0004-llvm-config-look-for-unversioned-shared-lib-on-win32.patch" patch -p1 -i "${srcdir}/0005-add-pthread-as-system-lib-for-mingw.patch" patch -p1 -i "${srcdir}/0009-empty-target-prefix-only-msvc.patch" + patch -p1 -i "${srcdir}/0010-mbig-obj-for-all.patch" # https://bugs.llvm.org/show_bug.cgi?id=25493 patch -p1 -i "${srcdir}/0006-add-coff-exported-flag.patch" @@ -178,6 +183,7 @@ prepare() { patch -p1 -i "${srcdir}/0104-link-pthread-with-mingw.patch" patch -p1 -i "${srcdir}/0105-use-emulated-tls-with-mingw.patch" patch -p1 -i "${srcdir}/0106-MinGW-use-flto-visibility-public-std-CC1-arg-to-get-.patch" + patch -p1 -i "${srcdir}/0107-z3-fixes.patch" cd "${srcdir}/compiler-rt-${pkgver}.src" patch -p1 -i "${srcdir}/0201-mingw-w64-__udivdi3-mangle-hack.patch" @@ -266,29 +272,28 @@ build() { -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS} -D_GNU_SOURCE" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DLLVM_TARGETS_TO_BUILD="ARM;NVPTX;X86" \ - -DLLVM_ENABLE_ASSERTIONS=OFF \ - -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=OFF \ + -DCLANG_ANALYZER_BUILD_Z3=ON \ -DLIBCLANG_BUILD_STATIC=ON \ -DLIBCXX_ENABLE_SHARED=OFF \ + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ -DLIBUNWIND_ENABLE_SHARED=OFF \ - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \ + -DLLVM_TARGETS_TO_BUILD="ARM;NVPTX;X86" \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_FFI=ON \ + -DLLVM_ENABLE_THREADS=ON \ + -DLLVM_ENABLE_SPHINX=ON \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_BUILD_STATIC=OFF \ + -DLLVM_LINK_LLVM_DYLIB=OFF \ -DLLVM_POLLY_LINK_INTO_TOOLS=OFF \ - -DCLANG_ANALYZER_BUILD_Z3=ON \ -DLLDB_RELOCATABLE_PYTHON=ON \ -DLLDB_USE_SYSTEM_SIX=ON \ -DLLDB_DISABLE_PYTHON=ON \ + -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \ "${extra_config[@]}" \ ../llvm-${pkgver}.src - #-DLLVM_BUILD_STATIC=ON - make ${VERBOSE} # Disable automatic installation of components that go into subpackages