Sync libiberty and include with GCC for get_DW_UT_name.
authorMark Wielaard <mark@klomp.org>
Wed, 23 Sep 2020 14:41:06 +0000 (16:41 +0200)
committerMark Wielaard <mark@klomp.org>
Thu, 24 Sep 2020 20:55:24 +0000 (22:55 +0200)
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:

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.

libiberty/ChangeLog:

Sync with GCC
* dwarfnames.c (get_DW_UT_name): Define using DW_UT_FIRST, DW_UT
and DW_UT_END.

include/ChangeLog
include/dwarf2.def
include/dwarf2.h
libiberty/ChangeLog
libiberty/dwarfnames.c

index 38baf59ca4d750b254a931433840175c954e238e..12fd17b7eae535440cd3ac26c87402f25a2b056f 100644 (file)
@@ -1,3 +1,12 @@
+2020-09-23  Mark Wielaard  <mark@klomp.org>
+
+       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  <hongjiu.lu@intel.com>
 
        PR ld/26391
index d8a8cce794780f343c2b02a32157a5c443d4ca13..13825a3eef7ea5ce3aac790e1082c571cad340ad 100644 (file)
@@ -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
index bd33e06a75c0bda5bc58e492a496e7c628549bca..83cf50d7bf53d3c275085d2fa01d04d697330639 100644 (file)
@@ -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
 #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
-  };
 \f
 /* @@@ 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 */
index e6280d576bf5920640602a4209dd5a5d5d2eeef6..b8d41691a01fd1e6052b9ad2130bdec4e9d87b5b 100644 (file)
@@ -1,3 +1,9 @@
+2020-09-23  Mark Wielaard  <mark@klomp.org>
+
+       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  <felix.willgerodt@intel.com>
 
        Sync with GCC
index 968d19175328cedd5facac796d258b886d1467f1..af11668b431f25093ce5d1efec19c00ecea1c7d9 100644 (file)
@@ -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