summarylogtreecommitdiffstats
path: root/0003-AUR-Copy-DLL-dependencies-of-32bit-libvkd3d-dlls-int.patch
blob: cc5897367f030377401157182cdf97b0f7c9996c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
From 9da4d252cf4794828f8a533639e9a2b3575303f7 Mon Sep 17 00:00:00 2001
From: Stelios Tsampas <loathingkernel@gmail.com>
Date: Wed, 12 Jul 2023 03:16:34 +0300
Subject: [PATCH 3/5] AUR Copy DLL dependencies of 32bit libvkd3d dlls into the
 correct location in the prefix

For some unknown to me reason, 32bit vkd3d (not vkd3d-proton) always links
to libgcc_s_dw2-1.dll no matter what linker options I tried.

The required dlls into the package next to vkd3d, they will be copied later into the prefix
by the patched proton script. Bundling the helps to avoid making mingw-w64-gcc package
a runtime dependency.

    DLL Name: libgcc_s_dw2-1.dll
    vma:  Hint/Ord Member-Name Bound-To
    6a4b4     121  __udivdi3
    6a4c0     123  __umoddi3
---
 proton | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/proton b/proton
index 839e63ca..d0b31f02 100755
--- a/proton
+++ b/proton
@@ -984,6 +984,15 @@ class CompatData:
                         prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
                 try_copy(g_proton.lib_dir + "vkd3d/libvkd3d-shader-1.dll", "drive_c/windows/syswow64",
                         prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
+                #copy mingw DLL dependencies for libvkd3d
+                try_copy(g_proton.lib64_dir + "vkd3d/libgcc_s_seh-1.dll", "drive_c/windows/system32",
+                        prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
+                try_copy(g_proton.lib_dir + "vkd3d/libgcc_s_dw2-1.dll", "drive_c/windows/syswow64",
+                        prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
+                try_copy(g_proton.lib64_dir + "vkd3d/libwinpthread-1.dll", "drive_c/windows/system32",
+                        prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
+                try_copy(g_proton.lib_dir + "vkd3d/libwinpthread-1.dll", "drive_c/windows/syswow64",
+                        prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
 
                 if use_wined3d:
                     dxvkfiles = []
-- 
2.47.0