aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorTsukasa OI <research_trasio@irq.a4lg.com>2022-09-10 17:08:13 +0000
committerTsukasa OI <research_trasio@irq.a4lg.com>2022-09-14 05:42:17 +0000
commit491cf3178f718e48d71a54e50475e37dd831a51d (patch)
tree9329c5cbf3004f8c126c6a10e79c400a84e907fb /bfd
parentfdbca3611592ecfe6c421923562ed307ef75c8e0 (diff)
downloadgdb-491cf3178f718e48d71a54e50475e37dd831a51d.zip
gdb-491cf3178f718e48d71a54e50475e37dd831a51d.tar.gz
gdb-491cf3178f718e48d71a54e50475e37dd831a51d.tar.bz2
bfd: Stop using -Wstack-usage=262144 when built with Clang
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.
Diffstat (limited to 'bfd')
-rwxr-xr-xbfd/configure18
-rw-r--r--bfd/warning.m46
2 files changed, 22 insertions, 2 deletions
diff --git a/bfd/configure b/bfd/configure
index 6afdce9..075d2ee 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -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 :
diff --git a/bfd/warning.m4 b/bfd/warning.m4
index 6f3e190..0435c66 100644
--- a/bfd/warning.m4
+++ b/bfd/warning.m4
@@ -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],