> From: Paul Smith <[email protected]>
> Cc: Eli Zaretskii <[email protected]>
> Date: Sat, 22 Aug 2026 15:55:28 -0400
> 
> On Tue, 2026-08-18 at 13:42 +0200, iain wrote:
> > The Windows build script does not currently provide an ARM64 option,
> > but adding:
> 
> Thank you I can add a change like this.
> 
> > The resulting build then fails in arscan.c with:
> > stdint.h(45): error C2632: '__int64' followed by 'long' is illegal
> > stdint.h(46): error C2632: '__int64' followed by 'long' is illegal
> > The cause appears to be in src/config.h.W32. The definitions
> > of HAVE_INTTYPES_H and HAVE_STDINT_H are currently guarded
> > by __MINGW32__:
> > 
> > When compiling with MSVC, __MINGW32__ is not defined, even though
> > MSVC supplies both headers.
> 
> I think the reason for this is that older versions of MSVC prior to
> MSVC 2010, do not provide these headers.  Eli, do you know if there was
> another reason?

ARM64 support on Windows in general and in MSVC in particular is
relatively new.  I think in the long run we will need someone who can
build and test Make on such a system, to be able to support that
platform adequately.  In particular, it is not clear whether the OP
ran the test suite after building Make, and if so, what were the
results.

> If that was the only issue we could replace the check with something
> like:
> 
>   #if __MINGW32__ || (defined(_MSC_VER) && (_MSC_VER >= 1600))

Sure, if someone verifies that MSVC versions 16 and higher have
stdint.h, regardless of the underlying platform.  I don't have MSVC
and cannot verify that myself.

Reply via email to