Call set_gdbarch_get_siginfo_type in linux_init_abi
authorYao Qi <yao.qi@linaro.org>
Wed, 24 Jun 2015 13:53:03 +0000 (14:53 +0100)
committerYao Qi <yao.qi@linaro.org>
Wed, 24 Jun 2015 13:53:03 +0000 (14:53 +0100)
linux_get_siginfo_type is installed to many linux gdbarch.  This patch
is to move this to a common area linux-tdep.c:linux_init_abi, so that
linux_get_siginfo_type is installed to every linux gdbarch.  If some
linux gdbarch needs its own version, please override it in
$ARCH_linux_init_abi.  In the testsuite, we enable siginfo related
tests for all linux targets.

gdb:

2015-06-24  Yao Qi  <yao.qi@linaro.org>

* aarch64-linux-tdep.c (aarch64_linux_init_abi): Don't call
set_gdbarch_get_siginfo_type.
* amd64-linux-tdep.c (amd64_linux_init_abi_common): Likewise.
* arm-linux-tdep.c (arm_linux_init_abi): Likewise.
* i386-linux-tdep.c (i386_linux_init_abi): Likewise.
* m68klinux-tdep.c (m68k_linux_init_abi): Likewise.
* ppc-linux-tdep.c (ppc_linux_init_abi): Likewise.
* s390-linux-tdep.c (s390_gdbarch_init): Likewise.
* tilegx-linux-tdep.c (tilegx_linux_init_abi): Likewise.
* linux-tdep.c (linux_get_siginfo_type): Change it to static.
(linux_init_abi): Call set_gdbarch_get_siginfo_type.
* linux-tdep.h (linux_get_siginfo_type): Remove the declaration.

gdb/testsuite:

2015-06-24  Yao Qi  <yao.qi@linaro.org>

* lib/gdb.exp (supports_get_siginfo_type): Return 1 for all
linux targets.

13 files changed:
gdb/ChangeLog
gdb/aarch64-linux-tdep.c
gdb/amd64-linux-tdep.c
gdb/arm-linux-tdep.c
gdb/i386-linux-tdep.c
gdb/linux-tdep.c
gdb/linux-tdep.h
gdb/m68klinux-tdep.c
gdb/ppc-linux-tdep.c
gdb/s390-linux-tdep.c
gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp
gdb/tilegx-linux-tdep.c

index 0d0fe107ad7fcaf23da9eac8ca6fd3b2e30c172a..3603241abc1df3c45c593a903d0c1575e907733d 100644 (file)
@@ -1,3 +1,18 @@
+2015-06-24  Yao Qi  <yao.qi@linaro.org>
+
+       * aarch64-linux-tdep.c (aarch64_linux_init_abi): Don't call
+       set_gdbarch_get_siginfo_type.
+       * amd64-linux-tdep.c (amd64_linux_init_abi_common): Likewise.
+       * arm-linux-tdep.c (arm_linux_init_abi): Likewise.
+       * i386-linux-tdep.c (i386_linux_init_abi): Likewise.
+       * m68klinux-tdep.c (m68k_linux_init_abi): Likewise.
+       * ppc-linux-tdep.c (ppc_linux_init_abi): Likewise.
+       * s390-linux-tdep.c (s390_gdbarch_init): Likewise.
+       * tilegx-linux-tdep.c (tilegx_linux_init_abi): Likewise.
+       * linux-tdep.c (linux_get_siginfo_type): Change it to static.
+       (linux_init_abi): Call set_gdbarch_get_siginfo_type.
+       * linux-tdep.h (linux_get_siginfo_type): Remove the declaration.
+
 2015-06-24  Gary Benson  <gbenson@redhat.com>
 
        * common/buffer.c (stdint.h): Do not include.
index 2f93846038a80d6cfe7e938c1173c3ab85111b3e..f8cf43e26dac812931cf0f5bc166570b8cfa0403 100644 (file)
@@ -962,7 +962,6 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* Shared library handling.  */
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
 
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
   tramp_frame_prepend_unwinder (gdbarch, &aarch64_linux_rt_sigframe);
 
   /* Enable longjmp.  */
index 2a8de82e6f0330e7e500fbd8c1f91030f5fc8878..e9be9cfd1f07458529a1e4f9670f154ad658e598 100644 (file)
@@ -1835,8 +1835,6 @@ amd64_linux_init_abi_common(struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_displaced_step_location (gdbarch,
                                        linux_displaced_step_location);
 
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
-
   set_gdbarch_process_record (gdbarch, i386_process_record);
   set_gdbarch_process_record_signal (gdbarch, amd64_linux_record_signal);
 }
index fd0ef5bfdd471493eeff6d057cc6d55b1c6c7295..6273027e03c02c792fda1affc23bc91d18745904 100644 (file)
@@ -1440,8 +1440,6 @@ arm_linux_init_abi (struct gdbarch_info info,
     (gdbarch, arm_linux_iterate_over_regset_sections);
   set_gdbarch_core_read_description (gdbarch, arm_linux_core_read_description);
 
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
-
   /* Displaced stepping.  */
   set_gdbarch_displaced_step_copy_insn (gdbarch,
                                        arm_linux_displaced_step_copy_insn);
index 7c2e322f8aaa701869026155ac4d461270f4387a..20229276b9bc8ede5d48063e4116c9cf39a9d8df 100644 (file)
@@ -994,8 +994,6 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_I386);
   set_gdbarch_get_syscall_number (gdbarch,
                                   i386_linux_get_syscall_number);
-
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
index c81f71bfd4273cf0d1aac6231b42aedbb0f5003d..ff3ada78c6b98e550e1c10c96e4d9be0867fa265 100644 (file)
@@ -243,7 +243,7 @@ get_linux_inferior_data (void)
 /* This function is suitable for architectures that don't
    extend/override the standard siginfo structure.  */
 
-struct type *
+static struct type *
 linux_get_siginfo_type (struct gdbarch *gdbarch)
 {
   struct linux_gdbarch_data *linux_gdbarch_data;
@@ -2440,6 +2440,7 @@ linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_vsyscall_range (gdbarch, linux_vsyscall_range);
   set_gdbarch_infcall_mmap (gdbarch, linux_infcall_mmap);
   set_gdbarch_infcall_munmap (gdbarch, linux_infcall_munmap);
+  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
index ff45286cd9ad120b08a186df98b6898134a4bf68..9beb6f6427e0e3bef9e5ed9e044402d26a7c3074 100644 (file)
@@ -29,8 +29,6 @@ typedef char *(*linux_collect_thread_registers_ftype) (const struct regcache *,
                                                       bfd *, char *, int *,
                                                       enum gdb_signal);
 
-struct type *linux_get_siginfo_type (struct gdbarch *);
-
 extern enum gdb_signal linux_gdb_signal_from_target (struct gdbarch *gdbarch,
                                                     int signal);
 
index 03de4ea596d9740b948df005fb42bb89b8c1b48c..c60a879dfb8c20343f333599132f30ae381a06c7 100644 (file)
@@ -422,8 +422,6 @@ m68k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                              svr4_fetch_objfile_link_map);
-
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
index 3849ca665c93db5238fb1f82568befb6fee7d5a2..4bdd13e2b0b11c6095ea71fcc01439cff6bce641 100644 (file)
@@ -1801,8 +1801,6 @@ ppc_linux_init_abi (struct gdbarch_info info,
   set_gdbarch_displaced_step_location (gdbarch,
                                       linux_displaced_step_location);
 
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
-
   /* Support reverse debugging.  */
   set_gdbarch_process_record (gdbarch, ppc_process_record);
   set_gdbarch_process_record_signal (gdbarch, ppc_linux_record_signal);
index 0650c276b744046132c28ba96cf92a75d3e90fe8..2460aa1d404a928ded119d0078afad87a963343d 100644 (file)
@@ -3329,8 +3329,6 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                             svr4_fetch_objfile_link_map);
 
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
-
   /* SystemTap functions.  */
   set_gdbarch_stap_register_prefixes (gdbarch, stap_register_prefixes);
   set_gdbarch_stap_register_indirection_prefixes (gdbarch,
index c209fe6b4e52222a33cdf9ac1baf00eaacdfc332..8825f4c8c2214919577749e0d2f1a66fecb4dc7f 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-24  Yao Qi  <yao.qi@linaro.org>
+
+       * lib/gdb.exp (supports_get_siginfo_type): Return 1 for all
+       linux targets.
+
 2015-06-24  Yao Qi  <yao.qi@linaro.org>
 
        * lib/gdb.exp (supports_get_siginfo_type): New proc.
index 761f7d13c4832b9f6680caf993d721be268a5e7e..c0e0cb1b09b3773b2aab2ac76f938ce924d3e7fa 100644 (file)
@@ -2000,9 +2000,7 @@ gdb_caching_proc support_complex_tests {
 # return 0.
 
 proc supports_get_siginfo_type {} {
-    if { [istarget "i?86-*-linux*"]
-        || [istarget "x86_64-*-linux*"]
-        || [istarget "arm*-*-linux*"] } {
+    if { [istarget "*-*-linux*"] } {
        return 1
     } else {
        return 0
index 2de86e53f520a96be04b880cc0a3bbde7396857f..b3e34fe4753a2b453db49efb9baba0f4b27f979e 100644 (file)
@@ -133,8 +133,6 @@ tilegx_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* Shared library handling.  */
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
-
-  set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */