> From: Martin Dorey <martin.do...@hitachivantara.com> > CC: "bug-make@gnu.org" <bug-make@gnu.org> > Date: Mon, 5 Aug 2024 23:13:47 +0000 > > "Beginning with the UCRT in Visual Studio 2015 and Windows 10, snprintf is no > longer identical to _snprintf. The snprintf behavior is now C99 standard > conformant. The difference is that if you run out of buffer, snprintf > null-terminates the end of the buffer and returns the number of characters > that would have been required whereas _snprintf doesn't null-terminate the > buffer and returns -1. Also, snprintf() includes one more character in the > output because it doesn't null-terminate the buffer."
This is only relevant to a build using MSVC, the Microsoft compiler. (Yes, GNU Make does support it.) If, OTOH, you use the MinGW tools, then an ANSI-compatible implementation of snprintf is available there (as part of an auxiliary library that is always submitted to the linker) for much longer, and is the default for a very long time.