+2012-08-24 Mark Wielaard <mjw@redhat.com>
+
+ * configure.ac: Add --enable-dwz check, defaults to no.
+
2012-07-24 Mark Wielaard <mjw@redhat.com>
* TODO: Add note on shdrs after elf_cntl (ELF_C_FDREAD).
Any existing sources using the old name will have to be updated.
Add DW_MACRO_GNU .debug_macro type encodings constants, DW_ATE_UTF
and DW_OP_GNU_parameter_ref to dwarf.h.
- Support for DWZ multifile forms DW_FORM_GNU_ref_alt/strp_alt.
+ Experimental support for DWZ multifile forms DW_FORM_GNU_ref_alt
+ and DW_FORM_GNU_strp_alt. Disabled by default. Use configure
+ --enable-dwz to test it.
readelf: Add .debug_macro parsing support.
Add .gdb_index version 7 parsing support.
AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
+AC_ARG_ENABLE([dwz],
+AS_HELP_STRING([--enable-dwz], [enable experimental GNU ref_alt FORM, dwz multi file support in libdw]),
+enable_dwz=$enableval, enable_dwz=no)
+AM_CONDITIONAL(ENABLE_DWZ, test "$enable_dwz" = yes)
+AS_IF([test "$enable_dwz" = yes], [AC_DEFINE(ENABLE_DWZ)])
+
+AH_TEMPLATE([ENABLE_DWZ], [Defined if libdw should support GNU ref_alt FORM, dwz multi files.])
+
AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_YACC
+2012-08-24 Mark Wielaard <mjw@redhat.com>
+
+ * dwarf_begin_elf.c (check_section): Only probe for dwz multi files
+ when ENABLE_DWZ is defined.
+ * libdwP.h (__check_build_id): Only declare when ENABLE_DWZ is
+ defined.
+
2012-08-16 Mark Wielaard <mjw@redhat.com>
* Makefile.am (EXTRA_DIST): Add known-dwarf.h.
};
#define ndwarf_scnnames (sizeof (dwarf_scnnames) / sizeof (dwarf_scnnames[0]))
+#ifdef ENABLE_DWZ
internal_function int
__check_build_id (Dwarf *dw, const uint8_t *build_id, const size_t id_len)
{
result->alt_dwarf = NULL;
return result;
}
+#endif /* ENABLE_DWZ */
static Dwarf *
check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp)
return NULL;
}
+#ifdef ENABLE_DWZ
/* For dwz multifile support, ignore if it looks wrong. */
if (strcmp (scnname, ".gnu_debugaltlink") == 0)
{
return open_debugaltlink (result, alt_name, build_id + 1, id_len);
}
}
-
+#endif /* ENABLE_DWZ */
/* Recognize the various sections. Most names start with .debug_. */
size_t cnt;
Dwarf_Off *offsetp)
internal_function;
+#ifdef ENABLE_DWZ
/* Checks that the build_id of the underlying Elf matches the expected.
Returns zero on match, -1 on error or no build_id found or 1 when
build_id doesn't match. */
int __check_build_id (Dwarf *dw, const uint8_t *build_id, const size_t id_len)
internal_function;
-
+#endif /* ENABLE_DWZ */
/* Aliases to avoid PLTs. */
+2012-08-24 Mark Wielaard <mjw@redhat.com>
+
+ * Makefile.am (TESTS): Only add run-readelf-dwz-multi.sh if
+ ENABLE_DWZ.
+
2012-08-16 Mark Wielaard <mjw@redhat.com>
* allregs.c (dwarf_encoding_string): Rewritten using known-dwarf
run-nm-self.sh run-readelf-self.sh \
run-readelf-test1.sh run-readelf-test2.sh run-readelf-test3.sh \
run-readelf-test4.sh run-readelf-twofiles.sh \
- run-readelf-macro.sh run-readelf-dwz-multi.sh \
+ run-readelf-macro.sh \
run-native-test.sh run-bug1-test.sh \
dwfl-bug-addr-overflow run-addrname-test.sh \
dwfl-bug-fd-leak dwfl-bug-report \
TESTS += $(asm_TESTS)
endif
+if ENABLE_DWZ
+TESTS += run-readelf-dwz-multi.sh
+endif
+
EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
run-show-die-info.sh run-get-files.sh run-get-lines.sh \