clang: Fixes for new z3 package. Link with -mbig-obj everything

This commit is contained in:
Alexey Pavlov
2018-06-07 07:49:12 +03:00
parent 2bea874921
commit 8d30fb028b
3 changed files with 49 additions and 13 deletions

View File

@@ -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 )

View File

@@ -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!");

View File

@@ -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