From 9d0e2519cb59e5939b74ccd39ae4849c687a90dd Mon Sep 17 00:00:00 2001 From: Helge Konetzka <80620732+heljkon@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:00:57 +0100 Subject: [PATCH 1/7] capstone: enable clangarm64 Co-authored-by: jeremyd2019 --- mingw-w64-capstone/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-capstone/PKGBUILD b/mingw-w64-capstone/PKGBUILD index 3eef69f867..d226aff2c6 100644 --- a/mingw-w64-capstone/PKGBUILD +++ b/mingw-w64-capstone/PKGBUILD @@ -10,7 +10,7 @@ pkgrel=3 pkgdesc='Lightweight multi-platform, multi-architecture disassembly framework' url='https://www.capstone-engine.org/index.html' arch=('any') -mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') +mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" From 6b411749583023486d3138e8742e7088d76db6c5 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Thu, 12 Jan 2023 00:41:21 +0530 Subject: [PATCH 2/7] gn: Add arm64 platform detection --- mingw-w64-gn/004-add-arm64-arch.patch | 13 +++++++++++++ mingw-w64-gn/PKGBUILD | 11 +++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-gn/004-add-arm64-arch.patch diff --git a/mingw-w64-gn/004-add-arm64-arch.patch b/mingw-w64-gn/004-add-arm64-arch.patch new file mode 100644 index 0000000000..bd2f915f67 --- /dev/null +++ b/mingw-w64-gn/004-add-arm64-arch.patch @@ -0,0 +1,13 @@ +diff --git a/src/util/sys_info.cc b/src/util/sys_info.cc +index c8dc590a..2cc624f0 100644 +--- a/src/util/sys_info.cc ++++ b/src/util/sys_info.cc +@@ -44,6 +44,8 @@ std::string OperatingSystemArchitecture() { + SYSTEM_INFO system_info = {}; + ::GetNativeSystemInfo(&system_info); + switch (system_info.wProcessorArchitecture) { ++ case PROCESSOR_ARCHITECTURE_ARM64: ++ return "arm64"; + case PROCESSOR_ARCHITECTURE_INTEL: + return "x86"; + case PROCESSOR_ARCHITECTURE_AMD64: diff --git a/mingw-w64-gn/PKGBUILD b/mingw-w64-gn/PKGBUILD index 2f74719c60..8519c42fab 100644 --- a/mingw-w64-gn/PKGBUILD +++ b/mingw-w64-gn/PKGBUILD @@ -4,7 +4,7 @@ _realname=gn pkgbase=mingw-w64-${_realname} pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=0.2073.70d6c608 -pkgrel=2 +pkgrel=3 pkgdesc='Meta-build system that generates build files for Ninja (mingw-w64)' arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') @@ -19,11 +19,13 @@ _commit=70d6c60823c0233a0f35eccc25b2b640d2980bdc source=(git+https://gn.googlesource.com/gn#commit=$_commit 001-build-fixes.patch 002-add-missing-header.patch - 003-remove-msvc-flags.patch) + 003-remove-msvc-flags.patch + 004-add-arm64-arch.patch) sha256sums=('SKIP' 'ad74a5b70eae85a380e040f41c529b3684625094dbf7367d997a15294a6355dd' 'd41ea264f389a34b3030ab5fb39107475a0e913123802dee241a20e1e5ecb1a5' - '5aec933502008cbe9baabcf57e7899e8153e29c1dea646a52ac71b8eb9306801') + '5aec933502008cbe9baabcf57e7899e8153e29c1dea646a52ac71b8eb9306801' + 'f2b66b481336de86b237b5d6062784323e6f359313a8063a9d670d9356e742d6') # Helper macros to help make tasks easier # apply_patch_with_msg() { @@ -44,7 +46,8 @@ prepare() { apply_patch_with_msg \ 001-build-fixes.patch \ 002-add-missing-header.patch \ - 003-remove-msvc-flags.patch + 003-remove-msvc-flags.patch \ + 004-add-arm64-arch.patch } build() { From 75419f87e5e2b2d1d02919ddf4641d8469d94bcb Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Thu, 12 Jan 2023 01:07:46 +0530 Subject: [PATCH 3/7] angle: Enable clangarm64 * Define ANGLE_PLATFORM_WINDOWS instead of _WIN32. * Add arm64 target for mingw toolchain gn file. * Use -msse3 flag for x86 and x86_64 only. --- .../001-add-mingw-toolchain.patch | 11 ++++++-- .../003-angle-src-fixes.patch | 28 +++++++++---------- mingw-w64-angleproject/PKGBUILD | 12 ++++---- 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/mingw-w64-angleproject/001-add-mingw-toolchain.patch b/mingw-w64-angleproject/001-add-mingw-toolchain.patch index 85307941c0..c4d1fd4c17 100644 --- a/mingw-w64-angleproject/001-add-mingw-toolchain.patch +++ b/mingw-w64-angleproject/001-add-mingw-toolchain.patch @@ -800,12 +800,14 @@ index a5075393b..bc8f4e2c6 100644 if (current_cpu == "x86") { asmflags = [ # When /safeseh is specified, the linker will only produce an image if it -@@ -214,6 +215,15 @@ config("compiler") { +@@ -214,6 +215,17 @@ config("compiler") { # the source file is a no-op. "/ignore:4221", ] + } else { -+ cflags = [ "-msse3" ] ++ if (current_cpu == "x86" || current_cpu == "x64") { ++ cflags = [ "-msse3" ] ++ } + if (current_cpu == "x86") { + ldflags = [ "-m32" ] + ldflags += [ "-Wl,--enable-stdcall-fixup" ] @@ -1244,7 +1246,7 @@ index 612938527..c6a9f0f33 100644 } } -@@ -87,3 +92,26 @@ if (target_os == "winuwp") { +@@ -87,3 +92,29 @@ if (target_os == "winuwp") { } } } @@ -1266,6 +1268,9 @@ index 612938527..c6a9f0f33 100644 + } +} + ++mingw_toolchain("arm64") { ++} ++ +mingw_toolchain("x64") { +} + diff --git a/mingw-w64-angleproject/003-angle-src-fixes.patch b/mingw-w64-angleproject/003-angle-src-fixes.patch index 061c0f866f..cd0fb9afd2 100644 --- a/mingw-w64-angleproject/003-angle-src-fixes.patch +++ b/mingw-w64-angleproject/003-angle-src-fixes.patch @@ -1,27 +1,25 @@ diff --git a/src/common/mathutil.h b/src/common/mathutil.h -index 560929239..7efbd8ede 100644 +index 5609292..2338d2f 100644 --- a/src/common/mathutil.h +++ b/src/common/mathutil.h -@@ -1027,8 +1027,8 @@ inline uint32_t BitfieldReverse(uint32_t value) +@@ -1027,7 +1027,7 @@ inline uint32_t BitfieldReverse(uint32_t value) } // Count the 1 bits. -#if defined(_MSC_VER) && !defined(__clang__) --# if defined(_M_IX86) || defined(_M_X64) -+#if defined(_WIN32) && !defined(__clang__) -+# if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__x86_64__) ++#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(__clang__) + # if defined(_M_IX86) || defined(_M_X64) namespace priv { - // Check POPCNT instruction support and cache the result. -@@ -1071,7 +1071,7 @@ inline int BitCount(uint64_t bits) - { - if (priv::kHasPopcnt) - { --# if defined(_M_X64) -+# if defined(_M_X64) || defined(__x86_64__) - return static_cast(__popcnt64(bits)); - # else // x86 - return static_cast(__popcnt(static_cast(bits >> 32)) + +@@ -1104,7 +1104,7 @@ inline int BitCount(uint64_t bits) + return static_cast(vget_lane_u64(vpaddl_u32(vpaddl_u16(vpaddl_u8(vsum))), 0)); + } + # endif // defined(_M_IX86) || defined(_M_X64) +-#endif // defined(_MSC_VER) && !defined(__clang__) ++#endif // defined(ANGLE_PLATFORM_WINDOWS) && !defined(__clang__) + + #if defined(ANGLE_PLATFORM_POSIX) || defined(__clang__) + inline int BitCount(uint32_t bits) diff --git a/src/common/serializer/JsonSerializer.cpp b/src/common/serializer/JsonSerializer.cpp index 0028331d9..e675c406b 100644 --- a/src/common/serializer/JsonSerializer.cpp diff --git a/mingw-w64-angleproject/PKGBUILD b/mingw-w64-angleproject/PKGBUILD index 4bbd574daa..65eb84e1f3 100644 --- a/mingw-w64-angleproject/PKGBUILD +++ b/mingw-w64-angleproject/PKGBUILD @@ -6,10 +6,10 @@ _realname=angleproject pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.r20194.6c41793f -pkgrel=3 +pkgrel=4 pkgdesc='A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android (mingw-w64)' arch=('any') -mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') +mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') url='https://chromium.googlesource.com/angle/angle' license=('spdx:BSD-3-Clause') depends=("${MINGW_PACKAGE_PREFIX}-jsoncpp" @@ -41,9 +41,9 @@ sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '06dccfcdfe271177574572aa0601c61e1724f9b0ed939f399048323bf9e02be3' + '71f7cf9110a2a3b7fb5c4117bc4aca0629839da024c8320a1ffd4b76f893ce32' 'd73b808fe69914ee9d9934fad79389706af2c1ac280c1c0296d1046c482febad' - '0bd71b129c4c067bd73116aa21c0fb59d7a930ded6ab8b28d59aeb538b44bfd4' + 'a096c2d8bb458c372998c209fef8ebd51b65c6410ad70aed627f230f3dec7b03' 'bf878de3203a62e2a7f81bd4cd79237adc74804b4b692d9277da005ed56d4f2a' '86013781c2700219d4f64d7ac34ad16c40fcca9a641371385f67f642e23c643b' 'f0fb05348bf2de599eff35e2d35e3336b9720b6bd2799af9d186c05ff45d34f0' @@ -112,7 +112,9 @@ build() { fi local _arch=x64 - if [[ ${CARCH} == i686 ]]; then + if [[ ${CARCH} == aarch64 ]]; then + _arch=arm64 + elif [[ ${CARCH} == i686 ]]; then _arch=x86 fi From fec95f6aba8559cd8453b9ba7a1c669a99a0bed8 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Thu, 12 Jan 2023 01:36:59 +0530 Subject: [PATCH 4/7] Revert "libepoxy: no angleproject for arm64 yet" This reverts commit 11fcb64c779010c8e1263537930836bd3c48cfc4. --- mingw-w64-libepoxy/PKGBUILD | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/mingw-w64-libepoxy/PKGBUILD b/mingw-w64-libepoxy/PKGBUILD index 3579f37bf2..e1bfb513ba 100644 --- a/mingw-w64-libepoxy/PKGBUILD +++ b/mingw-w64-libepoxy/PKGBUILD @@ -4,15 +4,14 @@ _realname=libepoxy pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.5.10 -pkgrel=2 +pkgrel=3 pkgdesc="A library for handling OpenGL function pointer management for you (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') url="https://github.com/anholt/libepoxy" license=("spdx:MIT") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - $([[ "${MSYSTEM}" == "CLANGARM64" ]] || echo "${MINGW_PACKAGE_PREFIX}-angleproject") -) + "${MINGW_PACKAGE_PREFIX}-angleproject") makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-python" @@ -32,17 +31,12 @@ build() { [[ -d "${srcdir}/build-${MSYSTEM}" ]] && rm -rf "${srcdir}/build-${MSYSTEM}" mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" - local -a extra_config - if [ "${MSYSTEM}" != "CLANGARM64" ]; then - extra_config+=("-Degl=yes") - fi - MSYS2_ARG_CONV_EXCL="--prefix=" \ ${MINGW_PREFIX}/bin/meson.exe \ --prefix="${MINGW_PREFIX}" \ --buildtype plain \ -Ddefault_library=both \ - ${extra_config[@]} \ + -Degl=yes \ ../${_realname}-${pkgver} ${MINGW_PREFIX}/bin/meson.exe compile From 8d14501120af323b5be902a41a35adf44216a8dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Komar=C4=8Devi=C4=87?= <4973094+kmilos@users.noreply.github.com> Date: Thu, 12 Jan 2023 09:59:08 +0100 Subject: [PATCH 5/7] libinih: also build a static lib --- mingw-w64-libinih/PKGBUILD | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/mingw-w64-libinih/PKGBUILD b/mingw-w64-libinih/PKGBUILD index 96fdea16d0..9d45fca040 100644 --- a/mingw-w64-libinih/PKGBUILD +++ b/mingw-w64-libinih/PKGBUILD @@ -4,7 +4,7 @@ _realname=libinih pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=56 -pkgrel=1 +pkgrel=2 pkgdesc="A simple .INI file parser written in C (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') @@ -20,7 +20,23 @@ source=("https://github.com/benhoyt/inih/archive/refs/tags/r${pkgver}.tar.gz") sha256sums=('4f2ba6bd122d30281a8c7a4d5723b7af90b56aa828c0e88256d7fceda03a491a') build() { - mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM} + mkdir -p build-${MSYSTEM}-static && cd build-${MSYSTEM}-static + + MSYS2_ARG_CONV_EXCL="--prefix=" \ + meson setup \ + --prefix="${MINGW_PREFIX}" \ + --wrap-mode=nodownload \ + --auto-features=enabled \ + --buildtype=plain \ + -Ddefault_library=static \ + -Ddistro_install=true \ + -Dwith_INIReader=true \ + ../inih-r${pkgver} + + meson compile + + cd "${srcdir}" + mkdir -p build-${MSYSTEM}-shared && cd build-${MSYSTEM}-shared MSYS2_ARG_CONV_EXCL="--prefix=" \ meson setup \ @@ -37,7 +53,11 @@ build() { } package() { - cd "${srcdir}/build-${MSYSTEM}" + cd "${srcdir}/build-${MSYSTEM}-static" + + DESTDIR="${pkgdir}" meson install + + cd "${srcdir}/build-${MSYSTEM}-shared" DESTDIR="${pkgdir}" meson install From 0b1eaef5769d053588f122824fa978e73126e29b Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Fri, 13 Jan 2023 08:15:06 +0100 Subject: [PATCH 6/7] PKGMETA: map openssl to openssl-1.1 --- PKGMETA.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PKGMETA.yml b/PKGMETA.yml index 712b535b25..fe2cdda3db 100644 --- a/PKGMETA.yml +++ b/PKGMETA.yml @@ -374,3 +374,6 @@ packages: mingw-w64-texlive-lang-arabic: references: archlinux: texlive-langextra + mingw-w64-openssl: + references: + archlinux: openssl-1.1 From b2f50d540c2d6c3f2e22a4b67d229c6f960c9f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Komar=C4=8Devi=C4=87?= <4973094+kmilos@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:29:57 +0100 Subject: [PATCH 7/7] libwebp: update to 1.3.0 --- .../0001-mingw-cmake-output.patch | 25 ++++++------------- mingw-w64-libwebp/PKGBUILD | 8 +++--- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/mingw-w64-libwebp/0001-mingw-cmake-output.patch b/mingw-w64-libwebp/0001-mingw-cmake-output.patch index a890a94fa3..8fb926eb08 100644 --- a/mingw-w64-libwebp/0001-mingw-cmake-output.patch +++ b/mingw-w64-libwebp/0001-mingw-cmake-output.patch @@ -1,20 +1,11 @@ ---- libwebp-1.2.4/CMakeLists.txt.orig 2022-08-06 01:49:26.000000000 +0200 -+++ libwebp-1.2.4/CMakeLists.txt 2022-08-17 14:54:32.963092000 +0200 -@@ -138,7 +138,7 @@ - - function(configure_pkg_config FILE) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.in" -- "${CMAKE_CURRENT_BINARY_DIR}/${FILE}") -+ "${CMAKE_CURRENT_BINARY_DIR}/${FILE}" @ONLY) - - if(HAVE_MATH_LIBRARY) - # MSVC doesn't have libm -@@ -723,7 +725,7 @@ - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +--- libwebp-1.3.0/CMakeLists.txt.orig 2023-01-13 12:49:52.571844700 +0100 ++++ libwebp-1.3.0/CMakeLists.txt 2023-01-13 12:52:53.077790900 +0100 +@@ -713,7 +713,7 @@ + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -set(ConfigPackageLocation ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake/) +set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/) - install(EXPORT ${PROJECT_NAME}Targets - NAMESPACE ${PROJECT_NAME}:: + install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}:: DESTINATION ${ConfigPackageLocation}) + diff --git a/mingw-w64-libwebp/PKGBUILD b/mingw-w64-libwebp/PKGBUILD index e153a49fb8..efae4cd7df 100644 --- a/mingw-w64-libwebp/PKGBUILD +++ b/mingw-w64-libwebp/PKGBUILD @@ -4,8 +4,8 @@ _realname=libwebp pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.2.4 -pkgrel=4 +pkgver=1.3.0 +pkgrel=1 pkgdesc="A library to encode and decode images in WebP format (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') @@ -20,8 +20,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-ninja") source=(${_realname}-${pkgver}.tar.gz::https://github.com/webmproject/libwebp/archive/v${pkgver}.tar.gz 0001-mingw-cmake-output.patch) -sha256sums=('dfe7bff3390cd4958da11e760b65318f0a48c32913e4d5bc5e8d55abaaa2d32e' - '64b61bde70840ea5ad91e627d20bf6b0dbf77a33213e57f9dfa0213ca35a561b') +sha256sums=('dc9860d3fe06013266c237959e1416b71c63b36f343aae1d65ea9c94832630e1' + '30ed42b782af427f57049abada30ce6d4d62318ee13014585cb352b570c68e3d') validpgpkeys=('6B0E6B70976DE303EDF2F601F9C3D6BDB8232B5D') prepare() {