Skip to content

Commit dba0b8c

Browse files
committed
fix MinGW build issues
1 parent 814c4df commit dba0b8c

File tree

11 files changed

+244
-73
lines changed

11 files changed

+244
-73
lines changed

.mingw/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ TARGET := $(word 1,$(subst -, ,$(TUPLE)))
1919
DEF_SUFFIX := $(if $(TARGET:x86_64=),.def,.def64)
2020

2121
.PHONY: all
22-
all: dwmapi-delaylib.lib version-delaylib.lib wintrust-delaylib.lib
22+
all: dwmapi-delaylib.lib version-delaylib.lib wintrust-delaylib.lib uxtheme-delaylib.lib
2323

2424
%.def64: %.def
2525
$(AM_V_SED) "s/@.*//" $< >$@

.mingw/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ uninstall-am:
367367

368368

369369
.PHONY: all
370-
all: dwmapi-delaylib.lib version-delaylib.lib wintrust-delaylib.lib
370+
all: dwmapi-delaylib.lib version-delaylib.lib wintrust-delaylib.lib uxtheme-delaylib.lib
371371

372372
%.def64: %.def
373373
$(AM_V_SED) "s/@.*//" $< >$@

.mingw/dwmapi.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
EXPORTS
22
DwmGetWindowAttribute@16
3+
DwmSetWindowAttribute@16

.mingw/uxtheme.def

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
;
2+
; Definition file of UxTheme.dll
3+
; Automatic generated by gendef
4+
; written by Kai Tietz 2008
5+
;
6+
LIBRARY "UxTheme.dll"
7+
EXPORTS
8+
BeginPanningFeedback@4
9+
EndPanningFeedback@8
10+
UpdatePanningFeedback@16
11+
BeginBufferedAnimation@32
12+
BeginBufferedPaint@20
13+
BufferedPaintClear@8
14+
BufferedPaintInit@0
15+
BufferedPaintRenderAnimation@8
16+
BufferedPaintSetAlpha@12
17+
DrawThemeBackgroundEx@24
18+
BufferedPaintStopAllAnimations@4
19+
BufferedPaintUnInit@0
20+
CloseThemeData@4
21+
DrawThemeBackground@24
22+
DrawThemeEdge@32
23+
DrawThemeIcon@28
24+
DrawThemeParentBackground@12
25+
DrawThemeParentBackgroundEx@16
26+
DrawThemeText@36
27+
OpenThemeDataEx@12
28+
DrawThemeTextEx@36
29+
EnableThemeDialogTexture@8
30+
EnableTheming@4
31+
EndBufferedAnimation@8
32+
EndBufferedPaint@8
33+
GetBufferedPaintBits@12
34+
GetBufferedPaintDC@4
35+
GetBufferedPaintTargetDC@4
36+
GetBufferedPaintTargetRect@8
37+
GetCurrentThemeName@24
38+
GetThemeAppProperties@0
39+
GetThemeBackgroundContentRect@24
40+
GetThemeBackgroundExtent@24
41+
GetThemeBackgroundRegion@24
42+
GetThemeBitmap@24
43+
GetThemeBool@20
44+
GetThemeColor@20
45+
GetThemeDocumentationProperty@16
46+
GetThemeEnumValue@20
47+
GetThemeFilename@24
48+
GetThemeFont@24
49+
GetThemeInt@20
50+
GetThemeIntList@20
51+
GetThemeMargins@28
52+
GetThemeMetric@24
53+
GetThemePartSize@28
54+
GetThemePosition@20
55+
GetThemePropertyOrigin@20
56+
GetThemeRect@20
57+
GetThemeStream@28
58+
GetThemeString@24
59+
GetThemeSysBool@8
60+
GetThemeSysColor@8
61+
GetThemeSysColorBrush@8
62+
GetThemeSysFont@12
63+
GetThemeSysInt@12
64+
GetThemeSysSize@8
65+
GetThemeSysString@16
66+
GetThemeTextExtent@36
67+
GetThemeTextMetrics@20
68+
GetThemeTransitionDuration@24
69+
GetWindowTheme@4
70+
HitTestThemeBackground@40
71+
IsAppThemed@0
72+
IsCompositionActive@0
73+
IsThemeActive@0
74+
IsThemeBackgroundPartiallyTransparent@12
75+
IsThemeDialogTextureEnabled@4
76+
IsThemePartDefined@12
77+
OpenThemeData@8
78+
SetThemeAppProperties@4
79+
SetWindowTheme@12

.vs/rufus.vcxproj

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,12 @@
133133
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
134134
</ClCompile>
135135
<Link>
136-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
136+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
137137
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
138138
<GenerateDebugInformation>true</GenerateDebugInformation>
139139
<SubSystem>Windows</SubSystem>
140140
<TargetMachine>MachineX86</TargetMachine>
141-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
141+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
142142
</Link>
143143
<ResourceCompile>
144144
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -162,12 +162,12 @@
162162
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
163163
</ClCompile>
164164
<Link>
165-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
165+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
166166
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
167167
<GenerateDebugInformation>true</GenerateDebugInformation>
168168
<SubSystem>Windows</SubSystem>
169169
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
170-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
170+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
171171
</Link>
172172
<ResourceCompile>
173173
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -193,12 +193,12 @@
193193
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
194194
</ClCompile>
195195
<Link>
196-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
196+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
197197
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
198198
<GenerateDebugInformation>true</GenerateDebugInformation>
199199
<SubSystem>Windows</SubSystem>
200200
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
201-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
201+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
202202
</Link>
203203
<ResourceCompile>
204204
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -229,12 +229,12 @@
229229
<AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
230230
</ClCompile>
231231
<Link>
232-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
232+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
233233
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
234234
<GenerateDebugInformation>true</GenerateDebugInformation>
235235
<SubSystem>Windows</SubSystem>
236236
<TargetMachine>MachineX64</TargetMachine>
237-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
237+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
238238
</Link>
239239
<ResourceCompile>
240240
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -260,13 +260,13 @@
260260
<StringPooling>true</StringPooling>
261261
</ClCompile>
262262
<Link>
263-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
263+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
264264
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
265265
<GenerateDebugInformation>false</GenerateDebugInformation>
266266
<SubSystem>Windows</SubSystem>
267267
<TargetMachine>MachineX86</TargetMachine>
268268
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
269-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
269+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
270270
</Link>
271271
<ResourceCompile>
272272
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -292,13 +292,13 @@
292292
<StringPooling>true</StringPooling>
293293
</ClCompile>
294294
<Link>
295-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
295+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
296296
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
297297
<GenerateDebugInformation>false</GenerateDebugInformation>
298298
<SubSystem>Windows</SubSystem>
299299
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
300300
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
301-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
301+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
302302
</Link>
303303
<ResourceCompile>
304304
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -326,13 +326,13 @@
326326
<StringPooling>true</StringPooling>
327327
</ClCompile>
328328
<Link>
329-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
329+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
330330
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
331331
<GenerateDebugInformation>false</GenerateDebugInformation>
332332
<SubSystem>Windows</SubSystem>
333333
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
334334
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
335-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
335+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
336336
</Link>
337337
<ResourceCompile>
338338
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -363,13 +363,13 @@
363363
<StringPooling>true</StringPooling>
364364
</ClCompile>
365365
<Link>
366-
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
366+
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;uxtheme.lib;uxtheme.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies>
367367
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
368368
<GenerateDebugInformation>false</GenerateDebugInformation>
369369
<SubSystem>Windows</SubSystem>
370370
<TargetMachine>MachineX64</TargetMachine>
371371
<AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions>
372-
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
372+
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;uxtheme.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
373373
</Link>
374374
<ResourceCompile>
375375
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

src/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ NONVULNERABLE_LIBS = -lsetupapi -lole32 -lgdi32 -lshlwapi -lcrypt32 -lcomctl32 -
280280
# Ideally there would also be virtdisk and wininet as delaylib's below, but the MinGW folks haven't quite sorted out delay-loading
281281
# for x86_32 so as soon as you try to call APIs from these, the application will crash!
282282
# See https://github.com/pbatard/rufus/issues/1877#issuecomment-1109683039 as well as https://github.com/pbatard/rufus/issues/2272
283-
VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwintrust-delaylib
283+
VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwintrust-delaylib -luxtheme-delaylib
284284
AM_V_WINDRES_0 = @echo " RC $@";$(WINDRES)
285285
AM_V_WINDRES_1 = $(WINDRES)
286286
AM_V_WINDRES_ = $(AM_V_WINDRES_$(AM_DEFAULT_VERBOSITY))

src/registry.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,17 @@
2626
#ifdef __cplusplus
2727
extern "C" {
2828
#endif
29+
30+
// disable all warnings until fix theme
31+
#ifdef __GNUC__
32+
#pragma GCC diagnostic ignored "-Wstrict-prototypes"
33+
#pragma GCC diagnostic ignored "-Wunused-variable"
34+
#endif
2935

3036
#define REGKEY_HKCU HKEY_CURRENT_USER
3137
#define REGKEY_HKLM HKEY_LOCAL_MACHINE
3238

39+
3340
/* Delete a registry key from <key_root>\Software and all its values
3441
If the key has subkeys, this call will fail. */
3542
static __inline BOOL DeleteRegistryKey(HKEY key_root, const char* key_name)

0 commit comments

Comments
 (0)