Skip to content

Commit

Permalink
dwarf: Update to 20190529.
Browse files Browse the repository at this point in the history
  • Loading branch information
jrfonseca committed Jul 29, 2019
1 parent c35fbe6 commit 4a1e0ce
Show file tree
Hide file tree
Showing 151 changed files with 37,642 additions and 6,940 deletions.
8 changes: 3 additions & 5 deletions thirdparty/dwarf/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,29 @@ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-pointer-to-int-cast -Wno-int-to-pointe

add_library (dwarf STATIC
dwarf_abbrev.c
dwarf_addr_finder.c
dwarf_alloc.c
dwarf_arange.c
dwarf_die_deliv.c
dwarf_dsc.c
dwarf_dnames.c
dwarf_error.c
dwarf_form.c
dwarf_frame.c
dwarf_frame2.c
dwarf_frame3.c
dwarf_funcs.c
dwarf_global.c
dwarf_groups.c
dwarf_harmless.c
dwarf_init_finish.c
dwarf_leb.c
dwarf_line.c
dwarf_line2.c
dwarf_loc.c
#dwarf_loc2.c
dwarf_macro.c
dwarf_macro5.c
dwarf_print_lines.c
dwarf_pubtypes.c
dwarf_query.c
dwarf_ranges.c
dwarf_sort_line.c
dwarf_string.c
dwarf_stubs.c
dwarf_tied.c
Expand Down
1,110 changes: 588 additions & 522 deletions thirdparty/dwarf/ChangeLog

Large diffs are not rendered by default.

917 changes: 917 additions & 0 deletions thirdparty/dwarf/ChangeLog2016

Large diffs are not rendered by default.

388 changes: 388 additions & 0 deletions thirdparty/dwarf/ChangeLog2017

Large diffs are not rendered by default.

905 changes: 905 additions & 0 deletions thirdparty/dwarf/ChangeLog2018

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions thirdparty/dwarf/NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,74 @@
January 15, 2019
All references to C data types spelled *int16* *int32* or
*int64* have been removed. Dwarf_Unsigned is used instead.
This simplifies builds in certain environments.
December 05, 2018
Many new producer functions provided. Now no matter
what producer task is to be done there is a version
that returns DW_DLV_OK/DW_DLV_ERROR and no ugly
casting of return values is needed to check for success/failure.
All the old interfaces continue to work.
One can switch from
Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die die,
char* name,
Dwarf_Error* error);
(requires a cast to check return code DW_DLV_BADADDR)
to
int dwarf_add_AT_comp_dir_a(Dwarf_P_Die ownerdie,
char* current_working_directory,
Dwarf_P_Attribute * outattr,
Dwarf_Error* error);
(no cast,type safe)
for example.
The libdwarf2p.1.mm document table-of-contents
lists only the latest functions, but all the documentation
of all the earlier versions remain in the document as
subsections.
October 24, 2018
Now supports reading MacOS dSYM object files.
May 17, 2017
Now supports some COMDAT groups as well as split-dwarf.
Some new functions added so consumer code can know
what the sections and groups contain.
Some compilers emit groups findable only with relocation
data: libdwarf does not understand those groups.
April 02, 2017
The consumer code now reads DWARF5 split-dwarf sections.
The functions dwarf_init_b() and dwarf_elf_init_b()
and dwarf_object_init_b() have a groupnumber argument
added. For non-split-dwarf objects the original
dwarf_init() and dwarf_elf_init() and
dwarf_object_init() functions continue to work properly.
September 11, 2016
The producer code is getting a new batch of functions.

For each existing producer call returning
a value other than DW_DLV_OK/DW_DLV_ERROR/DW_DLV_NO_ENTRY
a new function returning one of those three codes with
a pointer argument added to return the actual desired
value (that used to be the 'return').
The existing calls require the caller to do ugly casting
to determine whether the call did its work or got an error.
The new calls have type-safe interfaces that separate
the desired result from the error-indication.
So producer calls look more like consumer calls.

The existing historical producer interfaces will remain
unchanged and will continue to be supported. The
existing interfaces will simply call the new interfaces
so there is no code duplication: Old and new use the same
implementation.

Source and binary compatibility is retained, but
users of the producer code can, when they wish,
partially or fully convert to the new interfaces.

This work will be ongoing and gradual, not 'all at once'.

August 27, 2016
Now the producer is capable of producing .debug_str strings.
Strings are never duplicated in .debug_str.
See dwarf_pro_set_default_string_form() in libdwarf2p.1.pdf
May 23, 2016
When building a shared-library the soname is set
in the dynamic section "libdwarf.so.1".
Expand Down
10 changes: 10 additions & 0 deletions thirdparty/dwarf/README
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ To build both, type
./configure --enable-shared
make

April 16, 2017: Some people have had build problems, getting
errors like:
"dwarf_elf_access.c:238:21: warning: assignment makes
pointer from integer without a cast [enabled by default]
if ((ehdr_ident = elf_getident(elf, NULL)) == NULL) {"
That suggests that the libelf headers needed are missing.
On Ubuntu the command 'sudo apt-get install libelf-dev'
should solve this problem.


January 30, 2013: libdwarf.h is no longer in the distribution,
but libdwarf.h.in is identical to libdwarf.h. 'configure'
copies libdwarf.h.in to libdwarf.h and whether libelf.h defines
Expand Down
Loading

0 comments on commit 4a1e0ce

Please sign in to comment.