Because of:

<http://sourceware.org/ml/gdb-patches/2013-08/msg00289.html>

I have chosen to revert the patch applied to the AVR target-dependent code.
Therefore, this patch does just that.  It is better to keep the tree
buildable than to keep this patch in, for now.

2013-08-12  Sergio Durigan Junior  <sergiodj@redhat.com>

	Revert implementation of gdbarch_gdb_signal_{to,from}_target for
	AVR.
	* avr-tdep.c: Remove include of "linux-tdep.h".  Remove enum with
	different signals between the generic Linux kernel implementation
	and AVR's.
	(avr_linux_gdb_signal_from_target): Delete.
	(avr_linux_gdb_signal_to_target): Delete.
	(avr_gdbarch_init): Don't set gdbarch_gdb_signal_{to,from}_target.
This commit is contained in:
Sergio Durigan Junior 2013-08-12 03:50:58 +00:00
parent 6eddc0cf04
commit 959b6a66c5
2 changed files with 11 additions and 73 deletions

View File

@ -1,3 +1,14 @@
2013-08-12 Sergio Durigan Junior <sergiodj@redhat.com>
Revert implementation of gdbarch_gdb_signal_{to,from}_target for
AVR.
* avr-tdep.c: Remove include of "linux-tdep.h". Remove enum with
different signals between the generic Linux kernel implementation
and AVR's.
(avr_linux_gdb_signal_from_target): Delete.
(avr_linux_gdb_signal_to_target): Delete.
(avr_gdbarch_init): Don't set gdbarch_gdb_signal_{to,from}_target.
2013-08-09 Doug Evans <dje@google.com>
* dwarf2read.c (create_addrmap_from_index): Ignore bad address table

View File

@ -36,7 +36,6 @@
#include "regcache.h"
#include "gdb_string.h"
#include "dis-asm.h"
#include "linux-tdep.h"
/* AVR Background:
@ -191,19 +190,6 @@ struct gdbarch_tdep
struct type *pc_type;
};
/* This enum represents the signals' numbers on the AVR
architecture. It just contains the signal definitions which are
different from the generic implementation.
It is derived from the file <arch/avr32/include/uapi/asm/signal.h>,
from the Linux kernel tree. */
enum
{
AVR_LINUX_SIGRTMIN = 32,
AVR_LINUX_SIGRTMAX = 63,
};
/* Lookup the name of a register given it's number. */
static const char *
@ -1355,60 +1341,6 @@ avr_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
return -1;
}
/* Implementation of `gdbarch_gdb_signal_from_target', as defined in
gdbarch.h. */
static enum gdb_signal
avr_linux_gdb_signal_from_target (struct gdbarch *gdbarch, int signal)
{
if (signal >= AVR_LINUX_SIGRTMIN && signal <= AVR_LINUX_SIGRTMAX)
{
int offset = signal - AVR_LINUX_SIGRTMIN;
if (offset == 0)
return GDB_SIGNAL_REALTIME_32;
else
return (enum gdb_signal) (offset - 1
+ (int) GDB_SIGNAL_REALTIME_33);
}
else if (signal > AVR_LINUX_SIGRTMAX)
return GDB_SIGNAL_UNKNOWN;
return linux_gdb_signal_from_target (gdbarch, signal);
}
/* Implementation of `gdbarch_gdb_signal_to_target', as defined in
gdbarch.h. */
static int
avr_linux_gdb_signal_to_target (struct gdbarch *gdbarch,
enum gdb_signal signal)
{
switch (signal)
{
/* GDB_SIGNAL_REALTIME_32 is not continuous in <gdb/signals.def>,
therefore we have to handle it here. */
case GDB_SIGNAL_REALTIME_32:
return AVR_LINUX_SIGRTMIN;
/* GDB_SIGNAL_REALTIME_64 is not valid on AVR. */
case GDB_SIGNAL_REALTIME_64:
return -1;
}
/* GDB_SIGNAL_REALTIME_33 to _63 are continuous.
AVR does not have _64. */
if (signal >= GDB_SIGNAL_REALTIME_33
&& signal <= GDB_SIGNAL_REALTIME_63)
{
int offset = signal - GDB_SIGNAL_REALTIME_33;
return AVR_LINUX_SIGRTMIN + 1 + offset;
}
return linux_gdb_signal_to_target (gdbarch, signal);
}
/* Initialize the gdbarch structure for the AVR's. */
static struct gdbarch *
@ -1512,11 +1444,6 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_unwind_pc (gdbarch, avr_unwind_pc);
set_gdbarch_unwind_sp (gdbarch, avr_unwind_sp);
set_gdbarch_gdb_signal_from_target (gdbarch,
avr_linux_gdb_signal_from_target);
set_gdbarch_gdb_signal_to_target (gdbarch,
avr_linux_gdb_signal_to_target);
return gdbarch;
}