]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
string: Suppress Clang warnings on tester.c
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Dec 2024 21:12:02 +0000 (05:12 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Dec 2024 22:28:55 +0000 (06:28 +0800)
Add a configure check for -Wno-fortify-source to suppress Clang warnings
on string/tester.c, like:

tester.c:385:10: error: 'strncat' size argument is too large; destination buffer has size 50, but size argument is 99 [-Werror,-Wfortify-source]
  385 |   check (strncat (one, "lmn", 99) == one, 1);   /* Returned value. */

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
configure
configure.ac
string/Makefile

index 5fb41410e3e0fd9aed23988c89b9f1b96fee95d0..99a162629f022794b995d9d059eaef88195e9d14 100755 (executable)
--- a/configure
+++ b/configure
@@ -8001,6 +8001,40 @@ test-config-cflags-wno-restrict = $libc_cv_test_cflags_wno_restrict"
 
 
 
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking -Wno-fortify-source in testing" >&5
+printf %s "checking -Wno-fortify-source in testing... " >&6; }
+if test ${libc_cv_test_cflags_wno_fortify_source+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if { ac_try='${CC-cc} -c -Werror -Wno-fortify-source -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_test_cflags_wno_fortify_source=-Wno-fortify-source
+else case e in #(
+  e) libc_cv_test_cflags_wno_fortify_source=
+ ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cflags_wno_fortify_source" >&5
+printf "%s\n" "$libc_cv_test_cflags_wno_fortify_source" >&6; }
+
+CC="$saved_CC"
+
+
+config_vars="$config_vars
+test-config-cflags-wno-fortify-source = $libc_cv_test_cflags_wno_fortify_source"
+
+
+
 saved_CC="$CC"
 CC="$TEST_CC"
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking -finput-charset=ascii in testing" >&5
index 8c2eecf9a6685971a8c4730d0535889b458e7c2b..a535a09de8af6c4e3d84ae3fd1ad5e25343ee2b1 100644 (file)
@@ -1589,6 +1589,16 @@ LIBC_TRY_TEST_CC_OPTION([-Wno-restrict],
 LIBC_CONFIG_VAR([test-config-cflags-wno-restrict],
                [$libc_cv_test_cflags_wno_restrict])
 
+dnl Check if TEST_CC supports -Wno-fortify-source.
+LIBC_TRY_TEST_CC_OPTION([-Wno-fortify-source],
+  [-c -Werror -Wno-fortify-source],
+  libc_cv_test_cflags_wno_fortify_source,
+  [libc_cv_test_cflags_wno_fortify_source=-Wno-fortify-source],
+  [libc_cv_test_cflags_wno_fortify_source=]
+)
+LIBC_CONFIG_VAR([test-config-cflags-wno-fortify-source],
+               [$libc_cv_test_cflags_wno_fortify_source])
+
 dnl Check if TEST_CC supports -finput-charset=ascii.
 LIBC_TRY_TEST_CC_OPTION([-finput-charset=ascii],
   [-c -Werror -finput-charset=ascii],
index 1dff405c273d1b312ae01979496385179af5a04b..ac70d634040aacd30bb261cde83ed35e2b9efe51 100644 (file)
@@ -252,8 +252,11 @@ endif
 
 include ../Rules
 
-CFLAGS-inl-tester.c += -fno-builtin
-CFLAGS-noinl-tester.c += -fno-builtin
+CFLAGS-tester.c += $(test-config-cflags-wno-fortify-source)
+CFLAGS-inl-tester.c += -fno-builtin \
+                      $(test-config-cflags-wno-fortify-source)
+CFLAGS-noinl-tester.c += -fno-builtin \
+                      $(test-config-cflags-wno-fortify-source)
 CFLAGS-tst-strlen.c += -fno-builtin
 CFLAGS-stratcliff.c += -fno-builtin
 CFLAGS-test-ffs.c += -fno-builtin