From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23566 invoked by alias); 12 Aug 2013 03:51:34 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 23549 invoked by uid 89); 12 Aug 2013 03:51:33 -0000 X-Spam-SWARE-Status: No, score=-4.4 required=5.0 tests=AWL,BAYES_00,KAM_STOCKTIP,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 12 Aug 2013 03:51:32 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r7C3pUIk025778 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 11 Aug 2013 23:51:30 -0400 Received: from psique (ovpn-113-52.phx2.redhat.com [10.3.113.52]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r7C3pQ3Y013425 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Sun, 11 Aug 2013 23:51:27 -0400 From: Sergio Durigan Junior To: Joern Rennecke Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 0/7] Implement gdbarch_gdb_signal_{to,from}_target References: <20130810214926.eqls003q8gg44sso-nzlynne@webmail.spamcop.net> X-URL: http://www.redhat.com Date: Mon, 12 Aug 2013 03:51:00 -0000 In-Reply-To: <20130810214926.eqls003q8gg44sso-nzlynne@webmail.spamcop.net> (Joern Rennecke's message of "Sat, 10 Aug 2013 21:49:26 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-08/txt/msg00290.txt.bz2 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 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 , - 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 , - 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; }