summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch')
-rw-r--r--meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch183
1 files changed, 0 insertions, 183 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch b/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch
deleted file mode 100644
index b4880e0d14..0000000000
--- a/meta/recipes-devtools/binutils/binutils/0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-From a50c11a7a47b26e6a3e095dfb72aa2e465919fb6 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Fri, 5 Mar 2021 17:06:59 +0000
-Subject: [PATCH] Add support for the DW_FORM_strx* forms to the BFD library.
-
- PR 27521
- * dwarf2.c (is_str_attr): Add DW_FORM_strx* forms.
- (read_indexed_string): Placeholder function.
- (read_attribute_value): Handle DW_FORM_strx* and DW_FORM_addrx*
- forms.
-
-Upstream-Status: Backport [https://sourceware.org/bugzilla/show_bug.cgi?id=27521]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- bfd/dwarf2.c | 105 ++++++++++++++++++++++++++++++++-------------------
- 1 file changed, 67 insertions(+), 38 deletions(-)
-
-diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
-index 5651696c0f7..5ffcd93f54c 100644
---- a/bfd/dwarf2.c
-+++ b/bfd/dwarf2.c
-@@ -1160,8 +1160,23 @@ read_abbrevs (bfd *abfd, bfd_uint64_t offset, struct dwarf2_debug *stash,
- static inline bfd_boolean
- is_str_attr (enum dwarf_form form)
- {
-- return (form == DW_FORM_string || form == DW_FORM_strp
-- || form == DW_FORM_line_strp || form == DW_FORM_GNU_strp_alt);
-+ return (form == DW_FORM_string
-+ || form == DW_FORM_strp
-+ || form == DW_FORM_strx
-+ || form == DW_FORM_strx1
-+ || form == DW_FORM_strx2
-+ || form == DW_FORM_strx3
-+ || form == DW_FORM_strx4
-+ || form == DW_FORM_line_strp
-+ || form == DW_FORM_GNU_strp_alt);
-+}
-+
-+static const char *
-+read_indexed_string (bfd_uint64_t index ATTRIBUTE_UNUSED,
-+ struct comp_unit * unit ATTRIBUTE_UNUSED)
-+{
-+ /* FIXME: Add support for indexed strings. */
-+ return "<indexed strings not yet supported>";
- }
-
- /* Read and fill in the value of attribute ATTR as described by FORM.
-@@ -1192,6 +1207,9 @@ read_attribute_value (struct attribute * attr,
-
- switch (form)
- {
-+ case DW_FORM_flag_present:
-+ attr->u.val = 1;
-+ break;
- case DW_FORM_ref_addr:
- /* DW_FORM_ref_addr is an address in DWARF2, and an offset in
- DWARF3. */
-@@ -1237,15 +1255,32 @@ read_attribute_value (struct attribute * attr,
- info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk);
- attr->u.blk = blk;
- break;
-+ case DW_FORM_ref1:
-+ case DW_FORM_flag:
-+ case DW_FORM_data1:
-+ case DW_FORM_addrx1:
-+ attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
-+ info_ptr += 1;
-+ break;
- case DW_FORM_data2:
-+ case DW_FORM_ref2:
- attr->u.val = read_2_bytes (abfd, info_ptr, info_ptr_end);
- info_ptr += 2;
- break;
-+ case DW_FORM_addrx3:
-+ attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
-+ attr->u.val &= 0xffffff;
-+ info_ptr += 3;
-+ break;
-+ case DW_FORM_ref4:
- case DW_FORM_data4:
-+ case DW_FORM_addrx4:
- attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
- info_ptr += 4;
- break;
- case DW_FORM_data8:
-+ case DW_FORM_ref8:
-+ case DW_FORM_ref_sig8:
- attr->u.val = read_8_bytes (abfd, info_ptr, info_ptr_end);
- info_ptr += 8;
- break;
-@@ -1265,6 +1300,33 @@ read_attribute_value (struct attribute * attr,
- attr->u.str = read_alt_indirect_string (unit, info_ptr, info_ptr_end, &bytes_read);
- info_ptr += bytes_read;
- break;
-+ case DW_FORM_strx1:
-+ attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
-+ info_ptr += 1;
-+ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
-+ break;
-+ case DW_FORM_strx2:
-+ attr->u.val = read_2_bytes (abfd, info_ptr, info_ptr_end);
-+ info_ptr += 2;
-+ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
-+ break;
-+ case DW_FORM_strx3:
-+ attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
-+ info_ptr += 3;
-+ attr->u.val &= 0xffffff;
-+ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
-+ break;
-+ case DW_FORM_strx4:
-+ attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
-+ info_ptr += 4;
-+ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
-+ break;
-+ case DW_FORM_strx:
-+ attr->u.val = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
-+ FALSE, info_ptr_end);
-+ info_ptr += bytes_read;
-+ attr->u.str = (char *) read_indexed_string (attr->u.val, unit);
-+ break;
- case DW_FORM_exprloc:
- case DW_FORM_block:
- amt = sizeof (struct dwarf_block);
-@@ -1287,48 +1349,14 @@ read_attribute_value (struct attribute * attr,
- info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk);
- attr->u.blk = blk;
- break;
-- case DW_FORM_data1:
-- attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
-- info_ptr += 1;
-- break;
-- case DW_FORM_flag:
-- attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
-- info_ptr += 1;
-- break;
-- case DW_FORM_flag_present:
-- attr->u.val = 1;
-- break;
- case DW_FORM_sdata:
- attr->u.sval = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
- TRUE, info_ptr_end);
- info_ptr += bytes_read;
- break;
-- case DW_FORM_udata:
-- attr->u.val = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
-- FALSE, info_ptr_end);
-- info_ptr += bytes_read;
-- break;
-- case DW_FORM_ref1:
-- attr->u.val = read_1_byte (abfd, info_ptr, info_ptr_end);
-- info_ptr += 1;
-- break;
-- case DW_FORM_ref2:
-- attr->u.val = read_2_bytes (abfd, info_ptr, info_ptr_end);
-- info_ptr += 2;
-- break;
-- case DW_FORM_ref4:
-- attr->u.val = read_4_bytes (abfd, info_ptr, info_ptr_end);
-- info_ptr += 4;
-- break;
-- case DW_FORM_ref8:
-- attr->u.val = read_8_bytes (abfd, info_ptr, info_ptr_end);
-- info_ptr += 8;
-- break;
-- case DW_FORM_ref_sig8:
-- attr->u.val = read_8_bytes (abfd, info_ptr, info_ptr_end);
-- info_ptr += 8;
-- break;
- case DW_FORM_ref_udata:
-+ case DW_FORM_udata:
-+ case DW_FORM_addrx:
- attr->u.val = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
- FALSE, info_ptr_end);
- info_ptr += bytes_read;
-@@ -1361,6 +1389,7 @@ read_attribute_value (struct attribute * attr,
- info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk);
- attr->u.blk = blk;
- break;
-+
- default:
- _bfd_error_handler (_("DWARF error: invalid or unhandled FORM value: %#x"),
- form);