aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2023-12-05 18:49:27 -0700
committerMike Frysinger <vapier@gentoo.org>2023-12-05 23:12:16 -0700
commit3c7666dca52110877863d898a16a79e35e1ddca2 (patch)
treeb4a45972c524b6b8a29550933761db62e2e7be38 /sim
parent3c8852fcc806915fdeab8b3d6f49be7347160527 (diff)
downloadfsf-binutils-gdb-3c7666dca52110877863d898a16a79e35e1ddca2.zip
fsf-binutils-gdb-3c7666dca52110877863d898a16a79e35e1ddca2.tar.gz
fsf-binutils-gdb-3c7666dca52110877863d898a16a79e35e1ddca2.tar.bz2
sim: warnings: sync some build logic from gdbsupport
This fixes testing of -Wno flags, and adds some more portable ones.
Diffstat (limited to 'sim')
-rwxr-xr-xsim/configure39
-rw-r--r--sim/m4/sim_ac_option_warnings.m441
2 files changed, 65 insertions, 15 deletions
diff --git a/sim/configure b/sim/configure
index 32cd8fb..73a638f 100755
--- a/sim/configure
+++ b/sim/configure
@@ -15802,7 +15802,6 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_trace" >&5
$as_echo "$sim_trace" >&6; }
-
# Check whether --enable-werror was given.
if test "${enable_werror+set}" = set; then :
enableval=$enable_werror; case "${enableval}" in
@@ -15834,11 +15833,21 @@ build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith
-Wold-style-declaration -Wold-style-definition
"
-# Enable -Wno-format by default when using gcc on mingw since many
-# GCC versions complain about %I64.
case "${host}" in
- *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
- *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
+ *-*-mingw32*)
+ # Enable -Wno-format by default when using gcc on mingw since many
+ # GCC versions complain about %I64.
+ build_warnings="$build_warnings -Wno-format" ;;
+ *-*-solaris*)
+ # Solaris 11.4 <python2.7/ceval.h> uses #pragma no_inline that GCC
+ # doesn't understand.
+ build_warnings="$build_warnings -Wno-unknown-pragmas"
+ # Solaris 11 <unistd.h> marks vfork deprecated.
+ build_warnings="$build_warnings -Wno-deprecated-declarations" ;;
+ *)
+ # Note that gcc requires -Wformat for -Wformat-nonliteral to work,
+ # but there's a special case for this below.
+ build_warnings="$build_warnings -Wformat-nonliteral" ;;
esac
# Check whether --enable-build-warnings was given.
@@ -15879,11 +15888,27 @@ $as_echo_n "checking compiler warning flags... " >&6; }
# Separate out the -Werror flag as some files just cannot be
# compiled with it enabled.
for w in ${build_warnings}; do
+ # GCC does not complain about -Wno-unknown-warning. Invert
+ # and test -Wunknown-warning instead.
+ case $w in
+ -Wno-*)
+ wtest=`echo $w | sed 's/-Wno-/-W/g'` ;;
+ -Wformat-nonliteral)
+ # gcc requires -Wformat before -Wformat-nonliteral
+ # will work, so stick them together.
+ w="-Wformat $w"
+ wtest="$w"
+ ;;
+ *)
+ wtest=$w ;;
+ esac
+
case $w in
-Werr*) WERROR_CFLAGS=-Werror ;;
- *) # Check that GCC accepts it
+ *)
+ # Check whether GCC accepts it.
saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror $w"
+ CFLAGS="$CFLAGS -Werror $wtest"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
diff --git a/sim/m4/sim_ac_option_warnings.m4 b/sim/m4/sim_ac_option_warnings.m4
index 16d358b..b66e0ec 100644
--- a/sim/m4/sim_ac_option_warnings.m4
+++ b/sim/m4/sim_ac_option_warnings.m4
@@ -15,8 +15,7 @@ dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl
dnl --enable-build-warnings is for developers of the simulator.
dnl it enables extra GCC specific warnings.
-AC_DEFUN([SIM_AC_OPTION_WARNINGS],
-[
+AC_DEFUN([SIM_AC_OPTION_WARNINGS], [dnl
AC_ARG_ENABLE(werror,
AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
[case "${enableval}" in
@@ -49,11 +48,21 @@ build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith
-Wold-style-declaration -Wold-style-definition
"
-# Enable -Wno-format by default when using gcc on mingw since many
-# GCC versions complain about %I64.
case "${host}" in
- *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
- *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
+ *-*-mingw32*)
+ # Enable -Wno-format by default when using gcc on mingw since many
+ # GCC versions complain about %I64.
+ build_warnings="$build_warnings -Wno-format" ;;
+ *-*-solaris*)
+ # Solaris 11.4 <python2.7/ceval.h> uses #pragma no_inline that GCC
+ # doesn't understand.
+ build_warnings="$build_warnings -Wno-unknown-pragmas"
+ # Solaris 11 <unistd.h> marks vfork deprecated.
+ build_warnings="$build_warnings -Wno-deprecated-declarations" ;;
+ *)
+ # Note that gcc requires -Wformat for -Wformat-nonliteral to work,
+ # but there's a special case for this below.
+ build_warnings="$build_warnings -Wformat-nonliteral" ;;
esac
AC_ARG_ENABLE(build-warnings,
@@ -91,11 +100,27 @@ then
# Separate out the -Werror flag as some files just cannot be
# compiled with it enabled.
for w in ${build_warnings}; do
+ # GCC does not complain about -Wno-unknown-warning. Invert
+ # and test -Wunknown-warning instead.
+ case $w in
+ -Wno-*)
+ wtest=`echo $w | sed 's/-Wno-/-W/g'` ;;
+ -Wformat-nonliteral)
+ # gcc requires -Wformat before -Wformat-nonliteral
+ # will work, so stick them together.
+ w="-Wformat $w"
+ wtest="$w"
+ ;;
+ *)
+ wtest=$w ;;
+ esac
+
case $w in
-Werr*) WERROR_CFLAGS=-Werror ;;
- *) # Check that GCC accepts it
+ *)
+ # Check whether GCC accepts it.
saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror $w"
+ CFLAGS="$CFLAGS -Werror $wtest"
AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
CFLAGS="$saved_CFLAGS"
esac