Skip to content

Commit befab1c

Browse files
committed
dynamic linking works, now try static
1 parent 6bc8dfe commit befab1c

File tree

4 files changed

+13
-34
lines changed

4 files changed

+13
-34
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2314,7 +2314,7 @@ elseif(WINDOWS)
23142314
set(HAVE_SDL_STORAGE 1)
23152315

23162316
# Libraries for Win32 native and MinGW
2317-
sdl_link_dependency(base LIBS kernel32 user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32)
2317+
sdl_link_dependency(base LIBS ntdll kernel32 user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32)
23182318

23192319
set(SDL_TIME_WINDOWS 1)
23202320
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/time/windows/*.c")

VisualC-GDK/SDL/SDL.vcxproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
133133
</ResourceCompile>
134134
<Link>
135-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
135+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
136136
<GenerateDebugInformation>true</GenerateDebugInformation>
137137
<SubSystem>Windows</SubSystem>
138138
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
@@ -161,7 +161,7 @@
161161
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
162162
</ResourceCompile>
163163
<Link>
164-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
164+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
165165
<GenerateDebugInformation>true</GenerateDebugInformation>
166166
<SubSystem>Windows</SubSystem>
167167
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
@@ -199,7 +199,7 @@
199199
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
200200
</ResourceCompile>
201201
<Link>
202-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
202+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntimed.lib;msvcrtd.lib;ucrtd.lib;msvcprtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
203203
<GenerateDebugInformation>true</GenerateDebugInformation>
204204
<SubSystem>Windows</SubSystem>
205205
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
@@ -238,7 +238,7 @@
238238
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
239239
</ResourceCompile>
240240
<Link>
241-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)</AdditionalDependencies>
241+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)</AdditionalDependencies>
242242
<GenerateDebugInformation>true</GenerateDebugInformation>
243243
<SubSystem>Windows</SubSystem>
244244
<OptimizeReferences>true</OptimizeReferences>
@@ -268,7 +268,7 @@
268268
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
269269
</ResourceCompile>
270270
<Link>
271-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)</AdditionalDependencies>
271+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_xs.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)</AdditionalDependencies>
272272
<GenerateDebugInformation>true</GenerateDebugInformation>
273273
<SubSystem>Windows</SubSystem>
274274
<OptimizeReferences>true</OptimizeReferences>
@@ -307,7 +307,7 @@
307307
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
308308
</ResourceCompile>
309309
<Link>
310-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)</AdditionalDependencies>
310+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;xgameruntime.lib;d3d12_x.lib;uuid.lib;vcruntime.lib;msvcrt.lib;ucrt.lib;msvcprt.lib;%(AdditionalDependencies)</AdditionalDependencies>
311311
<GenerateDebugInformation>true</GenerateDebugInformation>
312312
<SubSystem>Windows</SubSystem>
313313
<OptimizeReferences>true</OptimizeReferences>

VisualC/SDL/SDL.vcxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
127127
</ResourceCompile>
128128
<Link>
129-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
129+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
130130
<GenerateDebugInformation>true</GenerateDebugInformation>
131131
<SubSystem>Windows</SubSystem>
132132
</Link>
@@ -159,7 +159,7 @@
159159
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
160160
</ResourceCompile>
161161
<Link>
162-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
162+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
163163
<GenerateDebugInformation>true</GenerateDebugInformation>
164164
<SubSystem>Windows</SubSystem>
165165
</Link>
@@ -196,7 +196,7 @@
196196
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
197197
</ResourceCompile>
198198
<Link>
199-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
199+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
200200
<GenerateDebugInformation>true</GenerateDebugInformation>
201201
<SubSystem>Windows</SubSystem>
202202
<OptimizeReferences>true</OptimizeReferences>
@@ -230,7 +230,7 @@
230230
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
231231
</ResourceCompile>
232232
<Link>
233-
<AdditionalDependencies>setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
233+
<AdditionalDependencies>ntdll.lib;setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
234234
<GenerateDebugInformation>true</GenerateDebugInformation>
235235
<SubSystem>Windows</SubSystem>
236236
<OptimizeReferences>true</OptimizeReferences>

src/timer/windows/SDL_systimer.c

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,35 +45,14 @@ Uint64 SDL_GetPerformanceFrequency(void)
4545
return (Uint64)frequency.QuadPart;
4646
}
4747

48-
typedef DWORD (NTAPI *NtDelayExecution_t)(BOOLEAN Alertable, PLARGE_INTEGER DelayInterval);
49-
static NtDelayExecution_t pNtDelayExecution;
50-
static void SDL_NtDelayExecution(BOOLEAN Alertable, PLARGE_INTEGER DelayInterval)
51-
{
52-
if (!pNtDelayExecution) {
53-
static bool initialized;
54-
55-
if (!initialized) {
56-
HMODULE module = GetModuleHandle(TEXT("ntdll.dll"));
57-
if (module) {
58-
pNtDelayExecution = (NtDelayExecution_t)GetProcAddress(module, "NtDelayExecution");
59-
}
60-
initialized = true;
61-
}
62-
63-
if (!pNtDelayExecution) {
64-
return;
65-
}
66-
}
67-
68-
pNtDelayExecution(Alertable, DelayInterval);
69-
}
7048

7149
void SDL_SYS_DelayNS(Uint64 ns)
7250
{
7351
Sint64 tick = ns;
7452
tick /= 100;
7553
tick *= -1;
76-
SDL_NtDelayExecution(0, (PLARGE_INTEGER)&tick);
54+
NTSYSAPI DWORD NTAPI NtDelayExecution( BOOLEAN Alertable, PLARGE_INTEGER DelayInterval );
55+
NtDelayExecution(0, (PLARGE_INTEGER)&tick);
7756
}
7857

7958
#endif // SDL_TIMER_WINDOWS

0 commit comments

Comments
 (0)