Extend support for DWARF-5 offset tables as generated by Clang++.
Resolves: #2222697
This commit is contained in:
parent
126cd28d95
commit
d69f0b8bf0
@ -734,3 +734,69 @@ diff -rup binutils.orig/gold/x86_64.cc binutils-2.30/gold/x86_64.cc
|
|||||||
{
|
{
|
||||||
case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
|
case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
|
||||||
this->isa_1_used_ |= val;
|
this->isa_1_used_ |= val;
|
||||||
|
--- binutils.orig/bfd/dwarf2.c 2023-07-25 11:22:17.043088690 +0100
|
||||||
|
+++ binutils-2.30/bfd/dwarf2.c 2023-07-25 11:58:03.865663408 +0100
|
||||||
|
@@ -1098,6 +1098,44 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
|
||||||
|
return abbrevs;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Returns true if the form is one which has an integer value. */
|
||||||
|
+
|
||||||
|
+static bfd_boolean
|
||||||
|
+is_int_form (const struct attribute *attr)
|
||||||
|
+{
|
||||||
|
+ switch (attr->form)
|
||||||
|
+ {
|
||||||
|
+ case DW_FORM_addr:
|
||||||
|
+ case DW_FORM_data2:
|
||||||
|
+ case DW_FORM_data4:
|
||||||
|
+ case DW_FORM_data8:
|
||||||
|
+ case DW_FORM_data1:
|
||||||
|
+ case DW_FORM_flag:
|
||||||
|
+ case DW_FORM_sdata:
|
||||||
|
+ case DW_FORM_udata:
|
||||||
|
+ case DW_FORM_ref_addr:
|
||||||
|
+ case DW_FORM_ref1:
|
||||||
|
+ case DW_FORM_ref2:
|
||||||
|
+ case DW_FORM_ref4:
|
||||||
|
+ case DW_FORM_ref8:
|
||||||
|
+ case DW_FORM_ref_udata:
|
||||||
|
+ case DW_FORM_sec_offset:
|
||||||
|
+ case DW_FORM_flag_present:
|
||||||
|
+ case DW_FORM_ref_sig8:
|
||||||
|
+ case DW_FORM_addrx:
|
||||||
|
+ case DW_FORM_implicit_const:
|
||||||
|
+ case DW_FORM_addrx1:
|
||||||
|
+ case DW_FORM_addrx2:
|
||||||
|
+ case DW_FORM_addrx3:
|
||||||
|
+ case DW_FORM_addrx4:
|
||||||
|
+ case DW_FORM_GNU_ref_alt:
|
||||||
|
+ return TRUE;
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Returns true if the form is one which has a string value. */
|
||||||
|
|
||||||
|
static inline bfd_boolean
|
||||||
|
@@ -3370,7 +3408,8 @@ scan_unit_for_symbols (struct comp_unit
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DW_AT_ranges:
|
||||||
|
- if (!read_rangelist (unit, &func->arange, attr.u.val))
|
||||||
|
+ if (is_int_form (&attr)
|
||||||
|
+ && !read_rangelist (unit, &func->arange, attr.u.val))
|
||||||
|
goto fail;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -3663,7 +3702,7 @@ parse_comp_unit (struct dwarf2_debug *st
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DW_AT_ranges:
|
||||||
|
- if (!read_rangelist (unit, &unit->arange, attr.u.val))
|
||||||
|
+ if (is_int_form (&attr) && !read_rangelist (unit, &unit->arange, attr.u.val))
|
||||||
|
return NULL;
|
||||||
|
break;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
Summary: A GNU collection of binary utilities
|
Summary: A GNU collection of binary utilities
|
||||||
Name: binutils%{?name_cross}%{?_with_debug:-debug}
|
Name: binutils%{?name_cross}%{?_with_debug:-debug}
|
||||||
Version: 2.30
|
Version: 2.30
|
||||||
Release: 122%{?dist}
|
Release: 123%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://sourceware.org/binutils
|
URL: https://sourceware.org/binutils
|
||||||
|
|
||||||
@ -1328,6 +1328,9 @@ exit 0
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jul 25 2023 Nick Clifton <nickc@redhat.com> - 2.30-123
|
||||||
|
- Extend support for DWARF-5 offset tables as generated by Clang++. (#2222697)
|
||||||
|
|
||||||
* Tue Jul 18 2023 Nick Clifton <nickc@redhat.com> - 2.30-122
|
* Tue Jul 18 2023 Nick Clifton <nickc@redhat.com> - 2.30-122
|
||||||
- Add support for DWARF-5 offset tables as generated by Clang++. (#2222697)
|
- Add support for DWARF-5 offset tables as generated by Clang++. (#2222697)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user