sim: ppc: align format string settings with common code
authorMike Frysinger <vapier@gentoo.org>
Thu, 9 Sep 2021 00:58:03 +0000 (20:58 -0400)
committerMike Frysinger <vapier@gentoo.org>
Thu, 9 Sep 2021 01:02:25 +0000 (21:02 -0400)
This copies logic used in the common sim warning configure code to fix
build errors for mingw targets.  Turning format warnings on triggers
a failure in the debug.c file, so apply a minor fix at the same time.

sim/ppc/configure
sim/ppc/configure.ac
sim/ppc/debug.c

index 0bab1af813987a1a74dd4a096790fd2b55e96351..2cb7ccdb86a724c934409a05654e9385889b60dd 100755 (executable)
@@ -3489,6 +3489,12 @@ sim_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith
 -Wno-pointer-sign
 -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*) sim_warnings="$sim_warnings -Wno-format" ;;
+  *) sim_warnings="$sim_warnings -Wformat-nonliteral" ;;
+esac
 # Check whether --enable-sim-warnings was given.
 if test "${enable_sim_warnings+set}" = set; then :
   enableval=$enable_sim_warnings; case "${enableval}" in
index 42ccda3811a5d1d599fc5bf8ddf3dafc8ad85113..0fa7f4ee221be0efa16c811e64fdce51a0c7dbc3 100644 (file)
@@ -430,6 +430,12 @@ sim_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith
 -Wno-pointer-sign
 -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*) sim_warnings="$sim_warnings -Wno-format" ;;
+  *) sim_warnings="$sim_warnings -Wformat-nonliteral" ;;
+esac
 AC_ARG_ENABLE(sim-warnings,
 [  --enable-sim-warnings=opts          Extra CFLAGS for turning on compiler warnings except for idecode.o, semantics.o and psim.o],
 [case "${enableval}" in
index 53a392a303ef3d866e46f1c6e430d1f8443a89fd..a9b48c3e4ccaed167377a75b3dda2c36f99cb8d9 100644 (file)
@@ -140,7 +140,7 @@ trace_usage(int verbose)
     printf_filtered("\n");
   }
   if (verbose > 1) {
-    const char *format = "\t%-18s%s\n";
+    static const char format[] = "\t%-18s%s\n";
     int i;
     printf_filtered(format, "all", "enable all the trace options");
     for (i = 0; trace_description[i].option < nr_trace_options; i++)