From ff14bb608fe9ccd1c41ad4347c82df1dcdbc125f Mon Sep 17 00:00:00 2001 From: Jeremy Drake Date: Fri, 23 Apr 2021 17:03:44 -0700 Subject: [PATCH 1/3] clang: enable building sanitiziers. Only for x86, and only on clangprefix --- mingw-w64-clang/PKGBUILD | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 4cc4716d01..33d3cd76e2 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -317,11 +317,13 @@ build() { ;& # fall-through i?86) export ASM_COMPILER="${MINGW_PREFIX}/bin/uasm.exe" - platform_config+=(-DCMAKE_ASM_MASM_COMPILER="${ASM_COMPILER}") + platform_config+=(-DCMAKE_ASM_MASM_COMPILER="${ASM_COMPILER}" + -DCOMPILER_RT_BUILD_SANITIZERS=$( (( _clangprefix )) && echo "ON" || echo "OFF")) _projects+=";openmp" ;; armv7|aarch64) platform_config+=(-DCOMPILER_RT_BUILD_MEMPROF=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF -DCOMPILER_RT_BUILD_XRAY=OFF) ;; esac @@ -331,7 +333,6 @@ build() { -G"$_generator" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib \ - -DCOMPILER_RT_BUILD_SANITIZERS=OFF \ -DFFI_INCLUDE_DIR="${FFI_INCLUDE_DIR}" \ -DLIBCLANG_BUILD_STATIC=ON \ -DLIBOMP_FORTRAN_MODULES=$( (( _clangprefix )) && echo "OFF" || echo "ON" ) \ @@ -516,6 +517,11 @@ package_compiler-rt() { cd "${srcdir}"/compiler-rt ${_make_cmd} -C ../build-${CARCH}/projects/compiler-rt DESTDIR="${pkgdir}" install + mkdir -p "${pkgdir}${MINGW_PREFIX}/bin/" + find "${pkgdir}${MINGW_PREFIX}/lib/clang/${pkgver}/lib/windows/" \ + -name '*.dll' -exec mv '{}' "${pkgdir}${MINGW_PREFIX}/bin/" \; + # remove bin dir we created if it is still empty + rmdir "${pkgdir}${MINGW_PREFIX}/bin/" 2>/dev/null || true } package_libc++() { From bc52c672caca8251b65657fedefcf60874554aeb Mon Sep 17 00:00:00 2001 From: Jeremy Drake Date: Sat, 24 Apr 2021 16:53:16 -0700 Subject: [PATCH 2/3] clang: enable --large-address-aware on 32-bit lld needs as much address space as it can get. --- mingw-w64-clang/PKGBUILD | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 33d3cd76e2..da114155b9 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -274,6 +274,13 @@ build() { [[ -d build-${CARCH} ]] && rm -rf build-${CARCH} mkdir build-${CARCH} && cd build-${CARCH} + case "${CARCH}" in + i?86|armv7) + # lld needs all the address space it can get. + LDFLAGS+=" -Wl,--large-address-aware" + ;; + esac + local -a extra_config if check_option "debug" "y"; then From 8cabc21e7b3cfd76872e4dd9392a920f07e2cc74 Mon Sep 17 00:00:00 2001 From: Jeremy Drake Date: Mon, 26 Apr 2021 10:13:41 -0700 Subject: [PATCH 3/3] clang: bump pkgrel --- mingw-w64-clang/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index da114155b9..1184b034d6 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -38,7 +38,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-openmp") "${MINGW_PACKAGE_PREFIX}-polly") pkgver=11.0.0 -pkgrel=10 +pkgrel=11 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')