From 1992d9c6af4e6a349a7f2d2e312585e79739ff55 Mon Sep 17 00:00:00 2001 From: Frederik Carlier Date: Thu, 4 Jan 2024 23:14:21 +0100 Subject: [PATCH] Build clang with Objective-C patches --- mingw-w64-clang/PKGBUILD | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 64385d7998..561a0e0f84 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -7,6 +7,8 @@ # Contributor: Oscar Fuentes # Contributor: Adrian Pop +objc_type_encoding_commit_id="c65ae76326040369bcd3a85678ab76e402140036" + if [[ $MINGW_PACKAGE_PREFIX == *-clang-* ]]; then _clangprefix=1 _compiler=clang @@ -32,7 +34,7 @@ _version=17.0.6 _rc= _tag=llvmorg-${_version}${_rc} pkgver=${_version}${_rc/-/} -pkgrel=6 +pkgrel=7 pkgdesc="C language family frontend for LLVM (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') @@ -70,6 +72,12 @@ source=("${_url}/llvm-${pkgver}.src.tar.xz"{,.sig} "0101-link-pthread-with-mingw.patch" "0102-Rename-flang-new-flang-experimental-exec-to-flang.patch" "0303-ignore-new-bfd-options.patch" + # Objective C: Use C++ mode unconditionally on MinGW + https://github.com/qmfrederik/llvm-project/commit/1d5106d69cf475215887c42834158d710e586f1b.patch + # Objective C: Mark instance variable offsets with DllExport/DllImport when targetting COFF + https://github.com/llvm/llvm-project/commit/b81ba52e15d95c3353489d4ce2f61c3771714c28.patch + # Objective C: Work around type encodings which include '=' causing lld to fail + https://github.com/llvm/llvm-project/commit/${objc_type_encoding_commit_id}.patch https://github.com/llvm/llvm-project/commit/10b78cc8cea65e7e77d227af4027963f39402724.patch https://github.com/llvm/llvm-project/commit/1709e8c656de69f6d823a3ae6773bf815e373909.patch https://github.com/llvm/llvm-project/commit/9e3d915d8ebf86e24c9ff58766be8e7c6aa7b0c0.patch) @@ -100,6 +108,9 @@ sha256sums=('b638167da139126ca11917b6880207cc6e8f9d1cbb1a48d87d017f697ef78188' '715cb8862753854b2d9256e0b70003e2d1f57083d83eaeaf5a095fc72b8a4e26' '2770cadf8ccf6b31aece6aee8f76dceb71e6e9d01fdf3be74c3743480ce34899' 'de631ab199a6fe83b3f695350bffaad067a2f95fc2ba9c8fe57dc85665d3653c' + 'b6095ce7fa2d0afa4135d6fc4375d4ca4b9f39ac27378d05ea76cf6dfd6676f1' + 'b23427a58ddf2f8fd16605ab9cc89d1233a409ee0a208f6d8d1a34204f716426' + 'SKIP' '88c4994341b4de2a23929e31a98031cb94b6d42575f9d8fd6e120f61ae0c5747' '0f3dcb8b2d5f90f8ff2e77896d3b0ef6c87af8214e679917898e35dd678daef5' 'e745aa71c903445c86639507256a5ca775e69b569b58f2ff48d6047703cfc81a') @@ -141,6 +152,12 @@ prepare() { "1709e8c656de69f6d823a3ae6773bf815e373909.patch" \ "9e3d915d8ebf86e24c9ff58766be8e7c6aa7b0c0.patch" + # Objective C patches + apply_patch_with_msg \ + "1d5106d69cf475215887c42834158d710e586f1b.patch" \ + "b81ba52e15d95c3353489d4ce2f61c3771714c28.patch" \ + "${objc_type_encoding_commit_id}.patch" + # Patch llvm cd "${srcdir}/llvm" apply_patch_with_msg \