On Sun, Dec 11, 2022 at 7:22 AM Bruno Haible wrote: > Roger Pack wrote: > > I received some complaints saying in mingw it was"requiring windows 8" > for > > a certain library. > > > > "Entry point not found, GetSystemTimePreciseAsFileTime could not be > located > > in the dynamic link library KERNEL32.dll". > > Indeed, according to < > https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsystemtimepreciseasfiletime > > > the function GetSystemTimePreciseAsFileTime is not present in Windows 7 and > older. > > Looking at the table at > I > see > that Windows 7 is out of "extended support" already for more than 2 years. > That means, users with such machines (connected to the internet) live very > dangerously. > > Eli: What are the current support statements of Emacs regarding Windows > XP/Vista/7 ? > And should Gnulib declare that the minimum supported version of Windows > is Windows 8? > > > Perhaps the following patch? Thanks! :) > > > > diff --git a/lib/gettimeofday.c b/lib/gettimeofday.c > > index 36c7920af..428cc4f30 100644 > > --- a/lib/gettimeofday.c > > +++ b/lib/gettimeofday.c > > @@ -35,7 +35,7 @@ > > # undef LoadLibrary > > # define LoadLibrary LoadLibraryA > > > > -# if !(_WIN32_WINNT >= _WIN32_WINNT_WIN8) > > +# if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) > > > > /* Avoid warnings from gcc -Wcast-function-type. */ > > # define GetProcAddress \ > > > > Nope, this patch is not right. > > > "Entry point not found, GetSystemTimePreciseAsFileTime could not be > located > > in the dynamic link library KERNEL32.dll". > > It looks like some code links directly to GetSystemTimePreciseAsFileTime, > and > your user is running it under Windows 7 or older. > > Which object file is it that links to GetSystemTimePreciseAsFileTime? > - If it's not gettimeofday.c, it's not in Gnulib's responsibility. > - If it is gettimeofday.c, this file must have been compiled with a > _WIN32_WINNT value >= _WIN32_WINNT_WIN8. You need to look in your > build files where this value come from. Maybe it is even the default > with your compiler version; if that version is new enough, that would > make sense. > OK it appears newer mingw have a default target of windows 10 for some reason. gnutls embedded in this case: $ x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I../.. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -mtune=generic -O3 -MT gettimeofday.o -MD -MP -MF $depbase.Tpo -c -o - -dM -E gettimeofday.c | grep WIN32_WINNT #define _WIN32_WINNT 0xa00 https://www.mail-archive.com/mingw-w64-public@lists.sourceforge.net/msg18212.html Maybe instead it could always call initialize and "prefer" GetSystemTimePreciseAsFileTime, then be compatible with < windows 8 without having to manually set _WIN32_WINNT. Basically everything using Gnulib gettimeofday + mingw today might "accidentally" lose windows 7 compat without realizing it. Though I guess you could call that Mingw's fault, it was a bit confusing. Thanks, Merry Christmas!