Re: Mingw GDB build fails for M16C target

Kevin Buettner
2009-04-28T22:57:41Z

[Note: Reply-to has been set to gdb-patches.]

On Sat, 25 Apr 2009 11:05:25 +0530
Mahesh Basavaraj Shavari <Mahesh.Shavari@kpitcummins.com> wrote:

> /home/mahesh/GDB/gdb-6.8/gdb-6.8.50.20080811/sim/m32c/gdb-if.c:541:
> error: `SIGTRAP' undeclared (first use in this function)

Mahesh,

Please try the patch below and let me know if it works for you.

Jim,

It appears to me that comment, "Oddly, the gdb/sim interface uses host
signal numbers...", isn't true. My patch deletes this comment in
addition to using TARGET_SIGNAL_foo instead of SIGfoo. If you look at
remote-sim.c, you'll see that `enum target_signal' (which defines the
various TARGET_SIGNAL_foo constants) is used throughout the file.

Okay to apply?

Kevin

* m32c/gdb-if.c (m32c_signal_to_host): Rename to
m32c_signal_to_target. Change signal return values from SIGILL,
SIGTRAP, SIGSEGV, etc. to TARGET_SIGNAL_ILL, TARGET_SIGNAL_TRAP,
TARGET_SIGNAL_SEGV, etc. Fix all callers.

Index: m32c/gdb-if.c
===================================================================
RCS file: /cvs/src/src/sim/m32c/gdb-if.c,v
retrieving revision 1.7
diff -u -p -r1.7 gdb-if.c
--- m32c/gdb-if.c 14 Jan 2009 10:53:07 -0000 1.7
+++ m32c/gdb-if.c 28 Apr 2009 22:38:44 -0000
@@ -523,52 +523,35 @@ int siggnal;

/* Given a signal number used by the M32C bsp (that is, newlib),
- return a host signal number. (Oddly, the gdb/sim interface uses
- host signal numbers...) */
+ return a target signal number used by GDB. */
int
-m32c_signal_to_host (int m32c)
+m32c_signal_to_target (int m32c)
{
switch (m32c)
{
case 4:
-#ifdef SIGILL
- return SIGILL;
-#else
- return SIGSEGV;
-#endif
+ return TARGET_SIGNAL_ILL;

case 5:
- return SIGTRAP;
+ return TARGET_SIGNAL_TRAP;

case 10:
-#ifdef SIGBUS
- return SIGBUS;
-#else
- return SIGSEGV;
-#endif
+ return TARGET_SIGNAL_BUS;

case 11:
- return SIGSEGV;
+ return TARGET_SIGNAL_SEGV;

case 24:
-#ifdef SIGXCPU
- return SIGXCPU;
-#else
- break;
-#endif
+ return TARGET_SIGNAL_XCPU;

case 2:
- return SIGINT;
+ return TARGET_SIGNAL_INT;

case 8:
-#ifdef SIGFPE
- return SIGFPE;
-#else
- break;
-#endif
+ return TARGET_SIGNAL_FPE;

case 6:
- return SIGABRT;
+ return TARGET_SIGNAL_ABRT;
}

return 0;
@@ -588,7 +571,7 @@ handle_step (int rc)
else if (M32C_STOPPED (rc))
{
reason = sim_stopped;
- siggnal = m32c_signal_to_host (M32C_STOP_SIG (rc));
+ siggnal = m32c_signal_to_target (M32C_STOP_SIG (rc));
}
else
{