From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19302 invoked by alias); 15 Nov 2007 01:05:45 -0000 Received: (qmail 19292 invoked by uid 22791); 15 Nov 2007 01:05:45 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate5.de.ibm.com (HELO mtagate5.de.ibm.com) (195.212.29.154) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 15 Nov 2007 01:05:42 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate5.de.ibm.com (8.13.8/8.13.8) with ESMTP id lAF15dkX433108 for ; Thu, 15 Nov 2007 01:05:39 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v8.6) with ESMTP id lAF15dx32269280 for ; Thu, 15 Nov 2007 02:05:39 +0100 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id lAF15dlD020843 for ; Thu, 15 Nov 2007 02:05:39 +0100 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id lAF15dkN020840; Thu, 15 Nov 2007 02:05:39 +0100 Message-Id: <200711150105.lAF15dkN020840@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Thu, 15 Nov 2007 02:05:39 +0100 Subject: Re: [ping] Re: [rfc] [7/9] Multi-target support: Fix GDB_OSABI_OPENBSD_AOUT problem To: mark.kettenis@xs4all.nl (Mark Kettenis) Date: Thu, 15 Nov 2007 01:05:00 -0000 From: "Ulrich Weigand" Cc: gdb-patches@sourceware.org In-Reply-To: <200711142221.lAEMLh1I003695@brahms.sibelius.xs4all.nl> from "Mark Kettenis" at Nov 14, 2007 11:21:43 PM X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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/msg00293.txt.bz2 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? Thanks, Ulrich 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