From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2607:f138:0:13::2]) by sourceware.org (Postfix) with ESMTPS id 53D853848406 for ; Wed, 14 Jul 2021 14:07:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 53D853848406 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=FreeBSD.org Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=FreeBSD.org Received: from gimli.baldwin.cx (d-24-233-223-154.va.cpe.atlanticbb.net [24.233.223.154]) by mail.baldwin.cx (Postfix) with ESMTPSA id 332BC1A84BF2 for ; Wed, 14 Jul 2021 10:07:46 -0400 (EDT) From: John Baldwin To: gdb-patches@sourceware.org Subject: [PATCH 1/8] Remove vestigal FreeBSD/i386 3.x support. Date: Wed, 14 Jul 2021 07:07:34 -0700 Message-Id: <20210714140741.6460-2-jhb@FreeBSD.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210714140741.6460-1-jhb@FreeBSD.org> References: <20210714140741.6460-1-jhb@FreeBSD.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.4 (mail.baldwin.cx [0.0.0.0]); Wed, 14 Jul 2021 10:07:46 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.103.1 at mail.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_STATUS, KHOP_HELO_FCRDNS, SPF_HELO_PASS, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jul 2021 14:07:49 -0000 This was orphaned when a.out support was removed as the FreeBSD/i386 ELF support always used the register layouts from 4.0+. --- gdb/i386-bsd-nat.c | 4 +- gdb/i386-fbsd-tdep.c | 117 ++++++++++++------------------------------- gdb/i386-tdep.h | 1 - 3 files changed, 32 insertions(+), 90 deletions(-) diff --git a/gdb/i386-bsd-nat.c b/gdb/i386-bsd-nat.c index a7c55284e0..1fad6c5d48 100644 --- a/gdb/i386-bsd-nat.c +++ b/gdb/i386-bsd-nat.c @@ -350,9 +350,7 @@ _initialize_i386bsd_nat () system header files and sysctl(3) to get at the relevant information. */ -#if defined (__FreeBSD_version) && __FreeBSD_version >= 400011 -#define SC_REG_OFFSET i386fbsd4_sc_reg_offset -#elif defined (__FreeBSD_version) && __FreeBSD_version >= 300005 +#if defined (__FreeBSD_version) #define SC_REG_OFFSET i386fbsd_sc_reg_offset #elif defined (OpenBSD) #define SC_REG_OFFSET i386obsd_sc_reg_offset diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c index 103972490c..3e2b8a322b 100644 --- a/gdb/i386-fbsd-tdep.c +++ b/gdb/i386-fbsd-tdep.c @@ -186,17 +186,15 @@ i386fbsd_sigtramp_p (struct frame_info *this_frame) return 1; } -/* FreeBSD 3.0-RELEASE or later. */ - /* From . */ static int i386fbsd_r_reg_offset[] = { - 9 * 4, 8 * 4, 7 * 4, 6 * 4, /* %eax, %ecx, %edx, %ebx */ - 15 * 4, 4 * 4, /* %esp, %ebp */ - 3 * 4, 2 * 4, /* %esi, %edi */ - 12 * 4, 14 * 4, /* %eip, %eflags */ - 13 * 4, 16 * 4, /* %cs, %ss */ - 1 * 4, 0 * 4, -1, -1 /* %ds, %es, %fs, %gs */ + 10 * 4, 9 * 4, 8 * 4, 7 * 4, /* %eax, %ecx, %edx, %ebx */ + 16 * 4, 5 * 4, /* %esp, %ebp */ + 4 * 4, 3 * 4, /* %esi, %edi */ + 13 * 4, 15 * 4, /* %eip, %eflags */ + 14 * 4, 17 * 4, /* %cs, %ss */ + 2 * 4, 1 * 4, 0 * 4, 18 * 4 /* %ds, %es, %fs, %gs */ }; /* Sigtramp routine location. */ @@ -206,22 +204,22 @@ CORE_ADDR i386fbsd_sigtramp_end_addr; /* From . */ int i386fbsd_sc_reg_offset[] = { - 8 + 14 * 4, /* %eax */ - 8 + 13 * 4, /* %ecx */ - 8 + 12 * 4, /* %edx */ - 8 + 11 * 4, /* %ebx */ - 8 + 0 * 4, /* %esp */ - 8 + 1 * 4, /* %ebp */ - 8 + 10 * 4, /* %esi */ - 8 + 9 * 4, /* %edi */ - 8 + 3 * 4, /* %eip */ - 8 + 4 * 4, /* %eflags */ - 8 + 7 * 4, /* %cs */ - 8 + 8 * 4, /* %ss */ - 8 + 6 * 4, /* %ds */ - 8 + 5 * 4, /* %es */ - 8 + 15 * 4, /* %fs */ - 8 + 16 * 4 /* %gs */ + 20 + 11 * 4, /* %eax */ + 20 + 10 * 4, /* %ecx */ + 20 + 9 * 4, /* %edx */ + 20 + 8 * 4, /* %ebx */ + 20 + 17 * 4, /* %esp */ + 20 + 6 * 4, /* %ebp */ + 20 + 5 * 4, /* %esi */ + 20 + 4 * 4, /* %edi */ + 20 + 14 * 4, /* %eip */ + 20 + 16 * 4, /* %eflags */ + 20 + 15 * 4, /* %cs */ + 20 + 18 * 4, /* %ss */ + 20 + 3 * 4, /* %ds */ + 20 + 2 * 4, /* %es */ + 20 + 1 * 4, /* %fs */ + 20 + 0 * 4 /* %gs */ }; /* Get XSAVE extended state xcr0 from core dump. */ @@ -351,6 +349,9 @@ i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + /* Generic FreeBSD support. */ + fbsd_init_abi (info, gdbarch); + /* Obviously FreeBSD is BSD-based. */ i386bsd_init_abi (info, gdbarch); @@ -358,7 +359,7 @@ i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) its FPU emulator in `struct fpreg'. */ tdep->gregset_reg_offset = i386fbsd_r_reg_offset; tdep->gregset_num_regs = ARRAY_SIZE (i386fbsd_r_reg_offset); - tdep->sizeof_gregset = 18 * 4; + tdep->sizeof_gregset = 19 * 4; tdep->sizeof_fpregset = 176; /* FreeBSD uses -freg-struct-return by default. */ @@ -376,66 +377,6 @@ i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) i386_elf_init_abi (info, gdbarch); - /* FreeBSD uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); -} - -/* FreeBSD 4.0-RELEASE or later. */ - -/* From . */ -static int i386fbsd4_r_reg_offset[] = -{ - 10 * 4, 9 * 4, 8 * 4, 7 * 4, /* %eax, %ecx, %edx, %ebx */ - 16 * 4, 5 * 4, /* %esp, %ebp */ - 4 * 4, 3 * 4, /* %esi, %edi */ - 13 * 4, 15 * 4, /* %eip, %eflags */ - 14 * 4, 17 * 4, /* %cs, %ss */ - 2 * 4, 1 * 4, 0 * 4, 18 * 4 /* %ds, %es, %fs, %gs */ -}; - -/* From . */ -int i386fbsd4_sc_reg_offset[] = -{ - 20 + 11 * 4, /* %eax */ - 20 + 10 * 4, /* %ecx */ - 20 + 9 * 4, /* %edx */ - 20 + 8 * 4, /* %ebx */ - 20 + 17 * 4, /* %esp */ - 20 + 6 * 4, /* %ebp */ - 20 + 5 * 4, /* %esi */ - 20 + 4 * 4, /* %edi */ - 20 + 14 * 4, /* %eip */ - 20 + 16 * 4, /* %eflags */ - 20 + 15 * 4, /* %cs */ - 20 + 18 * 4, /* %ss */ - 20 + 3 * 4, /* %ds */ - 20 + 2 * 4, /* %es */ - 20 + 1 * 4, /* %fs */ - 20 + 0 * 4 /* %gs */ -}; - -static void -i386fbsd4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) -{ - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - - /* Generic FreeBSD support. */ - fbsd_init_abi (info, gdbarch); - - /* Inherit stuff from older releases. We assume that FreeBSD - 4.0-RELEASE always uses ELF. */ - i386fbsd_init_abi (info, gdbarch); - - /* FreeBSD 4.0 introduced a new `struct reg'. */ - tdep->gregset_reg_offset = i386fbsd4_r_reg_offset; - tdep->gregset_num_regs = ARRAY_SIZE (i386fbsd4_r_reg_offset); - tdep->sizeof_gregset = 19 * 4; - - /* FreeBSD 4.0 introduced a new `struct sigcontext'. */ - tdep->sc_reg_offset = i386fbsd4_sc_reg_offset; - tdep->sc_num_regs = ARRAY_SIZE (i386fbsd4_sc_reg_offset); - tdep->xsave_xcr0_offset = I386_FBSD_XSAVE_XCR0_OFFSET; /* Iterate over core file register note sections. */ @@ -445,6 +386,10 @@ i386fbsd4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_core_read_description (gdbarch, i386fbsd_core_read_description); + /* FreeBSD uses SVR4-style shared libraries. */ + set_solib_svr4_fetch_link_map_offsets + (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_gdbarch_fetch_tls_load_module_address (gdbarch, svr4_fetch_objfile_link_map); set_gdbarch_get_thread_local_address (gdbarch, @@ -456,5 +401,5 @@ void _initialize_i386fbsd_tdep () { gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_FREEBSD, - i386fbsd4_init_abi); + i386fbsd_init_abi); } diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h index ee7655e986..4c45a9a75d 100644 --- a/gdb/i386-tdep.h +++ b/gdb/i386-tdep.h @@ -476,7 +476,6 @@ extern CORE_ADDR i386fbsd_sigtramp_start_addr; extern CORE_ADDR i386fbsd_sigtramp_end_addr; extern CORE_ADDR i386obsd_sigtramp_start_addr; extern CORE_ADDR i386obsd_sigtramp_end_addr; -extern int i386fbsd4_sc_reg_offset[]; extern int i386fbsd_sc_reg_offset[]; extern int i386obsd_sc_reg_offset[]; extern int i386bsd_sc_reg_offset[]; -- 2.31.1