elf/x86: Issue an error on discarded output .plt section
[binutils-gdb.git] / gdb / sh-linux-tdep.c
index 4f06a0e54958b7655ddf52562b4ee28d334d1dff..9d4bebb11aa9e893798c83e29e75a661c09e5674 100644 (file)
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux Super-H.
 
-   Copyright (C) 2005-2018 Free Software Foundation, Inc.
+   Copyright (C) 2005-2021 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,6 +29,7 @@
 #include "glibc-tdep.h"
 #include "sh-tdep.h"
 #include "linux-tdep.h"
+#include "gdbarch.h"
 
 #define REGSx16(base) \
   {(base),      0}, \
@@ -183,37 +184,33 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
 static void
 sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
-  linux_init_abi (info, gdbarch);
+  linux_init_abi (info, gdbarch, 0);
 
   /* GNU/Linux uses SVR4-style shared libraries.  */
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
   set_solib_svr4_fetch_link_map_offsets
-    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
 
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
-                                             svr4_fetch_objfile_link_map);
+                                            svr4_fetch_objfile_link_map);
 
-  /* Core files and signal handler frame unwinding are supported for
-     32-bit SH only, at present.  */
-  if (info.bfd_arch_info->mach != bfd_mach_sh5)
-    {
-      struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  sh_gdbarch_tdep *tdep = (sh_gdbarch_tdep *) gdbarch_tdep (gdbarch);
 
-      /* Remember regset characteristics.  The sizes should match
-        elf_gregset_t and elf_fpregset_t from Linux.  */
-      tdep->core_gregmap = (struct sh_corefile_regmap *)gregs_table;
-      tdep->sizeof_gregset = 92;
-      tdep->core_fpregmap = (struct sh_corefile_regmap *)fpregs_table;
-      tdep->sizeof_fpregset = 136;
+  /* Remember regset characteristics.  The sizes should match
+     elf_gregset_t and elf_fpregset_t from Linux.  */
+  tdep->core_gregmap = (struct sh_corefile_regmap *) gregs_table;
+  tdep->sizeof_gregset = 92;
+  tdep->core_fpregmap = (struct sh_corefile_regmap *) fpregs_table;
+  tdep->sizeof_fpregset = 136;
 
-      tramp_frame_prepend_unwinder (gdbarch, &sh_linux_sigreturn_tramp_frame);
-      tramp_frame_prepend_unwinder (gdbarch, &sh_linux_rt_sigreturn_tramp_frame);
-    }
+  tramp_frame_prepend_unwinder (gdbarch, &sh_linux_sigreturn_tramp_frame);
+  tramp_frame_prepend_unwinder (gdbarch, &sh_linux_rt_sigreturn_tramp_frame);
 }
 
+void _initialize_sh_linux_tdep ();
 void
-_initialize_sh_linux_tdep (void)
+_initialize_sh_linux_tdep ()
 {
   gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_LINUX, sh_linux_init_abi);
 }