summaryrefslogtreecommitdiffstats
path: root/libdw/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'libdw/ChangeLog')
-rw-r--r--libdw/ChangeLog297
1 files changed, 297 insertions, 0 deletions
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 780b34d0..abc2d71a 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,300 @@
+2014-12-18 Ulrich Drepper <[email protected]>
+
+ * Makefile.am: Suppress output of textrel_check command.
+
+2014-12-16 Mark Wielaard <[email protected]>
+
+ * dwarf_getsrclines.c (read_srclines): Check diridx is valid under
+ DW_LNE_define_file.
+
+2014-12-16 Mark Wielaard <[email protected]>
+
+ * dwarf_getpubnames.c (dwarf_getpubnames): Make sure there is enough
+ space to read die offset.
+
+2014-12-16 Mark Wielaard <[email protected]>
+
+ * dwarf_getsrclines.c (read_srclines): Correct overflow check for
+ unit_length.
+
+2014-12-15 Mark Wielaard <[email protected]>
+
+ * dwarf_getpubnames.c (get_offsets): Make sure whole unit fall inside
+ section data. Set error to DWARF_E_NO_ENTRY if cnt is zero.
+ (dwarf_getpubnames): Make sure section data contains string zero
+ terminator.
+
+2014-12-16 Mark Wielaard <[email protected]>
+
+ * memory-access.h (__libdw_get_sleb128): Unroll the first step to help
+ the compiler optimize for the common single-byte case.
+
+2014-12-15 Josh Stone <[email protected]>
+
+ * memory-access.h (__libdw_max_len_leb128): New.
+ (__libdw_get_uleb128): Use __libdw_max_len_leb128.
+ (__libdw_get_sleb128): Likewise.
+
+2014-12-14 Mark Wielaard <[email protected]>
+
+ * cfi.c (execute_cfi): Add program bounds checks.
+ * dwarf_child.c (__libdw_find_attr): Add attrp bounds checks.
+ * dwarf_formblock.c (dwarf_formblock): Call get_uleb128 with endp.
+ * dwarf_formref.c (__libdw_formref): Add datap bounds checks.
+ * dwarf_formsdata.c (dwarf_formsdata): Likewise.
+ * dwarf_formudata.c (dwarf_formudata): Likewise.
+ * dwarf_frame_register.c (dwarf_frame_register): Call get_uleb128
+ with end of data buf.
+ * dwarf_getabbrev.c (__libdw_getabbrev): Add abbrevp bounds checks.
+ * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Assume get_uleb128
+ call gets enough data.
+ * dwarf_getattrs,c (dwarf_getattrs): Call get_uleb128 with endp.
+ * dwarf_getlocation.c (store_implicit_value): Call get_uleb128
+ with enough data.
+ (__libdw_intern_expression): Call get_uleb128/get_sleb128 with
+ end_data.
+ * dwarf_getmacros.c (get_table_for_offset): Add nforms bounds check.
+ * dwarf_getsrclines.c (read_srclines): Bounds check linep and call
+ get_uleb128 with lineendp.
+ * dwarf_hasattr.c (dwarf_hasattr): Bounds check attrp and call
+ get_uleb128 with endp.
+ * dwarf_next_cfi.c (dwarf_next_cfi): Bounds check bytes and call
+ get_uleb128/get_sleb128 with limit.
+ * encoded-value.h (read_encoded_value): Assume get_uleb128 and
+ get_sleb128 get called with enough data.
+ * fde.c (intern_fde): Call get_uleb128 with instructions_end.
+ * libdwP.h (__libdw_dieabbrev): Call get_uleb128 with die->cu->endp.
+ * libdw_form.c (__libdw_form_val_compute_len): Call get_uleb128 with
+ endp.
+ * memory-access.h (__libdw_get_uleb128): Take an extra endp.
+ Don't call get_uleb128_step if out of data.
+ (__libdw_get_sleb128): Likewise for get_sleb128_step.
+
+2014-12-12 Mark Wielaard <[email protected]>
+
+ * libdwP.h (struct Dwarf): Add fake_loc_cu.
+ (cu_data): Removed.
+ (DIE_OFFSET_FROM_CU_OFFSET): Don't use cu_data, use cu_sec_idx.
+ (__libdw_form_val_compute_len): Drop dbg and endp arguments.
+ (__libdw_form_val_len): Likewise.
+ * libdw_form.c (__libdw_form_val_compute_len): Likewise.
+ * libdw_findcu.c (__libdw_intern_next_unit): Don't use cu_data, use
+ the already found data buffer directly.
+ * dwarf_begin_elf.c (valid_p): Setup fake_loc_cu.
+ * dwarf_end.c (dwarf_end): Free fake_loc_cu.
+ * dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len with
+ just cu.
+ * dwarf_getattrs.c (dwarf_getattrs): Likewise.
+ * dwarf_formblock.c (dwarf_formblock): Add bounds checking.
+ * dwarf_getlocation_attr.c (attr_form_cu): New function.
+ (dwarf_getlocation_attr): Use attr_form_cu to set result->cu.
+ (getlocation): Handle empty blocks immediately.
+ * dwarf_getlocation_implicit_pointer.c (empty_cu): New static var.
+ (__libdw_empty_loc_attr): Drop cu argument, use empty_cu.
+ (dwarf_getlocation_implicit_pointer): Call __libdw_empty_loc_attr with
+ one argument.
+ * dwarf_getmacros.c (read_macros): Also setup startp and endp for
+ fake_cu. Call __libdw_form_val_len with just fake_cu.
+ * dwarf_formref_die.c (dwarf_formref_die): Don't use cu_data, get
+ datap and size directly from cu startp and endp.
+
+2014-12-11 Mark Wielaard <[email protected]>
+
+ * libdw_findcu.c (__libdw_intern_next_unit): Sanity check offset.
+
+2014-12-13 Mark Wielaard <[email protected]>
+
+ * dwarf_getaranges.c (compare_aranges): Make sure Dwarf_Addr
+ difference doesn't wrap around before returning as int.
+
+2014-12-11 Josh Stone <[email protected]>
+
+ * dwarf_getsrclines.c (struct linelist): Add sequence.
+ (compare_lines): Take linelists, and break ties by sequence.
+ (read_srclines): Use linelists for sorting.
+ (read_srclines::add_new_line): Set sequence.
+
+2014-12-10 Josh Stone <[email protected]>
+
+ * libdwP.h (Dwarf_CU): Add startp and endp boundaries.
+ * libdw_findcu.c (__libdw_intern_next_unit): Set startp and endp.
+ * dwarf_child.c (dwarf_child): Use cu->endp.
+ * dwarf_cuoffset.c (dwarf_cuoffset): Use cu->startp.
+ * dwarf_dieoffset.c (dwarf_dieoffset): Use cu->startp.
+ * dwarf_siblingof.c (dwarf_siblingof): Use both.
+
+2014-12-10 Josh Stone <[email protected]>
+
+ * dwarf_hasattr.c (dwarf_hasattr): Just walk abbrev for presence.
+
+2014-12-10 Josh Stone <[email protected]>
+
+ * libdwP.h (__libdw_dieabbrev): New die->abbrev lookup function.
+ * dwarf_child.c (__libdw_find_attr, dwarf_child): Use it.
+ * dwarf_getattrs.c (dwarf_getattrs): Likewise.
+ * dwarf_haschildren.c (dwarf_haschildren): Likewise.
+ * dwarf_tag.c (dwarf_tag): Likewise.
+
+2014-12-04 Mark Wielaard <[email protected]>
+
+ * libdwP.h (__libdw_form_val_compute_len): Add endp argument.
+ (__libdw_form_val_len): Likewise and check len doesn't overflow.
+ * libdw_form.c (__libdw_form_val_compute_len): Likewise.
+ * dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len
+ with endp.
+ * dwarf_getattrs.c (dwarf_getattrs): Likewise.
+ * dwarf_getmacros.c (read_macros): Likewise and check for errors.
+
+2014-12-02 Petr Machata <[email protected]>
+
+ * dwarf_getmacros.c (token_from_offset, offset_from_token): New
+ helper functions.
+ (do_dwarf_getmacros_die): Merge into dwarf_getmacros.
+ * libdw.h (DWARF_GETMACROS_START): New macro.
+
+2014-11-27 Mark Wielaard <[email protected]>
+
+ * Makefile.am (libdw.so): Use textrel_check.
+
+2014-11-27 Mark Wielaard <[email protected]>
+
+ * dwarf_getcfi_elf.c (getcfi_gnu_eh_frame): Initialize
+ search_table_entries and search_table_encoding.
+
+2014-11-24 Mark Wielaard <[email protected]>
+
+ * dwarf_getsrclines.c (read_srclines): Check line_range is not zero
+ before usage.
+
+2014-11-23 Mark Wielaard <[email protected]>
+
+ * dwarf_attr.c (dwarf_attr): Check __libdw_find_attr return value.
+ * dwarf_hasattr.c (dwarf_hasattr): Likewise.
+ * dwarf_siblingof.c (dwarf_siblingof): Likewise.
+
+2014-11-23 Mark Wielaard <[email protected]>
+
+ * dwarf_getabbrev.c (__libdw_getabbrev): Don't assert on bad DWARF.
+ Set libdw errno and return NULL.
+
+2014-11-24 Mark Wielaard <[email protected]>
+
+ * dwarf.h (DW_LANG_C_plus_plus_11): Added.
+ (DW_LANG_C11): Likewise.
+ (DW_LANG_C_plus_plus_14): Likewise.
+ * dwarf_aggregate_size.c (array_size): Handle DW_LANG_C11,
+ DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 and DW_LANG_Go
+ lower bound.
+ * dwarf_getfuncs.c (dwarf_getfuncs): Set c_cu to true for
+ DW_LANG_C11.
+
+2014-11-26 Mark Wielaard <[email protected]>
+
+ * dwarf.h (DW_AT_noreturn): Added.
+
+2014-11-11 Mark Wielaard <[email protected]>
+
+ * dwarf_getsrclines.c (read_srclines): Do address_size comparison
+ explicitly as uint8_t.
+ (__libdw_getsrclines): Add internal_function to declaration.
+
+2014-09-10 Petr Machata <[email protected]>
+
+ * dwarf_macro_getparamcnt.c: New file.
+ * dwarf_macro_param.c: New file.
+ * dwarf_macro_getsrcfiles.c: New file.
+ * Makefile.am (libdw_a_SOURCES): Add the new files.
+ * libdwP.h (struct files_lines_s): New structure.
+ (DWARF_E_INVALID_OPCODE): New enumerator.
+ (struct Dwarf): New fields macro_ops, files_lines.
+ (Dwarf_Macro_Op_Proto, Dwarf_Macro_Op_Table): New structures for
+ keeping macro opcode prototypes in.
+ (Dwarf_Macro_s): Redefine from scratch.
+ (__libdw_getsrclines, __libdw_getcompdir, libdw_macro_nforms): New
+ internal interfaces.
+ * dwarf_error.c (errmsgs): Add a message for
+ DWARF_E_INVALID_OPCODE.
+ * dwarf_end.c (dwarf_end): Destroy struct Dwarf.macro_ops and
+ files_lines.
+ * libdw.h (dwarf_getmacros_off, dwarf_macro_getparamcnt)
+ (dwarf_macro_getsrcfiles, dwarf_macro_param): New public
+ interfaces.
+ * dwarf_getmacros.c (dwarf_getmacros_off): New function,
+ (get_offset_from, macro_op_compare, build_table)
+ (init_macinfo_table, get_macinfo_table, get_table_for_offset)
+ (cache_op_table, read_macros, gnu_macros_getmacros_off)
+ (macro_info_getmacros_off, do_dwarf_getmacros_die): New helper
+ functions.
+ (dwarf_getmacros): Adjust to dispatch to the new interfaces.
+ * dwarf_getsrclines.c (read_srclines): New function with guts
+ taken from dwarf_getsrclines.
+ (__libdw_getsrclines): Likewise.
+ (__libdw_getcompdir, files_lines_compare): New functions.
+ (dwarf_getsrclines): Make it dispatch to the new interfaces.
+ * dwarf_macro_param1.c (dwarf_macro_param1): Adjust to dispatch to
+ the new interfaces.
+ * dwarf_macro_param2.c (dwarf_macro_param2): Likewise.
+ * libdw.map (ELFUTILS_0.161): New. Add dwarf_getmacros_off,
+ dwarf_macro_getsrcfiles, dwarf_macro_getparamcnt, dwarf_macro_param.
+
+2014-10-06 Mark Wielaard <[email protected]>
+
+ * Makefile.am (libdw_a_SOURCES): Add dwarf_peel_type.c.
+ * dwarf_aggregate_size.c (get_type): Use dwarf_peel_type.
+ (aggregate_size): Likewise. Add old and new version.
+ * dwarf_peel_type.c: New file.
+ * libdw.h (dwarf_peel_type): New function declaration.
+ * libdwP.h (dwarf_peel_type): New internal declaration.
+ * libdw.map (ELFUTILS_0.161): New section.
+
+2014-10-15 Petr Machata <[email protected]>
+
+ * libdwP.h (struct Dwarf_Files_s.cu): Drop field.
+ * dwarf_getsrclines.c (dwarf_getsrclines): Don't set it.
+
+2014-10-05 Mark Wielaard <[email protected]>
+
+ * dwarf.h: Add DW_AT_GNU_deleted.
+
+2014-10-02 Mark Wielaard <[email protected]>
+
+ * dwarf_aggregate_size.c (aggregate_size): Return CU address_size
+ for sizeless DW_TAG_pointer_type, DW_TAG_reference_type or
+ DW_TAG_rvalue_reference_type.
+
+2014-09-12 Petr Machata <[email protected]>
+
+ * memory-access.h (read_ubyte_unaligned_inc): Allow only 4- and
+ 8-byte quantities. Consequently, rename to...
+ (read_addr_unaligned_inc): ... this.
+ (read_sbyte_unaligned_inc, read_ubyte_unaligned): Drop.
+ (read_sbyte_unaligned): Drop.
+
+2014-09-10 Petr Machata <[email protected]>
+
+ * dwarf_getlocation.c (attr_ok): Also accept
+ DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
+ DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered.
+
+2014-08-15 Mark Wielaard <[email protected]>
+
+ * dwarf_cu_die.c: New file.
+ * Makefile.am (libdw_a_SOURCES): Add dwarf_cu_die.c.
+ * libdw.h (dwarf_cu_die): New function declaration.
+ * libdw.map (ELFUTILS_0.160): Add dwarf_cu_die.
+
+2014-08-15 Mark Wielaard <[email protected]>
+
+ * dwarf_cu_getdwarf.c: New file.
+ * Makefile.am (libdw_a_SOURCES): Add dwarf_cu_getdwarf.c.
+ * libdw.h (Dwarf_CU): New typedef.
+ (dwarf_cu_getdwarf): New function declaration.
+ * libdw.map (ELFUTILS_0.160): New. Add dwarf_cu_getdwarf.
+
+2014-06-18 Mark Wielaard <[email protected]>
+
+ * dwarf.h: Remove DW_TAG_mutable_type.
+
2014-05-02 Mark Wielaard <[email protected]>
* libdwP.h (__check_build_id): Removed now unused.