Skip to content

Commit

Permalink
poll: lazy-load GetTickCount64()
Browse files Browse the repository at this point in the history
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 <johannes.schindelin@gmx.de>
  • Loading branch information
dscho authored and Git for Windows Build Agent committed Feb 23, 2019
1 parent eb593e9 commit 81ed73f
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions compat/poll/poll.c
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,20 @@ win32_compute_revents_socket (SOCKET h, int sought, long lNetworkEvents)
return happened;
}

#include <windows.h>
#include "compat/win32/lazyload.h"

static ULONGLONG CompatGetTickCount64(void)
{
DECLARE_PROC_ADDR(kernel32.dll, ULONGLONG, GetTickCount64, void);

if (!INIT_PROC_ADDR(GetTickCount64))
return (ULONGLONG)GetTickCount();

return GetTickCount64();
}
#define GetTickCount64 CompatGetTickCount64

#else /* !MinGW */

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

0 comments on commit 81ed73f

Please sign in to comment.