msys2-runtime: update (arm64 canary crash fix backport)

includes https://github.com/msys2/msys2-runtime/pull/233
This commit is contained in:
Christoph Reiter 2024-11-11 21:27:16 +01:00
parent 2c466adbbe
commit 0a5d492ea6
2 changed files with 78 additions and 4 deletions

View File

@ -0,0 +1,71 @@
From 16dfe943bcba396ac0b11c5b52cdbaeed4e03a8d Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Tue, 13 Feb 2024 16:47:51 +0100
Subject: [PATCH 41/N] Cygwin: find_fast_cwd: don't run assembler checking
code on ARM64
https://cygwin.com/pipermail/cygwin/2024-February/255397.html
reports a crash on ARM64 probably related to checking x86_64
code on the x86_64 emulator on AArch64.
At least for testing, pull the code checking the host HW
up to be called before trying to evaluate assembler code.
This fixes https://github.com/git-for-windows/git/issues/4808
Backported from 4e77fa9b8b (Cygwin: find_fast_cwd: don't run assembler
checking code on ARM64, 2024-02-13).
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
winsup/cygwin/path.cc | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index b0c45fa..f8afd4c 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -4826,29 +4826,27 @@ find_fast_cwd_pointer ()
static fcwd_access_t **
find_fast_cwd ()
{
+ USHORT emulated, hosted;
+ fcwd_access_t **f_cwd_ptr;
+
+ /* First check if we're running in WOW64 on ARM64 emulating AMD64. Skip
+ fetching FAST_CWD pointer as long as there's no solution for finding
+ it on that system. */
+ if (IsWow64Process2 (GetCurrentProcess (), &emulated, &hosted)
+ && hosted == IMAGE_FILE_MACHINE_ARM64)
+ return NULL;
+
/* Fetch the pointer but don't set the global fast_cwd_ptr yet. First
we have to make sure we know the version of the FAST_CWD structure
used on the system. */
- fcwd_access_t **f_cwd_ptr = find_fast_cwd_pointer ();
+ f_cwd_ptr = find_fast_cwd_pointer ();
if (!f_cwd_ptr)
- {
- bool warn = 1;
- USHORT emulated, hosted;
-
- /* Check if we're running in WOW64 on ARM64 emulating AMD64. Skip
- warning as long as there's no solution for finding the FAST_CWD
- pointer on that system. */
- if (IsWow64Process2 (GetCurrentProcess (), &emulated, &hosted)
- && hosted == IMAGE_FILE_MACHINE_ARM64)
- warn = 0;
-
- if (warn)
- small_printf ("Cygwin WARNING:\n"
+ small_printf ("Cygwin WARNING:\n"
" Couldn't compute FAST_CWD pointer. This typically occurs if you're using\n"
" an older Cygwin version on a newer Windows. Please update to the latest\n"
" available Cygwin version from https://cygwin.com/. If the problem persists,\n"
" please see https://cygwin.com/problems.html\n\n");
- }
+
/* Eventually, after we set the version as well, set fast_cwd_ptr. */
return f_cwd_ptr;
}

View File

@ -4,7 +4,7 @@
pkgbase=msys2-runtime
pkgname=('msys2-runtime' 'msys2-runtime-devel')
pkgver=3.5.4
pkgrel=2
pkgrel=3
pkgdesc="Cygwin POSIX emulation engine"
arch=('x86_64')
url="https://www.cygwin.com/"
@ -68,7 +68,8 @@ source=('msys2-runtime'::git://sourceware.org/git/newlib-cygwin.git#tag=cygwin-$
0037-Revert-Cygwin-Enable-dynamicbase-on-the-Cygwin-DLL-b.patch
0038-Avoid-sharing-cygheaps-across-Cygwin-versions.patch
0039-uname-report-msys2-runtime-commit-hash-too.patch
0040-Cygwin-pipe-Fix-a-regression-that-raw_write-slows-do.patch)
0040-Cygwin-pipe-Fix-a-regression-that-raw_write-slows-do.patch
0041-Cygwin-find_fast_cwd-don-t-run-assembler-checking-co.patch)
sha256sums=('b8dce32fd9746506752d90ac3f30454fe1689100b08c41442016aaf244cc8584'
'9f9e1b6b05cbc9a715fe9443740b25171e9c1a276a058e6ba7e4f6eada6872c8'
'e5b2095e543a5d702cfce6da26cd17a78f40e17620315b1bcc434b94a007ae9b'
@ -109,7 +110,8 @@ sha256sums=('b8dce32fd9746506752d90ac3f30454fe1689100b08c41442016aaf244cc8584'
'f74cb189aafc9f8bf04cdad02531d9eca524c2dd12672e4e118bfdbb48926110'
'344f108bc9e9ad597e07f1cc8e834e3d1a9fbd9972a1554c1c5de0fce0ae8506'
'f93578a1150d724a60a7e8eb8491342aeb13f809e2ddb5193d8d126465f665cb'
'41e896036ea67c5d12a712554f4d53949c2dc809bb3545ac6be1fe619848f8af')
'41e896036ea67c5d12a712554f4d53949c2dc809bb3545ac6be1fe619848f8af'
'34035a411acb71c81a7f4a2367d2cf9f7f00572b6e92c7ba5506e6a48e4867ca')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
@ -186,7 +188,8 @@ prepare() {
0037-Revert-Cygwin-Enable-dynamicbase-on-the-Cygwin-DLL-b.patch \
0038-Avoid-sharing-cygheaps-across-Cygwin-versions.patch \
0039-uname-report-msys2-runtime-commit-hash-too.patch \
0040-Cygwin-pipe-Fix-a-regression-that-raw_write-slows-do.patch
0040-Cygwin-pipe-Fix-a-regression-that-raw_write-slows-do.patch \
0041-Cygwin-find_fast_cwd-don-t-run-assembler-checking-co.patch
}
build() {