summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authormoonshadow5652023-12-13 00:55:59 +0100
committermoonshadow5652023-12-13 00:55:59 +0100
commitfc6b924fd8b9e4be749a4c754fd99444bfb628ba (patch)
tree919f28b48cc42b4a8641740f0bd33e372f800468
parentd4798a0f8779d6540d5168d4c447ce651259bed0 (diff)
downloadaur-fc6b924fd8b9e4be749a4c754fd99444bfb628ba.tar.gz
fixes for 13.23
-rw-r--r--.SRCINFO2
-rw-r--r--0011-ntdll-signal_set_full_context-amd64.patch16
-rw-r--r--PKGBUILD6
3 files changed, 24 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c0c44b7ec49f..553ffd2db429 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -117,11 +117,13 @@ pkgbase = wine-lol-staging
source = 0005-LoL-client-slow-start-fix.patch
source = 0008-ntdll-nopguard-call_vectored_handlers.patch
source = 0009-kernel32-dont-create-console-when-not-cui.patch
+ source = 0011-ntdll-signal_set_full_context-amd64.patch
sha256sums = SKIP
sha256sums = SKIP
sha256sums = 7607a84fd357a86bc8fb59d2cf002a3e471bd8ec78ecdb844b0b77b1ae6d11a0
sha256sums = 49dfbf7546c00958e2b426a61371eedf0119471e9998b354595d5c0ce6dab48b
sha256sums = 2075ddc417ddd11954f76be753c88e04db28f0b3937e60508f178630dd5763eb
sha256sums = b19443ba1e01014ab478b03ac84797df2d481432798259371d94e4ba2e7b317c
+ sha256sums = 8dfef7fdbeb4bf503f72c2b3a15033849f67197d6d9571135369b4b0183ea213
pkgname = wine-lol-staging
diff --git a/0011-ntdll-signal_set_full_context-amd64.patch b/0011-ntdll-signal_set_full_context-amd64.patch
new file mode 100644
index 000000000000..55989bb1d6a8
--- /dev/null
+++ b/0011-ntdll-signal_set_full_context-amd64.patch
@@ -0,0 +1,16 @@
+diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
+index 84b3422d491..5b12e963c1e 100644
+--- a/dlls/ntdll/unix/signal_x86_64.c
++++ b/dlls/ntdll/unix/signal_x86_64.c
+@@ -952,8 +952,9 @@ NTSTATUS signal_set_full_context( CONTEXT *context )
+ {
+ NTSTATUS status = NtSetContextThread( GetCurrentThread(), context );
+
+- if (!status && (context->ContextFlags & CONTEXT_INTEGER) == CONTEXT_INTEGER)
+- amd64_thread_data()->syscall_frame->restore_flags |= CONTEXT_INTEGER;
++ unsigned int real_mask = CONTEXT_INTEGER & ~CONTEXT_AMD64;
++ if (!status && (context->ContextFlags & real_mask) == real_mask)
++ amd64_thread_data()->syscall_frame->restore_flags |= real_mask;
+ return status;
+ }
+
diff --git a/PKGBUILD b/PKGBUILD
index 53a896340c5c..287c14ec6156 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -19,6 +19,7 @@ source=("git+https://gitlab.winehq.org/wine/wine-staging.git#tag=v${_winever}"
"0005-LoL-client-slow-start-fix.patch"
"0008-ntdll-nopguard-call_vectored_handlers.patch"
"0009-kernel32-dont-create-console-when-not-cui.patch"
+ "0011-ntdll-signal_set_full_context-amd64.patch"
)
sha256sums=('SKIP'
@@ -27,6 +28,7 @@ sha256sums=('SKIP'
'49dfbf7546c00958e2b426a61371eedf0119471e9998b354595d5c0ce6dab48b'
'2075ddc417ddd11954f76be753c88e04db28f0b3937e60508f178630dd5763eb'
'b19443ba1e01014ab478b03ac84797df2d481432798259371d94e4ba2e7b317c'
+ '8dfef7fdbeb4bf503f72c2b3a15033849f67197d6d9571135369b4b0183ea213'
)
depends=(
@@ -129,6 +131,10 @@ prepare() {
echo 'Apply 0009-kernel32-dont-create-console-when-not-cui.patch'
patch -Np1 < "${srcdir}/0009-kernel32-dont-create-console-when-not-cui.patch"
+ # Fix NtSetContextThread syscall
+ echo 'Apply 00011-ntdll-signal_set_full_context-amd64.patch'
+ patch -Np1 < "${srcdir}/0011-ntdll-signal_set_full_context-amd64.patch"
+
# Clean up .orig files
echo "Clean up .orig files"
find ./ -name '*.orig' -delete