aboutsummaryrefslogtreecommitdiff
path: root/sim/microblaze
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-03-16 02:26:48 -0400
committerMike Frysinger <vapier@gentoo.org>2015-03-16 03:15:31 -0400
commitfeb703b3f4d3cb21ab50905359df7123e131a7dc (patch)
tree1d0b284f9aaa1fda4e713b71ba114fa4ff120bb4 /sim/microblaze
parent6cd5ace4db98987881c71e33dcae418fd258c38d (diff)
downloadgdb-feb703b3f4d3cb21ab50905359df7123e131a7dc.zip
gdb-feb703b3f4d3cb21ab50905359df7123e131a7dc.tar.gz
gdb-feb703b3f4d3cb21ab50905359df7123e131a7dc.tar.bz2
sim: mcore/microblaze: clean up a bit
Fix some various warnings and enable the extra warnings options.
Diffstat (limited to 'sim/microblaze')
-rw-r--r--sim/microblaze/ChangeLog12
-rwxr-xr-xsim/microblaze/configure115
-rw-r--r--sim/microblaze/configure.ac2
-rw-r--r--sim/microblaze/interp.c149
4 files changed, 132 insertions, 146 deletions
diff --git a/sim/microblaze/ChangeLog b/sim/microblaze/ChangeLog
index 2c41a76..ced2b9a 100644
--- a/sim/microblaze/ChangeLog
+++ b/sim/microblaze/ChangeLog
@@ -1,5 +1,17 @@
2015-03-16 Mike Frysinger <vapier@gentoo.org>
+ * configure.ac: Call SIM_AC_OPTION_WARNINGS.
+ * confingure: Regenerate.
+ * interp.c: Include run-sim.h.
+ (microblaze_extract_unsigned_integer): Mark static.
+ (microblaze_store_unsigned_integer): Likewise.
+ (int_sbrk, SEXTB, SEXTW, IOMEM): Delete.
+ (init_pointers, set_initial_gprs): Add (void) to prototype.
+ (opened, log_open, log_close, is_opened, handle_trap1, process_stub,
+ util, iu_carry): Delete.
+
+2015-03-16 Mike Frysinger <vapier@gentoo.org>
+
* config.in, configure: Regenerate.
2015-03-14 Mike Frysinger <vapier@gentoo.org>
diff --git a/sim/microblaze/configure b/sim/microblaze/configure
index fa26277..c7e82ec 100755
--- a/sim/microblaze/configure
+++ b/sim/microblaze/configure
@@ -759,6 +759,9 @@ enable_sim_trace
enable_sim_profile
with_pkgversion
with_bugurl
+enable_werror
+enable_build_warnings
+enable_sim_build_warnings
'
ac_precious_vars='build_alias
host_alias
@@ -1401,6 +1404,11 @@ Optional Features:
--enable-sim-stdio Specify whether to use stdio for console input/output.
--enable-sim-trace=opts Enable tracing flags
--enable-sim-profile=opts Enable profiling flags
+ --enable-werror treat compile warnings as errors
+ --enable-build-warnings enable build-time compiler warnings if gcc is used
+ --enable-sim-build-warnings
+ enable SIM specific build-time compiler warnings if
+ gcc is used
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -12354,7 +12362,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12357 "configure"
+#line 12365 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12460,7 +12468,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12463 "configure"
+#line 12471 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12951,6 +12959,109 @@ sim_link_links="${sim_link_links} targ-vals.def"
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+ enableval=$enable_werror; case "${enableval}" in
+ yes | y) ERROR_ON_WARNING="yes" ;;
+ no | n) ERROR_ON_WARNING="no" ;;
+ *) as_fn_error "bad value ${enableval} for --enable-werror" "$LINENO" 5 ;;
+ esac
+fi
+
+
+# Enable -Werror by default when using gcc
+if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
+ ERROR_ON_WARNING=yes
+fi
+
+WERROR_CFLAGS=""
+if test "${ERROR_ON_WARNING}" = yes ; then
+# NOTE: Disabled in the sim dir due to most sims generating warnings.
+# WERROR_CFLAGS="-Werror"
+ true
+fi
+
+build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
+-Wpointer-sign \
+-Wno-unused -Wunused-value -Wunused-function \
+-Wno-switch -Wno-char-subscripts -Wmissing-prototypes
+-Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \
+-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" ;;
+esac
+
+# Check whether --enable-build-warnings was given.
+if test "${enable_build_warnings+set}" = set; then :
+ enableval=$enable_build_warnings; case "${enableval}" in
+ yes) ;;
+ no) build_warnings="-w";;
+ ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${build_warnings} ${t}";;
+ *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${t} ${build_warnings}";;
+ *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
+esac
+if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
+ echo "Setting compiler warning flags = $build_warnings" 6>&1
+fi
+fi
+# Check whether --enable-sim-build-warnings was given.
+if test "${enable_sim_build_warnings+set}" = set; then :
+ enableval=$enable_sim_build_warnings; case "${enableval}" in
+ yes) ;;
+ no) build_warnings="-w";;
+ ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${build_warnings} ${t}";;
+ *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${t} ${build_warnings}";;
+ *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
+esac
+if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
+ echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
+fi
+fi
+WARN_CFLAGS=""
+if test "x${build_warnings}" != x -a "x$GCC" = xyes
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler warning flags" >&5
+$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
+ case $w in
+ -Werr*) WERROR_CFLAGS=-Werror ;;
+ *) # Check that GCC accepts it
+ saved_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $w"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ WARN_CFLAGS="${WARN_CFLAGS} $w"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$saved_CFLAGS"
+ esac
+ done
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WARN_CFLAGS} ${WERROR_CFLAGS}" >&5
+$as_echo "${WARN_CFLAGS} ${WERROR_CFLAGS}" >&6; }
+fi
+
+
+
ac_sources="$sim_link_files"
ac_dests="$sim_link_links"
while test -n "$ac_sources"; do
diff --git a/sim/microblaze/configure.ac b/sim/microblaze/configure.ac
index 799a5df..0daa1af 100644
--- a/sim/microblaze/configure.ac
+++ b/sim/microblaze/configure.ac
@@ -5,4 +5,6 @@ sinclude(../common/acinclude.m4)
SIM_AC_COMMON
+SIM_AC_OPTION_WARNINGS
+
SIM_AC_OUTPUT
diff --git a/sim/microblaze/interp.c b/sim/microblaze/interp.c
index ac2adb8..b986c15 100644
--- a/sim/microblaze/interp.c
+++ b/sim/microblaze/interp.c
@@ -27,6 +27,7 @@
#include "gdb/callback.h"
#include "libiberty.h"
#include "gdb/remote-sim.h"
+#include "run-sim.h"
#include "sim-main.h"
#include "sim-utils.h"
#include "microblaze-dis.h"
@@ -41,7 +42,7 @@ static unsigned long heap_ptr = 0;
static unsigned long stack_ptr = 0;
host_callback *callback;
-unsigned long
+static unsigned long
microblaze_extract_unsigned_integer (unsigned char *addr, int len)
{
unsigned long retval;
@@ -71,7 +72,7 @@ microblaze_extract_unsigned_integer (unsigned char *addr, int len)
return retval;
}
-void
+static void
microblaze_store_unsigned_integer (unsigned char *addr, int len,
unsigned long val)
{
@@ -106,21 +107,6 @@ static char *myname;
static int issue_messages = 0;
-long
-int_sbrk (int inc_bytes)
-{
- long addr;
-
- addr = heap_ptr;
-
- heap_ptr += inc_bytes;
-
- if (issue_messages && heap_ptr > SP)
- fprintf (stderr, "Warning: heap_ptr overlaps stack!\n");
-
- return addr;
-}
-
static void /* INLINE */
wbat (word x, word v)
{
@@ -298,15 +284,6 @@ rhat (word x)
}
}
-
-#define SEXTB(x) (((x & 0xff) ^ (~ 0x7f)) + 0x80)
-#define SEXTW(y) ((int)((short)y))
-
-static int
-IOMEM (int addr, int write, int value)
-{
-}
-
/* Default to a 8 Mbyte (== 2^23) memory space. */
static int sim_memory_size = 1 << 23;
@@ -335,14 +312,14 @@ sim_size (int size)
}
static void
-init_pointers ()
+init_pointers (void)
{
if (CPU.msize != (sim_memory_size))
sim_size (sim_memory_size);
}
static void
-set_initial_gprs ()
+set_initial_gprs (void)
{
int i;
long space;
@@ -366,122 +343,6 @@ set_initial_gprs ()
CPU.insts = 0;
CPU.cycles = 0;
CPU.imm_enable = 0;
-
-}
-
-/* Functions so that trapped open/close don't interfere with the
- parent's functions. We say that we can't close the descriptors
- that we didn't open. exit() and cleanup() get in trouble here,
- to some extent. That's the price of emulation. */
-
-unsigned char opened[100];
-
-static void
-log_open (int fd)
-{
- if (fd < 0 || fd > NUM_ELEM (opened))
- return;
-
- opened[fd] = 1;
-}
-
-static void
-log_close (int fd)
-{
- if (fd < 0 || fd > NUM_ELEM (opened))
- return;
-
- opened[fd] = 0;
-}
-
-static int
-is_opened (int fd)
-{
- if (fd < 0 || fd > NUM_ELEM (opened))
- return 0;
-
- return opened[fd];
-}
-
-static void
-handle_trap1 ()
-{
-}
-
-static void
-process_stub (int what)
-{
- /* These values should match those in libgloss/microblaze/syscalls.s. */
- switch (what)
- {
- case 3: /* _read */
- case 4: /* _write */
- case 5: /* _open */
- case 6: /* _close */
- case 10: /* _unlink */
- case 19: /* _lseek */
- case 43: /* _times */
- handle_trap1 ();
- break;
-
- default:
- if (issue_messages)
- fprintf (stderr, "Unhandled stub opcode: %d\n", what);
- break;
- }
-}
-
-static void
-util (unsigned what)
-{
- switch (what)
- {
- case 0: /* exit */
- CPU.exception = SIGQUIT;
- break;
-
- case 1: /* printf */
- {
- unsigned long a[6];
- unsigned char *s;
- int i;
-
- for (s = (unsigned char *)a[0], i = 1 ; *s && i < 6 ; s++)
- if (*s == '%')
- i++;
- }
- break;
-
- case 2: /* scanf */
- if (issue_messages)
- fprintf (stderr, "WARNING: scanf unimplemented\n");
- break;
-
- case 3: /* utime */
- break;
-
- case 0xFF:
- process_stub (CPU.regs[1]);
- break;
-
- default:
- if (issue_messages)
- fprintf (stderr, "Unhandled util code: %x\n", what);
- break;
- }
-}
-
-/* For figuring out whether we carried; addc/subc use this. */
-static int
-iu_carry (unsigned long a, unsigned long b, int cin)
-{
- unsigned long x;
-
- x = (a & 0xffff) + (b & 0xffff) + cin;
- x = (x >> 16) + (a >> 16) + (b >> 16);
- x >>= 16;
-
- return (x != 0);
}
#define WATCHFUNCTIONS 1