Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Sergio Durigan Junior <sergiodj@redhat.com>
To: Joern Rennecke <joern.rennecke@embecosm.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 0/7] Implement gdbarch_gdb_signal_{to,from}_target
Date: Mon, 12 Aug 2013 03:51:00 -0000	[thread overview]
Message-ID: <m3a9kny3b6.fsf@redhat.com> (raw)
In-Reply-To: <20130810214926.eqls003q8gg44sso-nzlynne@webmail.spamcop.net>	(Joern Rennecke's message of "Sat, 10 Aug 2013 21:49:26 -0400")

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;
 }
 


  reply	other threads:[~2013-08-12  3:51 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-11  1:49 Joern Rennecke
2013-08-12  3:51 ` Sergio Durigan Junior [this message]
2013-08-12  8:48   ` Joern Rennecke
2013-08-12 11:07   ` Pedro Alves
  -- strict thread matches above, loose matches on Subject: below --
2013-07-26 20:13 Sergio Durigan Junior
2013-07-27 17:57 ` Doug Evans
2013-08-07 20:54   ` Sergio Durigan Junior
2013-07-29 16:43 ` Pedro Alves
2013-08-09 16:56 ` Sergio Durigan Junior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3a9kny3b6.fsf@redhat.com \
    --to=sergiodj@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=joern.rennecke@embecosm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox