From patchwork Sat Sep 23 00:05:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Maciej W. Rozycki" X-Patchwork-Id: 23105 Received: (qmail 126483 invoked by alias); 23 Sep 2017 00:05:47 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 126463 invoked by uid 89); 23 Sep 2017 00:05:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy= X-Spam-User: qpsmtpd, 2 recipients X-HELO: mailapp01.imgtec.com Received: from mailapp01.imgtec.com (HELO mailapp01.imgtec.com) (195.59.15.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 23 Sep 2017 00:05:45 +0000 Received: from HHMAIL01.hh.imgtec.org (unknown [10.100.10.19]) by Forcepoint Email with ESMTPS id 12C98F8831DF1; Sat, 23 Sep 2017 01:05:37 +0100 (IST) Received: from [10.20.78.84] (10.20.78.84) by HHMAIL01.hh.imgtec.org (10.100.10.21) with Microsoft SMTP Server id 14.3.361.1; Sat, 23 Sep 2017 01:05:40 +0100 Date: Sat, 23 Sep 2017 01:05:29 +0100 From: "Maciej W. Rozycki" To: , CC: Sergio Durigan Junior , Pedro Alves , Djordje Todorovic Subject: [PATCH 4/4] GDB: Remove Linux core PRPSINFO note writer override In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 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/gdbarch.c | 32 -------------------------------- gdb/gdbarch.h | 13 ------------- gdb/gdbarch.sh | 8 -------- gdb/linux-tdep.c | 23 +++++++---------------- 4 files changed, 7 insertions(+), 69 deletions(-) gdb-gdbarch-elfcore-write-linux-prpsinfo.diff Index: binutils/gdb/gdbarch.c =================================================================== --- binutils.orig/gdb/gdbarch.c 2017-09-15 13:54:01.000000000 +0100 +++ binutils/gdb/gdbarch.c 2017-09-20 01:02:46.584755366 +0100 @@ -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, s "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 } 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); Index: binutils/gdb/gdbarch.h =================================================================== --- binutils.orig/gdb/gdbarch.h 2017-08-11 18:17:40.000000000 +0100 +++ binutils/gdb/gdbarch.h 2017-09-20 01:02:52.288155019 +0100 @@ -62,7 +62,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; @@ -876,18 +875,6 @@ typedef char * (gdbarch_make_corefile_no 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); Index: binutils/gdb/gdbarch.sh =================================================================== --- binutils.orig/gdb/gdbarch.sh 2017-09-15 13:54:01.000000000 +0100 +++ binutils/gdb/gdbarch.sh 2017-09-20 01:00:11.068519662 +0100 @@ -728,13 +728,6 @@ M;void;iterate_over_regset_sections;iter # 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 @@ -1287,7 +1280,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; Index: binutils/gdb/linux-tdep.c =================================================================== --- binutils.orig/gdb/linux-tdep.c 2017-09-15 13:54:02.000000000 +0100 +++ binutils/gdb/linux-tdep.c 2017-09-20 01:02:04.909851990 +0100 @@ -1955,23 +1955,14 @@ linux_make_corefile_notes (struct gdbarc 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. */