This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 0/7] Implement gdbarch_gdb_signal_{to,from}_target


On Saturday, August 10 2013, Joern Rennecke wrote:

>> I have checked-in the patch.
>
>>  http://sourceware.org/ml/gdb-cvs/2013-08/msg00042.html
>
> This break the build for i686-pc-linux-gnu X avr:
>
> gcc -g -O2      \
>         -o gdb gdb.o avr-tdep.o ser-base.o ser-unix.o ser-pipe.o
> ser-tcp.o  remote.o dcache.o tracepoint.o ax-general.o ax-gdb.o
> remote-fileio.o remote-notif.o ctf.o remote-sim.o cli-dump.o
> cli-decode.o cli-script.o cli-cmds.o cli-setshow.o cli-logging.o
> cli-interp.o cli-utils.o mi-out.o mi-console.o mi-cmds.o
> mi-cmd-catch.o mi-cmd-env.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o
> mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o
> mi-cmd-info.o mi-interp.o mi-main.o mi-parse.o mi-getopt.o
> tui-command.o tui-data.o tui-disasm.o tui-file.o tui-hooks.o
> tui-interp.o tui-io.o tui-layout.o tui-out.o tui-regs.o tui-source.o
> tui-stack.o tui-win.o tui-windata.o tui-wingeneral.o tui-winsource.o
> tui.o python.o py-arch.o py-auto-load.o py-block.o py-bpevent.o
> py-breakpoint.o py-cmd.o py-continueevent.o py-event.o
> py-evtregistry.o py-evts.o py-exitedevent.o py-finishbreakpoint.o
> py-frame.o py-framefilter.o py-function.o py-gdb-readline.o
> py-inferior.o py-infthread.o py-lazy-string.o py-newobjfileevent.o
> py-objfile.o py-param.o py-prettyprint.o py-progspace.o
> py-signalevent.o py-stopevent.o py-symbol.o py-symtab.o
> py-threadevent.o py-type.o py-utils.o py-value.o elfread.o
> stap-probe.o posix-hdep.o c-exp.o cp-name-parser.o ada-exp.o jv-exp.o
> f-exp.o go-exp.o m2-exp.o p-exp.o version.o annotate.o addrmap.o
> auto-load.o auxv.o agent.o bfd-target.o blockframe.o breakpoint.o
> break-catch-sig.o break-catch-throw.o findvar.o regcache.o cleanups.o
> charset.o continuations.o corelow.o disasm.o dummy-frame.o dfp.o
> source.o value.o eval.o valops.o valarith.o valprint.o printcmd.o
> block.o symtab.o psymtab.o symfile.o symmisc.o linespec.o dictionary.o
> infcall.o infcmd.o infrun.o expprint.o environ.o stack.o thread.o
> exceptions.o filesystem.o filestuff.o inf-child.o interps.o
> minidebug.o main.o macrotab.o macrocmd.o macroexp.o macroscope.o
> mi-common.o event-loop.o event-top.o inf-loop.o completer.o gdbarch.o
> arch-utils.o gdbtypes.o gdb_bfd.o gdb_obstack.o osabi.o copying.o
> memattr.o mem-break.o target.o parse.o language.o buildsym.o findcmd.o
> std-regs.o signals.o exec.o reverse.o bcache.o objfiles.o observer.o
> minsyms.o maint.o demangle.o dbxread.o coffread.o coff-pe-read.o
> dwarf2read.o mipsread.o stabsread.o corefile.o dwarf2expr.o
> dwarf2loc.o dwarf2-frame.o dwarf2-frame-tailcall.o ada-lang.o c-lang.o
> d-lang.o f-lang.o objc-lang.o ada-tasks.o ada-varobj.o ui-out.o
> cli-out.o varobj.o vec.o go-lang.o go-valprint.o go-typeprint.o
> jv-lang.o jv-valprint.o jv-typeprint.o m2-lang.o opencl-lang.o
> p-lang.o p-typeprint.o p-valprint.o sentinel-frame.o complaints.o
> typeprint.o ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o
> ada-valprint.o c-valprint.o cp-valprint.o d-valprint.o f-valprint.o
> m2-valprint.o serial.o mdebugread.o top.o utils.o ui-file.o
> user-regs.o frame.o frame-unwind.o doublest.o frame-base.o
> inline-frame.o gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o
> cp-namespace.o reggroups.o regset.o trad-frame.o tramp-frame.o solib.o
> solib-target.o prologue-value.o memory-map.o memrange.o xml-support.o
> xml-syscall.o xml-utils.o target-descriptions.o target-memory.o
> xml-tdesc.o xml-builtin.o inferior.o osdata.o gdb_usleep.o record.o
> record-full.o gcore.o gdb_vecs.o jit.o progspace.o skip.o probe.o
> common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o format.o
> registry.o btrace.o record-btrace.o target-common.o inflow.o    init.o
> \
>           ../sim/avr/libsim.a ../readline/libreadline.a
> ../opcodes/libopcodes.a ../bfd/libbfd.a  ../libiberty/libiberty.a
> ../libdecnumber/libdecnumber.a    -ldl -lncurses -lz -lm    -lpthread
> -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -lexpat
> ../libiberty/libiberty.a  build-gnulib/import/libgnu.a
> avr-tdep.o: In function `avr_linux_gdb_signal_to_target':
> /home/amylaar/atmel/git/bld-avr-gdb/gdb/../../gdb/gdb/avr-tdep.c:1409:
> undefined reference to `linux_gdb_signal_to_target'
> avr-tdep.o: In function `avr_linux_gdb_signal_from_target':
> /home/amylaar/atmel/git/bld-avr-gdb/gdb/../../gdb/gdb/avr-tdep.c:1377:
> undefined reference to `linux_gdb_signal_from_target'
> collect2: error: ld returned 1 exit status
> make[2]: *** [gdb] Error 1

Sorry, but how are you building this?  I'm having trouble reproducing
the failure.  I suppose you're building a GDB for AVR only, which is
probably not building linux-tdep.o, where both
linux_gdb_signal_{to,from}_target functions are defined.

There is no avr-linux-tdep.c, which means that when we're not building
for a Linux target such functions won't be available because
linux-tdep.o won't be built.  I'm not sure how to solve this specific
problem (whether to propose this avr-linux-tdep or to solve this with
#ifdef's).  Opinions are welcome.

For now, I have chosen to revert the patch for AVR.  This is not an
urgent thing, and IMO it's more important to keep the tree buildable.
Meanwhile we can discuss alternatives.

I checked-in the following patch.

  http://sourceware.org/ml/gdb-cvs/2013-08/msg00050.html

Thanks,

-- 
Sergio

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.

diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c
index 6beac3d..fc4e0f0 100644
--- a/gdb/avr-tdep.c
+++ b/gdb/avr-tdep.c
@@ -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;
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]