On Wed, Feb 19, 2025 at 7:41 AM Eli Zaretskii <e...@gnu.org> wrote: > > > Date: Tue, 18 Feb 2025 22:06:11 +0100 (GMT+01:00) > > From: Eldred HABERT <m...@eldred.fr> > > > > Hello! > > > > I am having an issue that some versions of Make never stop on a Make file I > > made, but only on Windows. > > https://github.com/ISSOtm/gb-starter-kit/issues/1#issuecomment-1793775226 > > I have traced the issue to hi-res timestamps being disabled for some builds > > of Make; apparently, those that use `config.h.W32`, which explicitly > > disables hi-res timestamps. The MSYS2 port was reported to work reliably. > > > > Thus: I'd like to request that hi-res timestamps be enabled in that config > > file. > > It is not that simple. GNU Make uses 'stat' to retrieve the time > stamp of files, and the Windows implementation of 'stat' reports times > without hi-res data. So to define FILE_TIMESTAMP_HI_RES in the native > Windows port of GNU Make, someone will need to produce a > reimplementation of 'stat' that returns higher-resolution time stamp. > > Patches are welcome. > > (The MSYS2 port uses the Cygwin runtime library, whose 'stat' does > provide hi-res times. But the native port cannot use the Cygwin > runtime, it must use the native runtime or the Win32 APIs.)
Another sharp edge is, the hi-res timer on Windows may appear to move backwards in time as queries are made on different cores. Also see <https://stackoverflow.com/q/44020619>. Jeff