From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (wildebeest.demon.nl [212.238.236.112]) by sourceware.org (Postfix) with ESMTPS id 5EE923971C4D for ; Wed, 23 Sep 2020 14:52:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5EE923971C4D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mark@klomp.org Received: from tarox.wildebeest.org (tarox.wildebeest.org [172.31.17.39]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 04A5C300BC89; Wed, 23 Sep 2020 16:52:09 +0200 (CEST) Received: by tarox.wildebeest.org (Postfix, from userid 1000) id F038A4708689; Wed, 23 Sep 2020 16:52:08 +0200 (CEST) From: Mark Wielaard To: binutils@sourceware.org Cc: Mark Wielaard Subject: [PATCH 2/3] Sync libiberty and include with GCC for get_DW_UT_name. Date: Wed, 23 Sep 2020 16:51:51 +0200 Message-Id: <20200923145152.27111-2-mark@klomp.org> X-Mailer: git-send-email 2.18.4 In-Reply-To: <20200923145152.27111-1-mark@klomp.org> References: <20200923145152.27111-1-mark@klomp.org> X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Sep 2020 14:52:11 -0000 This adds a get_DW_UT_name function to dwarfnames using dwarf2.def for use in binutils readelf to show the unit types in a DWARF5 header. include/ChangeLog: * dwarf2.def: Add DWARF5 Unit type header encoding macros DW_UT_FIRST, DW_UT and DW_UT_END. * dwarf2.h (enum dwarf_unit_type): Removed and define using DW_UT_FIRST, DW_UT and DW_UT_END macros. (get_DW_UT_name): New function declaration. libiberty/ChangeLog: * dwarfnames.c (get_DW_UT_name): Define using DW_UT_FIRST, DW_UT and DW_UT_END. --- include/ChangeLog | 9 +++++++++ include/dwarf2.def | 11 +++++++++++ include/dwarf2.h | 24 +++++++++++------------- libiberty/ChangeLog | 6 ++++++ libiberty/dwarfnames.c | 7 +++++++ 5 files changed, 44 insertions(+), 13 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index 38baf59ca4d..12fd17b7eae 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,12 @@ +2020-09-23 Mark Wielaard + + Sync with GCC + * dwarf2.def: Add DWARF5 Unit type header encoding macros + DW_UT_FIRST, DW_UT and DW_UT_END. + * dwarf2.h (enum dwarf_unit_type): Removed and define using + DW_UT_FIRST, DW_UT and DW_UT_END macros. + (get_DW_UT_name): New function declaration. + 2020-09-12 H.J. Lu PR ld/26391 diff --git a/include/dwarf2.def b/include/dwarf2.def index d8a8cce7947..13825a3eef7 100644 --- a/include/dwarf2.def +++ b/include/dwarf2.def @@ -805,3 +805,14 @@ DW_IDX (DW_IDX_hi_user, 0x3fff) DW_IDX (DW_IDX_GNU_internal, 0x2000) DW_IDX (DW_IDX_GNU_external, 0x2001) DW_END_IDX + +/* DWARF5 Unit type header encodings */ +DW_FIRST_UT (DW_UT_compile, 0x01) +DW_UT (DW_UT_type, 0x02) +DW_UT (DW_UT_partial, 0x03) +DW_UT (DW_UT_skeleton, 0x04) +DW_UT (DW_UT_split_compile, 0x05) +DW_UT (DW_UT_split_type, 0x06) +DW_UT (DW_UT_lo_user, 0x80) +DW_UT (DW_UT_hi_user, 0xff) +DW_END_UT diff --git a/include/dwarf2.h b/include/dwarf2.h index bd33e06a75c..83cf50d7bf5 100644 --- a/include/dwarf2.h +++ b/include/dwarf2.h @@ -55,6 +55,7 @@ #define DW_CFA_DUP(name, value) , name = value #define DW_IDX(name, value) , name = value #define DW_IDX_DUP(name, value) , name = value +#define DW_UT(name, value) , name = value #define DW_FIRST_TAG(name, value) enum dwarf_tag { \ name = value @@ -77,6 +78,9 @@ #define DW_FIRST_IDX(name, value) enum dwarf_name_index_attribute { \ name = value #define DW_END_IDX }; +#define DW_FIRST_UT(name, value) enum dwarf_unit_type { \ + name = value +#define DW_END_UT }; #include "dwarf2.def" @@ -94,6 +98,8 @@ #undef DW_END_CFA #undef DW_FIRST_IDX #undef DW_END_IDX +#undef DW_FIRST_UT +#undef DW_END_UT #undef DW_TAG #undef DW_TAG_DUP @@ -108,6 +114,7 @@ #undef DW_CFA_DUP #undef DW_IDX #undef DW_IDX_DUP +#undef DW_UT /* Flag that tells whether entry has a child or not. */ #define DW_children_no 0 @@ -450,19 +457,6 @@ enum dwarf_range_list_entry DW_RLE_start_end = 0x06, DW_RLE_start_length = 0x07 }; - -/* Unit types in unit_type unit header field. */ -enum dwarf_unit_type - { - DW_UT_compile = 0x01, - DW_UT_type = 0x02, - DW_UT_partial = 0x03, - DW_UT_skeleton = 0x04, - DW_UT_split_compile = 0x05, - DW_UT_split_type = 0x06, - DW_UT_lo_user = 0x80, - DW_UT_hi_user = 0xff - }; /* @@@ For use with GNU frame unwind information. */ @@ -551,6 +545,10 @@ extern const char *get_DW_CFA_name (unsigned int opc); recognized. */ extern const char *get_DW_IDX_name (unsigned int idx); +/* Return the name of a DW_UT_ constant, or NULL if the value is not + recognized. */ +extern const char *get_DW_UT_name (unsigned int ut); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index e6280d576bf..b8d41691a01 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,9 @@ +2020-09-23 Mark Wielaard + + Sync with GCC + * dwarfnames.c (get_DW_UT_name): Define using DW_UT_FIRST, DW_UT + and DW_UT_END. + 2020-09-11 Felix Willgerodt Sync with GCC diff --git a/libiberty/dwarfnames.c b/libiberty/dwarfnames.c index 968d1917532..af11668b431 100644 --- a/libiberty/dwarfnames.c +++ b/libiberty/dwarfnames.c @@ -64,6 +64,11 @@ Boston, MA 02110-1301, USA. */ switch (idx) { \ DW_IDX (name, value) #define DW_END_IDX } return 0; } +#define DW_FIRST_UT(name, value) \ + const char *get_DW_UT_name (unsigned int ut) { \ + switch (ut) { \ + DW_UT (name, value) +#define DW_END_UT } return 0; } #define DW_TAG(name, value) case name: return # name ; #define DW_TAG_DUP(name, value) @@ -78,6 +83,7 @@ Boston, MA 02110-1301, USA. */ #define DW_CFA_DUP(name, value) #define DW_IDX(name, value) case name: return # name ; #define DW_IDX_DUP(name, value) +#define DW_UT(name, value) case name: return # name ; #include "dwarf2.def" @@ -95,6 +101,7 @@ Boston, MA 02110-1301, USA. */ #undef DW_END_CFA #undef DW_FIRST_IDX #undef DW_END_IDX +#undef DW_END_UT #undef DW_TAG #undef DW_TAG_DUP -- 2.18.4