From: Roland McGrath Date: Fri, 2 Jul 2010 01:43:55 +0000 (-0700) Subject: Merge commit 'elfutils-0.148' into dwarf X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=406523d20d061897cb5fe9fc9e4bbe2bb45128fa;p=thirdparty%2Felfutils.git Merge commit 'elfutils-0.148' into dwarf Conflicts: libdw/Makefile.am libdw/libdwP.h src/readelf.c --- 406523d20d061897cb5fe9fc9e4bbe2bb45128fa diff --cc lib/ChangeLog index f4aa0dfc1,1b8b42bc8..b487fb4ea --- a/lib/ChangeLog +++ b/lib/ChangeLog @@@ -1,7 -1,9 +1,13 @@@ + 2010-06-16 Roland McGrath + + * dynamicsizehash.h (HASHTYPE): New macro. + (struct): Use size_t for table sizes. + * dynamicsizehash.c: Likewise. Use HASHTYPE for hash values. + +2009-01-25 Roland McGrath + + * eu-config.h (__STDC_LIMIT_MACROS): Define it. + 2010-02-15 Roland McGrath * Makefile.am: Use config/eu.am for common stuff. diff --cc libdw/Makefile.am index 08c3f092c,530cbf4b2..a6c98a879 --- a/libdw/Makefile.am +++ b/libdw/Makefile.am @@@ -39,15 -39,7 +39,15 @@@ noinst_PROGRAMS = $(noinst_LIBRARIES:_p endif include_HEADERS = dwarf.h -pkginclude_HEADERS = libdw.h +pkginclude_HEADERS = libdw.h \ + c++/subr.hh c++/dwarf_data \ + c++/dwarf c++/dwarf_edit c++/dwarf_output \ + c++/dwarf_tracker c++/dwarf_ref_maker \ + c++/dwarf_comparator + +noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h \ - cfi.h encoded-value.h \ ++ dwarf_sig8_hash.h cfi.h encoded-value.h \ + known-dwarf.h c++/dwarf-knowledge.cc c++/data-values.hh libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \ dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \ diff --cc libdw/libdwP.h index 7a3a360ab,bb0ae1d11..bbe928968 --- a/libdw/libdwP.h +++ b/libdw/libdwP.h @@@ -310,24 -320,20 +320,25 @@@ struct Dwarf_C the '- 4' term changes the '3 *' into a '2 *'. If the offset_size is 8 it accounts for the 4-byte escape value used at the start of the length. */ - #define DIE_OFFSET_FROM_CU_OFFSET(cu_offset, offset_size) \ - ((cu_offset) + 3 * (offset_size) - 4 + 3) - - #define CUDIE_ADDR(fromcu) \ - ((char *) (fromcu)->dbg->sectiondata[IDX_debug_info]->d_buf \ - + DIE_OFFSET_FROM_CU_OFFSET ((fromcu)->start, (fromcu)->offset_size)) + #define DIE_OFFSET_FROM_CU_OFFSET(cu_offset, offset_size, type_unit) \ + ((type_unit) ? ((cu_offset) + 4 * (offset_size) - 4 + 3 + 8) \ + : ((cu_offset) + 3 * (offset_size) - 4 + 3)) + -#define CUDIE(fromcu) \ - ((Dwarf_Die) \ - { \ - .cu = (fromcu), \ - .addr = ((char *) cu_data (fromcu)->d_buf \ - + DIE_OFFSET_FROM_CU_OFFSET ((fromcu)->start, \ - (fromcu)->offset_size, \ - (fromcu)->type_offset != 0)) \ - }) \ - ++#define CUDIE_INIT(fromcu) \ ++ { \ ++ ((char *) cu_data (fromcu)->d_buf \ ++ + DIE_OFFSET_FROM_CU_OFFSET ((fromcu)->start, \ ++ (fromcu)->offset_size, \ ++ (fromcu)->type_offset != 0)), \ ++ (fromcu), \ ++ NULL, 0l \ ++ } + +#ifdef __cplusplus - # define CUDIE(name, fromcu) \ - Dwarf_Die name = { CUDIE_ADDR (fromcu), (fromcu), NULL, 0l } ++# define CUDIE(name, fromcu) Dwarf_Die name = CUDIE_INIT (fromcu) +#else - # define CUDIE(fromcu) \ - ((Dwarf_Die) \ - { \ - .cu = (fromcu), \ - .addr = CUDIE_ADDR (fromcu), \ - }) ++# define CUDIE(fromcu) ((Dwarf_Die) CUDIE_INIT (fromcu)) +#endif /* Macro information. */ struct Dwarf_Macro_s @@@ -599,8 -621,8 +615,20 @@@ unsigned char * __libdw_formptr (Dwarf_ int err_nodata, unsigned char **endpp, Dwarf_Off *offsetp) internal_function; +#endif /* Not C++ */ + ++static inline size_t ++cu_sec_idx (struct Dwarf_CU *cu) ++{ ++ return cu->type_offset == 0 ? IDX_debug_info : IDX_debug_types; ++} + ++static inline Elf_Data * ++cu_data (struct Dwarf_CU *cu) ++{ ++ return cu->dbg->sectiondata[cu_sec_idx (cu)]; ++} + /* Aliases to avoid PLTs. */ INTDECL (dwarf_aggregate_size)