On NetBSD 10.0, there is now a compilation error:
In file included from ../../src/m4.c:23:
../../src/m4.h:192:14: error: conflicting types for ‘shquote’
192 | extern char *shquote (char const *);
| ^~~~~~~
In file included from ../lib/stdlib.h:39,
from ../lib/unistd.h:124,
from ../lib/string.h:72,
from ../../src/m4.h:36,
from ../../src/m4.c:23:
/usr/include/stdlib.h:351:8: note: previous declaration of ‘shquote’ was here
351 | size_t shquote(const char *, char *, size_t);
| ^~~~~~~
../../src/m4.c:186:1: error: conflicting types for ‘shquote’
186 | shquote (char const *arg)
| ^~~~~~~
In file included from ../lib/stdlib.h:39,
from ../lib/unistd.h:124,
from ../lib/string.h:72,
from ../../src/m4.h:36,
from ../../src/m4.c:23:
/usr/include/stdlib.h:351:8: note: previous declaration of ‘shquote’ was here
351 | size_t shquote(const char *, char *, size_t);
| ^~~~~~~
*** Error code 1
Stop.
make[2]: stopped in /home/runner/work/ci-check/ci-check/m4-2026-07-13/build/src
The function shquote was introduced in src/m4.h in
commit 3f8603dbd1562f2f3e7403716e0b81c7f0ba20b9 (2026-07-01).
It is a libc function on NetBSD, see <https://man.netbsd.org/shquote.3>.
Bruno