Skip to content

Commit 689ecfc

Browse files
dschoGit for Windows Build Agent
authored andcommitted
poll: lazy-load GetTickCount64()
This fixes the compilation, actually, as we still did not make the jump to post-Windows XP completely: we still compile with _WIN32_WINNT set to 0x0502 (which corresponds to Windows Server 2003 and is technically greater than Windows XP's 0x0501). However, GetTickCount64() is only available starting with Windows Vista/Windows Server 2008. Let's just lazy-load the function, which should also help Git for Windows contributors who want to reinstate Windows XP support. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 9f6f729 commit 689ecfc

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

compat/poll/poll.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,20 @@ win32_compute_revents_socket (SOCKET h, int sought, long lNetworkEvents)
267267
return happened;
268268
}
269269

270+
#include <windows.h>
271+
#include "compat/win32/lazyload.h"
272+
273+
static ULONGLONG CompatGetTickCount64(void)
274+
{
275+
DECLARE_PROC_ADDR(kernel32.dll, ULONGLONG, GetTickCount64, void);
276+
277+
if (!INIT_PROC_ADDR(GetTickCount64))
278+
return (ULONGLONG)GetTickCount();
279+
280+
return GetTickCount64();
281+
}
282+
#define GetTickCount64 CompatGetTickCount64
283+
270284
#else /* !MinGW */
271285

272286
/* Convert select(2) returned fd_sets into poll(2) revents values. */

0 commit comments

Comments
 (0)