When compiling libiberty (as part of GDB) with MinGW on MS-Windows, I see the following warning:
gcc -c -DHAVE_CONFIG_H -O2 -gdwarf-4 -g3 -D__USE_MINGW_ACCESS -I. -I./../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic -D_GNU_SOURCE ./xstrndup.c -o xstrndup.o ./xstrndup.c: In function 'xstrndup': ./xstrndup.c:51:16: warning: implicit declaration of function 'strnlen' [-Wimplicit-function-declaration] size_t len = strnlen (s, n); ^ This happens because libiberty.h uses incorrect guards for the prototype of strnlen: #if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN extern size_t strnlen (const char *, size_t); #endif It should use HAVE_STRNLEN instead, because that's the only strnlen-related macro defined in config.g when strnlen is probed by the configure script. Thanks.