From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11909 invoked by alias); 16 Nov 2007 23:29:57 -0000 Received: (qmail 11901 invoked by uid 22791); 16 Nov 2007 23:29:56 -0000 X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO brahms.sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 16 Nov 2007 23:29:52 +0000 Received: from brahms.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by brahms.sibelius.xs4all.nl (8.14.1/8.14.0) with ESMTP id lAGNTkQ6030592; Sat, 17 Nov 2007 00:29:46 +0100 (CET) Received: (from kettenis@localhost) by brahms.sibelius.xs4all.nl (8.14.1/8.14.1/Submit) id lAGNTjPW014943; Sat, 17 Nov 2007 00:29:45 +0100 (CET) Date: Fri, 16 Nov 2007 23:29:00 -0000 Message-Id: <200711162329.lAGNTjPW014943@brahms.sibelius.xs4all.nl> From: Mark Kettenis To: uweigand@de.ibm.com CC: gdb-patches@sourceware.org In-reply-to: <200711150105.lAF15dkN020840@d12av02.megacenter.de.ibm.com> (uweigand@de.ibm.com) Subject: Re: [ping] Re: [rfc] [7/9] Multi-target support: Fix GDB_OSABI_OPENBSD_AOUT problem References: <200711150105.lAF15dkN020840@d12av02.megacenter.de.ibm.com> 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 X-SW-Source: 2007-11/txt/msg00345.txt.bz2 > Date: Thu, 15 Nov 2007 02:05:39 +0100 (CET) > From: "Ulrich Weigand" > > Mark Kettenis wrote: > > > Sorry; I didn't have the time to test this diff until now. > > Unfortunately it breaks OpenBSD/i386. The problem is that > > OpenBSD/i386 still uses a core file format that's classified as NetBSD > > a.out. NetBSD doesn't use this format anymore, so I think the > > solution is to sacrifice NetBSD/i386 a.out instead of OpenBSD/i386 > > a.out. > > I see; that would work for me as well. Something like the > following patch? Works for me on OpenBSD/i386. > ChangeLog: > > * i386nbsd-tdep.c (i386nbsd_aout_supply_regset): Remove. > (i386nbsd_aout_regset_from_core_section): Likewise. > (i386nbsd_aout_init_abi): Likewise. > (_initialize_i386nbsd_tdep): Do not register i386nbsd_aout_init_abi. > > * vaxnbsd-tdep.c (vaxnbsd_aout_init_abi): Remove. > (_initialize_vaxnbsd_tdep): Do not register vaxnbsd_aout_init_abi. > > > diff -urNp gdb-orig/gdb/i386nbsd-tdep.c gdb-head/gdb/i386nbsd-tdep.c > --- gdb-orig/gdb/i386nbsd-tdep.c 2007-10-30 20:05:37.000000000 +0100 > +++ gdb-head/gdb/i386nbsd-tdep.c 2007-11-15 00:38:14.504963834 +0100 > @@ -56,41 +56,6 @@ static int i386nbsd_r_reg_offset[] = > 15 * 4 /* %gs */ > }; > > -static void > -i386nbsd_aout_supply_regset (const struct regset *regset, > - struct regcache *regcache, int regnum, > - const void *regs, size_t len) > -{ > - const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); > - > - gdb_assert (len >= tdep->sizeof_gregset + I387_SIZEOF_FSAVE); > - > - i386_supply_gregset (regset, regcache, regnum, regs, tdep->sizeof_gregset); > - i387_supply_fsave (regcache, regnum, (char *) regs + tdep->sizeof_gregset); > -} > - > -static const struct regset * > -i386nbsd_aout_regset_from_core_section (struct gdbarch *gdbarch, > - const char *sect_name, > - size_t sect_size) > -{ > - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > - > - /* NetBSD a.out core dumps don't use seperate register sets for the > - general-purpose and floating-point registers. */ > - > - if (strcmp (sect_name, ".reg") == 0 > - && sect_size >= tdep->sizeof_gregset + I387_SIZEOF_FSAVE) > - { > - if (tdep->gregset == NULL) > - tdep->gregset = > - regset_alloc (gdbarch, i386nbsd_aout_supply_regset, NULL); > - return tdep->gregset; > - } > - > - return NULL; > -} > - > /* Under NetBSD/i386, signal handler invocations can be identified by the > designated code sequence that is used to return from a signal handler. > In particular, the return address of a signal handler points to the > @@ -242,18 +207,6 @@ i386nbsd_init_abi (struct gdbarch_info i > tdep->sc_num_regs = ARRAY_SIZE (i386nbsd_sc_reg_offset); > } > > -/* NetBSD a.out. */ > - > -static void > -i386nbsdaout_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) > -{ > - i386nbsd_init_abi (info, gdbarch); > - > - /* NetBSD a.out has a single register set. */ > - set_gdbarch_regset_from_core_section > - (gdbarch, i386nbsd_aout_regset_from_core_section); > -} > - > /* NetBSD ELF. */ > > static void > @@ -278,8 +231,6 @@ i386nbsdelf_init_abi (struct gdbarch_inf > void > _initialize_i386nbsd_tdep (void) > { > - gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_NETBSD_AOUT, > - i386nbsdaout_init_abi); > gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_NETBSD_ELF, > i386nbsdelf_init_abi); > } > diff -urNp gdb-orig/gdb/vaxnbsd-tdep.c gdb-head/gdb/vaxnbsd-tdep.c > --- gdb-orig/gdb/vaxnbsd-tdep.c 2007-10-30 20:28:29.000000000 +0100 > +++ gdb-head/gdb/vaxnbsd-tdep.c 2007-11-15 00:37:04.223382898 +0100 > @@ -26,13 +26,6 @@ > > #include "gdb_string.h" > > -/* NetBSD a.out. */ > - > -static void > -vaxnbsd_aout_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) > -{ > -} > - > /* NetBSD ELF. */ > > static void > @@ -50,8 +43,6 @@ void _initialize_vaxnbsd_tdep (void); > void > _initialize_vaxnbsd_tdep (void) > { > - gdbarch_register_osabi (bfd_arch_vax, 0, GDB_OSABI_NETBSD_AOUT, > - vaxnbsd_aout_init_abi); > gdbarch_register_osabi (bfd_arch_vax, 0, GDB_OSABI_NETBSD_ELF, > vaxnbsd_elf_init_abi); > } > > -- > Dr. Ulrich Weigand > GNU Toolchain for Linux on System z and Cell BE > Ulrich.Weigand@de.ibm.com >