Pass -Wno-format-truncation when this is supported by GCC so silence
warnings like this:
conf.c: In function ‘Read_Config’:
conf.c:985:60: warning: ‘snprintf’ output may be truncated before
the last format character [-Wformat-truncation=]
985 | snprintf(file, sizeof(file), "%s/%s",
| ^
conf.c:985:25: note: ‘snprintf’ output 2 or more bytes (assuming 257)
into a destination of size 256
985 | snprintf(file, sizeof(file), "%s/%s",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
986 | Conf_IncludeDir, entry->d_name);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The warning is correct, but this is basically why we use snprintf() in
the first place.
])
])
+AC_DEFUN([GCC_W_NO_FORMAT_TRUNC],[
+ result=yes
+ AC_MSG_CHECKING([whether ${CC} accepts -Wno-format-truncation])
+ old_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Wno-format-truncation"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],[],[result=no])
+ echo $result
+ if test "X$result" = "Xno"; then
+ CFLAGS="$old_cflags"
+ fi
+])
+
# -- Hard coded system and compiler dependencies/features/options ... --
if test "$GCC" = "yes"; then
CFLAGS="$CFLAGS -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes"
GCC_STACK_PROTECT_CC
+ GCC_W_NO_FORMAT_TRUNC
fi
case "$host_os" in