X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fsparc-nbsd-tdep.c;h=3f71d964591ebb4c7bbe87ac83daaca5dce82416;hb=5f4def5cbd12e77075f64a6854fb002f34be8a01;hp=7fa384de649acf4a04fa337d524cba8b375299e6;hpb=03b62bbbce3dc5f15131d9e78f77d035cd1cffb3;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sparc-nbsd-tdep.c b/gdb/sparc-nbsd-tdep.c index 7fa384de64..3f71d96459 100644 --- a/gdb/sparc-nbsd-tdep.c +++ b/gdb/sparc-nbsd-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for NetBSD/sparc. - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems, Inc. This file is part of GDB. @@ -29,6 +29,7 @@ #include "solib-svr4.h" #include "symtab.h" #include "trad-frame.h" +#include "gdbarch.h" #include "sparc-tdep.h" #include "nbsd-tdep.h" @@ -290,7 +291,7 @@ static const struct regset sparc32nbsd_fpregset = NULL, sparc32nbsd_supply_fpregset, NULL }; -static void +void sparc32nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); @@ -309,70 +310,14 @@ sparc32nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->step_trap = sparcnbsd_step_trap; frame_unwind_append_unwinder (gdbarch, &sparc32nbsd_sigcontext_frame_unwind); -} - -static void -sparc32nbsd_aout_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) -{ - sparc32nbsd_init_abi (info, gdbarch); -} - -void -sparc32nbsd_elf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) -{ - sparc32nbsd_init_abi (info, gdbarch); set_solib_svr4_fetch_link_map_offsets (gdbarch, svr4_ilp32_fetch_link_map_offsets); } -static enum gdb_osabi -sparcnbsd_aout_osabi_sniffer (bfd *abfd) -{ - if (strcmp (bfd_get_target (abfd), "a.out-sparc-netbsd") == 0) - return GDB_OSABI_NETBSD_AOUT; - - return GDB_OSABI_UNKNOWN; -} - -/* OpenBSD uses the traditional NetBSD core file format, even for - ports that use ELF. Therefore, if the default OS ABI is OpenBSD - ELF, we return that instead of NetBSD a.out. This is mainly for - the benfit of OpenBSD/sparc64, which inherits the sniffer below - since we include this file for an OpenBSD/sparc64 target. For - OpenBSD/sparc, the NetBSD a.out OS ABI is probably similar enough - to both the OpenBSD a.out and the OpenBSD ELF OS ABI. */ -#if defined (GDB_OSABI_DEFAULT) && (GDB_OSABI_DEFAULT == GDB_OSABI_OPENBSD_ELF) -#define GDB_OSABI_NETBSD_CORE GDB_OSABI_OPENBSD_ELF -#else -#define GDB_OSABI_NETBSD_CORE GDB_OSABI_NETBSD_AOUT -#endif - -static enum gdb_osabi -sparcnbsd_core_osabi_sniffer (bfd *abfd) -{ - if (strcmp (bfd_get_target (abfd), "netbsd-core") == 0) - return GDB_OSABI_NETBSD_CORE; - - return GDB_OSABI_UNKNOWN; -} - - -/* Provide a prototype to silence -Wmissing-prototypes. */ -void _initialize_sparcnbsd_tdep (void); - void _initialize_sparcnbsd_tdep (void) { - gdbarch_register_osabi_sniffer (bfd_arch_sparc, bfd_target_aout_flavour, - sparcnbsd_aout_osabi_sniffer); - - /* BFD doesn't set a flavour for NetBSD style a.out core files. */ - gdbarch_register_osabi_sniffer (bfd_arch_sparc, bfd_target_unknown_flavour, - sparcnbsd_core_osabi_sniffer); - - gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_NETBSD_AOUT, - sparc32nbsd_aout_init_abi); - gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_NETBSD_ELF, - sparc32nbsd_elf_init_abi); + gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_NETBSD, + sparc32nbsd_init_abi); }