Eli Zaretskii wrote: > the utimens.c file you've brought from Gnulib has 2 problems: > > . it defines WIN32_LEAN_AND_MEAN unconditionally, which conflicts > with our own definition in nt/inc/ms-w32.h, which is processed > earlier; > > . it includes msvc-nothrow.h, which is absent in the repository, it > should have been imported from Gnulib together with utimens.c > > I fixed the first of these temporarily, in a way that at least GCC > lets utimens.c compile, but I think in general utimens.c should do > > #ifndef WIN32_LEAN_AND_MEAN > # define WIN32_LEAN_AND_MEAN > #endif > > to avoid possible clashes with definitions elsewhere in the sources. I'd like Bruno's opinion on the macro clash, and on the attached patch for the msvc-nothrow.h issue, a patch that I installed into Gnulib and into Emacs master to try to get the Emacs master build working again. For quite some time Emacs has avoided Gnulib's msvc-nothrow and msvc-inval modules, the reason for which I do not understand (and don't particularly want to :-). It's trivial to add the msvc-nothrow and msvc-inval machinery to the Emacs source code, if this is necessary now for some reason: simply remove them from the AVOIDED_MODULES list in admin/merge-gnulib and then run admin/merge-gnulib. I don't know whether this would break other parts of the build on MS-Windows, though.