From fe22022617a7122491aa83c893a10a8d861cde73 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Wed, 11 Oct 2017 15:01:41 +0100 Subject: [PATCH] GDB: Remove Linux core PRPSINFO note writer override Revert parts of commit b3ac9c77560a ("Put more info in NT_PRPSINFO Linux notes"), , and remove support for a Linux core PRPSINFO note writer override, now that all variants are handled automatically within BFD itself. gdb/ * linux-tdep.c (linux_make_corefile_notes): Remove call to `gdbarch_elfcore_write_linux_prpsinfo'. * gdbarch.sh (elfcore_write_linux_prpsinfo): Remove architecture method. (elf_internal_linux_prpsinfo): Remove declaration. * gdbarch.h: Regenerate. * gdbarch.c: Regenerate. --- gdb/ChangeLog | 10 ++++++++++ gdb/gdbarch.c | 32 -------------------------------- gdb/gdbarch.h | 13 ------------- gdb/gdbarch.sh | 8 -------- gdb/linux-tdep.c | 23 +++++++---------------- 5 files changed, 17 insertions(+), 69 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d7e4117..6231638 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2017-10-11 Maciej W. Rozycki + * linux-tdep.c (linux_make_corefile_notes): Remove call to + `gdbarch_elfcore_write_linux_prpsinfo'. + * gdbarch.sh (elfcore_write_linux_prpsinfo): Remove architecture + method. + (elf_internal_linux_prpsinfo): Remove declaration. + * gdbarch.h: Regenerate. + * gdbarch.c: Regenerate. + +2017-10-11 Maciej W. Rozycki + * ppc-linux-tdep.c (ppc_linux_init_abi): Remove call to `set_gdbarch_elfcore_write_linux_prpsinfo'. diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 5a84879..007392c 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -281,7 +281,6 @@ struct gdbarch gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument; gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections; gdbarch_make_corefile_notes_ftype *make_corefile_notes; - gdbarch_elfcore_write_linux_prpsinfo_ftype *elfcore_write_linux_prpsinfo; gdbarch_find_memory_regions_ftype *find_memory_regions; gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries; gdbarch_core_xfer_shared_libraries_aix_ftype *core_xfer_shared_libraries_aix; @@ -641,7 +640,6 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of fetch_pointer_argument, has predicate. */ /* Skip verify of iterate_over_regset_sections, has predicate. */ /* Skip verify of make_corefile_notes, has predicate. */ - /* Skip verify of elfcore_write_linux_prpsinfo, has predicate. */ /* Skip verify of find_memory_regions, has predicate. */ /* Skip verify of core_xfer_shared_libraries, has predicate. */ /* Skip verify of core_xfer_shared_libraries_aix, has predicate. */ @@ -973,12 +971,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) "gdbarch_dump: elf_make_msymbol_special = <%s>\n", host_address_to_string (gdbarch->elf_make_msymbol_special)); fprintf_unfiltered (file, - "gdbarch_dump: gdbarch_elfcore_write_linux_prpsinfo_p() = %d\n", - gdbarch_elfcore_write_linux_prpsinfo_p (gdbarch)); - fprintf_unfiltered (file, - "gdbarch_dump: elfcore_write_linux_prpsinfo = <%s>\n", - host_address_to_string (gdbarch->elfcore_write_linux_prpsinfo)); - fprintf_unfiltered (file, "gdbarch_dump: execute_dwarf_cfa_vendor_op = <%s>\n", host_address_to_string (gdbarch->execute_dwarf_cfa_vendor_op)); fprintf_unfiltered (file, @@ -3661,30 +3653,6 @@ set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch, } int -gdbarch_elfcore_write_linux_prpsinfo_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->elfcore_write_linux_prpsinfo != NULL; -} - -char * -gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info) -{ - gdb_assert (gdbarch != NULL); - gdb_assert (gdbarch->elfcore_write_linux_prpsinfo != NULL); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_elfcore_write_linux_prpsinfo called\n"); - return gdbarch->elfcore_write_linux_prpsinfo (obfd, note_data, note_size, info); -} - -void -set_gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, - gdbarch_elfcore_write_linux_prpsinfo_ftype elfcore_write_linux_prpsinfo) -{ - gdbarch->elfcore_write_linux_prpsinfo = elfcore_write_linux_prpsinfo; -} - -int gdbarch_find_memory_regions_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 830acb2..f276d09 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -61,7 +61,6 @@ struct axs_value; struct stap_parse_info; struct parser_state; struct ravenscar_arch_ops; -struct elf_internal_linux_prpsinfo; struct mem_range; struct syscalls_info; struct thread_info; @@ -875,18 +874,6 @@ typedef char * (gdbarch_make_corefile_notes_ftype) (struct gdbarch *gdbarch, bfd extern char * gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size); extern void set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch, gdbarch_make_corefile_notes_ftype *make_corefile_notes); -/* The elfcore writer hook to use to write Linux prpsinfo notes to core - files. Most Linux architectures use the same prpsinfo32 or - prpsinfo64 layouts, and so won't need to provide this hook, as we - call the Linux generic routines in bfd to write prpsinfo notes by - default. */ - -extern int gdbarch_elfcore_write_linux_prpsinfo_p (struct gdbarch *gdbarch); - -typedef char * (gdbarch_elfcore_write_linux_prpsinfo_ftype) (bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info); -extern char * gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info); -extern void set_gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, gdbarch_elfcore_write_linux_prpsinfo_ftype *elfcore_write_linux_prpsinfo); - /* Find core file memory regions */ extern int gdbarch_find_memory_regions_p (struct gdbarch *gdbarch); diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index addd92d..ea15c8c 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -728,13 +728,6 @@ M;void;iterate_over_regset_sections;iterate_over_regset_sections_cb *cb, void *c # Create core file notes M;char *;make_corefile_notes;bfd *obfd, int *note_size;obfd, note_size -# The elfcore writer hook to use to write Linux prpsinfo notes to core -# files. Most Linux architectures use the same prpsinfo32 or -# prpsinfo64 layouts, and so won't need to provide this hook, as we -# call the Linux generic routines in bfd to write prpsinfo notes by -# default. -F;char *;elfcore_write_linux_prpsinfo;bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info;obfd, note_data, note_size, info - # Find core file memory regions M;int;find_memory_regions;find_memory_region_ftype func, void *data;func, data @@ -1286,7 +1279,6 @@ struct axs_value; struct stap_parse_info; struct parser_state; struct ravenscar_arch_ops; -struct elf_internal_linux_prpsinfo; struct mem_range; struct syscalls_info; struct thread_info; diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c index 5dd87b7..8751718 100644 --- a/gdb/linux-tdep.c +++ b/gdb/linux-tdep.c @@ -1956,23 +1956,14 @@ linux_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size) if (linux_fill_prpsinfo (&prpsinfo)) { - if (gdbarch_elfcore_write_linux_prpsinfo_p (gdbarch)) - { - note_data = gdbarch_elfcore_write_linux_prpsinfo (gdbarch, obfd, - note_data, note_size, - &prpsinfo); - } + if (gdbarch_ptr_bit (gdbarch) == 64) + note_data = elfcore_write_linux_prpsinfo64 (obfd, + note_data, note_size, + &prpsinfo); else - { - if (gdbarch_ptr_bit (gdbarch) == 64) - note_data = elfcore_write_linux_prpsinfo64 (obfd, - note_data, note_size, - &prpsinfo); - else - note_data = elfcore_write_linux_prpsinfo32 (obfd, - note_data, note_size, - &prpsinfo); - } + note_data = elfcore_write_linux_prpsinfo32 (obfd, + note_data, note_size, + &prpsinfo); } /* Thread register information. */ -- 2.7.4