bfd: Stop using -Wstack-usage=262144 when built with Clang
authorTsukasa OI <research_trasio@irq.a4lg.com>
Sat, 10 Sep 2022 17:08:13 +0000 (17:08 +0000)
committerTsukasa OI <research_trasio@irq.a4lg.com>
Wed, 14 Sep 2022 05:42:17 +0000 (05:42 +0000)
Some components of GNU Binutils will pass "-Wstack-usage=262144" when
"GCC >= 5.0" is detected.  However, Clang does not support "-Wstack-usage",
despite that related configuration part in bfd/warning.m4 handles the latest
Clang (15.0.0 as of this writing) as "GCC >= 5.0".

The option "-Wstack-usage" was ignored when the first version of Clang is
released but even this "ignoring" behavior is removed before Clang 4.0.0.
So, if we give Clang "-Wstack-usage=262144", it generates a warning, making
the build failure.

This commit checks "__clang__" macro to prevent adding the option if the
compiler is identified as Clang.

bfd/ChangeLog:

* warning.m4: Stop appending "-Wstack-usage=262144" option when
compiled with Clang.
* configure: Regenerate.

binutils/ChangeLog:

* configure: Regenerate.

gas/ChangeLog:

* configure: Regenerate.

gold/ChangeLog:

* configure: Regenerate.

gprof/ChangeLog:

* configure: Regenerate.

ld/ChangeLog:

* configure: Regenerate.

opcodes/ChangeLog:

* configure: Regenerate.

bfd/configure
bfd/warning.m4
binutils/configure
gas/configure
gold/configure
gprof/configure
ld/configure
opcodes/configure

index 6afdce94fe88c9696ea22f1f87877edbbe606fe5..075d2ee0a1b88578dbad56dd5a2182ac4e0542c4 100755 (executable)
@@ -12093,10 +12093,19 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -12138,10 +12147,19 @@ if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Check whether --enable-werror was given.
 if test "${enable_werror+set}" = set; then :
index 6f3e190b81c167049fec0fbe2935851c8ebafc3a..0435c664472403276f8045a5bb685a4bc4da3eab 100644 (file)
@@ -50,7 +50,8 @@ GCC_WARN_CFLAGS_FOR_BUILD="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
 AC_EGREP_CPP([(^[0-3]$|^__GNUC__$)],[__GNUC__],,GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wshadow")
 
 # Add -Wstack-usage if the compiler is a sufficiently recent version of GCC.
-AC_EGREP_CPP([(^[0-4]$|^__GNUC__$)],[__GNUC__],,GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144")
+AC_EGREP_CPP([(^[0-4]$|^__GNUC__$)],[__GNUC__],,dnl
+[AC_EGREP_CPP([^__clang__$],[__clang__],[GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"],)])
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -62,7 +63,8 @@ AC_EGREP_CPP([(^[0-3]$|^__GNUC__$)],[__GNUC__],,WARN_WRITE_STRINGS="-Wwrite-stri
 AC_EGREP_CPP_FOR_BUILD([(^[0-3]$|^__GNUC__$)],[__GNUC__],,GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wshadow")
 
 # Add -Wstack-usage if the compiler is a sufficiently recent version of GCC.
-AC_EGREP_CPP_FOR_BUILD([(^[0-4]$|^__GNUC__$)],[__GNUC__],,GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144")
+AC_EGREP_CPP_FOR_BUILD([(^[0-4]$|^__GNUC__$)],[__GNUC__],,dnl
+[AC_EGREP_CPP_FOR_BUILD([^__clang__$],[__clang__],[GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"],)])
 
 AC_ARG_ENABLE(werror,
   [  --enable-werror         treat compile warnings as errors],
index 542c832be1846ffb43f18425f9c33babb585726b..1c518227f57ff8b8a389b15788cf86085eeb3e0d 100755 (executable)
@@ -11932,10 +11932,19 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -11977,10 +11986,19 @@ if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Check whether --enable-werror was given.
 if test "${enable_werror+set}" = set; then :
index 97bcf62ec3dc431e233ac0c0f80d0ed27514e01f..d0449a1d7ab1f776aa439644a42e84785ecec6fa 100755 (executable)
@@ -11588,10 +11588,19 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -11633,10 +11642,19 @@ if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Check whether --enable-werror was given.
 if test "${enable_werror+set}" = set; then :
index 84c413fecd2621987e3f1e52c0ee844148f66766..85f62a92fcda848e9f0e537c893d5dd9efcf6722 100755 (executable)
@@ -7938,10 +7938,19 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -7983,10 +7992,19 @@ if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Check whether --enable-werror was given.
 if test "${enable_werror+set}" = set; then :
index b4001641d2deb501844fac3b9405652158851e82..cb1503530507295035bfbf60d2312e5922671742 100755 (executable)
@@ -11890,10 +11890,19 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -11935,10 +11944,19 @@ if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Check whether --enable-werror was given.
 if test "${enable_werror+set}" = set; then :
index 1c2b64870b17a8fac4e0cab3148a0c399c357df5..a1a07005400bff2e003eda0ee9506a7b7a58cf84 100755 (executable)
@@ -15855,10 +15855,19 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -15900,10 +15909,19 @@ if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Check whether --enable-werror was given.
 if test "${enable_werror+set}" = set; then :
index a5951b9b362aa03af809a4641ea4150868c73f84..08c57a3385559a23369edef3978c2f8e9173ecac 100755 (executable)
@@ -11445,10 +11445,19 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Set WARN_WRITE_STRINGS if the compiler supports -Wwrite-strings.
 WARN_WRITE_STRINGS=""
@@ -11490,10 +11499,19 @@ if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
   $EGREP "(^[0-4]$|^__GNUC__$)" >/dev/null 2>&1; then :
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+__clang__
+_ACEOF
+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 |
+  $EGREP "^__clang__$" >/dev/null 2>&1; then :
   GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144"
 fi
 rm -f conftest*
 
+fi
+rm -f conftest*
+
 
 # Check whether --enable-werror was given.
 if test "${enable_werror+set}" = set; then :