Patch from staging to fix ARM builds

f38
Michael Cronenworth 7 years ago
parent 3cc5a3d752
commit 0dfab9fafa

@ -1,38 +0,0 @@
From f0d3ae8cf201128497ddb5c3d89e1c8778726ac2 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 24 Jul 2018 11:32:12 +1000
Subject: [PATCH] Updated winepulse-PulseAudio_Support patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=45502
---
.../0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch b/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch
index a483298e..7ff59b0e 100644
--- a/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch
+++ b/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch
@@ -1,4 +1,4 @@
-From 6b24328a061f853e5aafe258fc8f3075aae71b16 Mon Sep 17 00:00:00 2001
+From 4611d3dd983d7707d845508ddde2d49e9daafec5 Mon Sep 17 00:00:00 2001
From: Andrew Eikum <aeikum@codeweavers.com>
Date: Fri, 1 Jun 2018 14:43:01 -0500
Subject: [PATCH 2/7] winepulse: Don't rely on pulseaudio callbacks for timing
@@ -8,7 +8,7 @@ Subject: [PATCH 2/7] winepulse: Don't rely on pulseaudio callbacks for timing
1 file changed, 231 insertions(+), 274 deletions(-)
diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
-index f192b1d..0654ab0 100644
+index f192b1d..b750986 100644
--- a/dlls/winepulse.drv/mmdevdrv.c
+++ b/dlls/winepulse.drv/mmdevdrv.c
@@ -169,13 +169,16 @@ struct ACImpl {
@@ -198,7 +198,7 @@ index f192b1d..0654ab0 100644
This->peek_len = 0;
- } else {
- pa_stream_peek(This->stream, (const void**)&src, &src_len);
-+ } else if (pa_stream_peek(This->stream, (const void**)&src, &src_len) && src_len) {
++ } else if (pa_stream_peek(This->stream, (const void**)&src, &src_len) == 0 && src_len) {
copy = min(rem, src_len);

@ -0,0 +1,137 @@
From 720db34b6e2d5d4363a3fa14d8e0bcd1e0706d11 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Mon, 20 Aug 2018 18:07:00 -0500
Subject: [PATCH] ntdll-RtlCreateUserThread: Fix compilation for ARM.
* Fix field dereferencing, should fix bug 45678.
* Don't use __syscall_ wrappers on architectures where syscall thunks aren't
implemented. (Ideally we'd just redirect them, but it turns out that this
is very hard to do with the current infrastructure.) This should fix bug
45677.
---
...tlCreateUserThread-into-NtCreateThre.patch | 36 +++++++++++--------
1 file changed, 22 insertions(+), 14 deletions(-)
diff --git a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch
index 67681d51..c995f4f9 100644
--- a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch
+++ b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch
@@ -1,4 +1,4 @@
-From 06289ea3c98030049e080fd3348073932898740f Mon Sep 17 00:00:00 2001
+From 095a6032a9ba158b4e203d1c56f92d40de9172ae Mon Sep 17 00:00:00 2001
From: Andrew Wesie <awesie@gmail.com>
Date: Fri, 27 Jul 2018 01:22:59 -0500
Subject: [PATCH] ntdll: Refactor RtlCreateUserThread into NtCreateThreadEx.
@@ -7,12 +7,12 @@ League of Legends hooks NtCreateThread or NtCreateThreadEx (depending on the
reported version), and expects it to be called whenever a thread is created.
---
dlls/ntdll/ntdll.spec | 2 +-
- dlls/ntdll/thread.c | 177 ++++++++++++++++++++++++++++++++++++++++++--------
+ dlls/ntdll/thread.c | 185 ++++++++++++++++++++++++++++++++++++++++++--------
include/winternl.h | 25 +++++++
- 3 files changed, 175 insertions(+), 29 deletions(-)
+ 3 files changed, 183 insertions(+), 29 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
-index 705538a..90e537e 100644
+index 003e4f9..f62942c 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -154,7 +154,7 @@
@@ -25,10 +25,10 @@ index 705538a..90e537e 100644
@ stdcall NtCreateTimer(ptr long ptr long)
@ stub NtCreateToken
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
-index eda4fa7..b50524d 100644
+index 59d64e1..99f312f 100644
--- a/dlls/ntdll/thread.c
+++ b/dlls/ntdll/thread.c
-@@ -682,34 +682,18 @@ static void start_thread( struct startup_info *info )
+@@ -527,34 +527,18 @@ static void start_thread( struct startup_info *info )
/***********************************************************************
* NtCreateThreadEx (NTDLL.@)
*/
@@ -68,7 +68,7 @@ index eda4fa7..b50524d 100644
HANDLE handle = 0, actctx = 0;
TEB *teb = NULL;
DWORD tid = 0;
-@@ -717,6 +701,33 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
+@@ -562,6 +546,33 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
NTSTATUS status;
SIZE_T extra_stack = PTHREAD_STACK_MIN;
@@ -102,7 +102,7 @@ index eda4fa7..b50524d 100644
if (process != NtCurrentProcess())
{
apc_call_t call;
-@@ -747,7 +758,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
+@@ -592,7 +603,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
SERVER_START_REQ( new_thread )
{
@@ -111,7 +111,7 @@ index eda4fa7..b50524d 100644
req->attributes = 0; /* FIXME */
req->suspend = suspended;
req->request_fd = request_pipe[0];
-@@ -804,19 +815,19 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
+@@ -649,19 +660,19 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
thread_data->wait_fd[1] = -1;
thread_data->start_stack = (char *)teb->Tib.StackBase;
@@ -137,7 +137,7 @@ index eda4fa7..b50524d 100644
pthread_sigmask( SIG_SETMASK, &sigset, NULL );
if (id) id->UniqueThread = ULongToHandle(tid);
-@@ -833,6 +844,116 @@ error:
+@@ -678,6 +689,124 @@ error:
return status;
}
@@ -159,8 +159,8 @@ index eda4fa7..b50524d 100644
+ entry = (LPTHREAD_START_ROUTINE) context->R0;
+ arg = (void *)context->R1;
+#elif defined(__aarch64__)
-+ entry = (LPTHREAD_START_ROUTINE) context->u.s.X0;
-+ arg = (void *)context->u.s.X1;
++ entry = (LPTHREAD_START_ROUTINE) context->u.X0;
++ arg = (void *)context->u.X1;
+#elif defined(__powerpc__)
+ entry = (LPTHREAD_START_ROUTINE) context->Gpr3;
+ arg = (void *)context->Gpr4;
@@ -229,7 +229,11 @@ index eda4fa7..b50524d 100644
+ context.Gpr4 = (DWORD)arg;
+#endif
+
++#if defined(__i386__) || defined(__x86_64__)
+ return __syscall_NtCreateThread(handle_ptr, (ACCESS_MASK)0, NULL, process, id, &context, NULL, suspended);
++#else
++ return NtCreateThread(handle_ptr, (ACCESS_MASK)0, NULL, process, id, &context, NULL, suspended);
++#endif
+ }
+ else
+ {
@@ -247,7 +251,11 @@ index eda4fa7..b50524d 100644
+ pattr_list = &attr_list;
+ }
+
++#if defined(__i386__) || defined(__x86_64__)
+ return __syscall_NtCreateThreadEx(handle_ptr, (ACCESS_MASK)0, NULL, process, (LPTHREAD_START_ROUTINE)entry, arg, flags, 0, stack_commit, stack_reserve, pattr_list);
++#else
++ return NtCreateThreadEx(handle_ptr, (ACCESS_MASK)0, NULL, process, (LPTHREAD_START_ROUTINE)entry, arg, flags, 0, stack_commit, stack_reserve, pattr_list);
++#endif
+ }
+}
+
@@ -255,10 +263,10 @@ index eda4fa7..b50524d 100644
/******************************************************************************
* RtlGetNtGlobalFlags (NTDLL.@)
diff --git a/include/winternl.h b/include/winternl.h
-index ebfe8d8..827fead 100644
+index dca8ff3..6617974 100644
--- a/include/winternl.h
+++ b/include/winternl.h
-@@ -2170,6 +2170,31 @@ typedef enum _SYSDBG_COMMAND {
+@@ -2173,6 +2173,31 @@ typedef enum _SYSDBG_COMMAND {
SysDbgWriteBusData
} SYSDBG_COMMAND, *PSYSDBG_COMMAND;

@ -51,6 +51,8 @@ Source109: wine-oleview.desktop
# build fixes
# wine bugs
# https://github.com/wine-staging/wine-staging/commit/720db34b6e2d5d4363a3fa14d8e0bcd1e0706d11
Patch1: wine-staging-3.14-arm.patch
# desktop dir
Source200: wine.menu
@ -685,6 +687,7 @@ This package adds the opencl driver for wine.
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
%patch1 -p1 -b.arm
patches/patchinstall.sh DESTDIR="`pwd`" --all
# fix parallelized build

Loading…
Cancel
Save