* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Omit -fno-common
in GCC 10 and later, as it is the default there.
Check exit status of ‘gcc --version’.
---
 ChangeLog          |  7 +++++++
 m4/manywarnings.m4 | 11 ++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 874cf704f7..9ae7506f45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2023-04-23  Paul Eggert  <egg...@cs.ucla.edu>
+
+       manywarnings: omit -fno-common in GCC 10+
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Omit -fno-common
+       in GCC 10 and later, as it is the default there.
+       Check exit status of ‘gcc --version’.
+
 2023-04-23  Bruno Haible  <br...@clisp.org>
 
        libunistring: Fix build on Windows, when a libunistring is installed.
diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4
index 2fac86e20b..f88dcc5f12 100644
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -109,7 +109,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
   #  <(LC_ALL=C gcc --help=warnings | sed -n 's/^  \(-[^ ]*\) .*/\1/p' | sort)
 
   $1=
-  for gl_manywarn_item in -fanalyzer -fno-common \
+  for gl_manywarn_item in -fanalyzer \
     -Wall \
     -Warith-conversion \
     -Wbad-function-cast \
@@ -178,14 +178,19 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
   gl_AS_VAR_APPEND([$1], [' -Wvla-larger-than=4031'])
 
   # These are needed for older GCC versions.
-  if test -n "$GCC"; then
-    case `($CC --version) 2>/dev/null` in
+  if test -n "$GCC" && gl_gcc_version=`($CC --version) 2>/dev/null`; then
+    case $gl_gcc_version in
       'gcc (GCC) '[[0-3]].* | \
       'gcc (GCC) '4.[[0-7]].*)
         gl_AS_VAR_APPEND([$1], [' -fdiagnostics-show-option'])
         gl_AS_VAR_APPEND([$1], [' -funit-at-a-time'])
           ;;
     esac
+    case $gl_gcc_version in
+      'gcc (GCC) '[[0-9]].*)
+        gl_AS_VAR_APPEND([$1], [' -fno-common'])
+          ;;
+    esac
   fi
 
   # Disable specific options as needed.
-- 
2.40.0


Reply via email to