+ 2010-06-16 Roland McGrath <roland@redhat.com>
+
+ * 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 <roland@redhat.com>
+
+ * eu-config.h (__STDC_LIMIT_MACROS): Define it.
+
2010-02-15 Roland McGrath <roland@redhat.com>
* Makefile.am: Use config/eu.am for common stuff.
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 \
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
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)