Skip to content
Snippets Groups Projects
  1. Jan 04, 2021
  2. Sep 14, 2020
    • Ian Lance Taylor's avatar
      libbacktrace: support MiniDebugInfo · 05f40bc4
      Ian Lance Taylor authored
      libbacktrace/ChangeLog:
      	PR libbacktrace/93608
      	Add support for MiniDebugInfo.
      	* elf.c (struct elf_view): Define.  Replace most uses of
      	backtrace_view with elf_view.
      	(elf_get_view): New static functions.  Replace most calls of
      	backtrace_get_view with elf_get_view.
      	(elf_release_view): New static functions.  Replace most calls of
      	backtrace_release_view with elf_release_view.
      	(elf_uncompress_failed): Rename from elf_zlib_failed.  Change all
      	callers.
      	(LZMA_STATES, LZMA_POS_STATES, LZMA_DIST_STATES): Define.
      	(LZMA_DIST_SLOTS, LZMA_DIST_MODEL_START): Define.
      	(LZMA_DIST_MODEL_END, LZMA_FULL_DISTANCES): Define.
      	(LZMA_ALIGN_SIZE, LZMA_LEN_LOW_SYMBOLS): Define.
      	(LZMA_LEN_MID_SYMBOLS, LZMA_LEN_HIGH_SYMBOLS): Define.
      	(LZMA_LITERAL_CODERS_MAX, LZMA_LITERAL_CODER_SIZE): Define.
      	(LZMA_PROB_IS_MATCH_LEN, LZMA_PROB_IS_REP_LEN): Define.
      	(LZMA_PROB_IS_REP0_LEN, LZMA_PROB_IS_REP1_LEN): Define.
      	(LZMA_PROB_IS_REP2_LEN, LZMA_PROB_IS_REP0_LONG_LEN): Define.
      	(LZMA_PROB_DIST_SLOT_LEN, LZMA_PROB_DIST_SPECIAL_LEN): Define.
      	(LZMA_PROB_DIST_ALIGN_LEN): Define.
      	(LZMA_PROB_MATCH_LEN_CHOICE_LEN): Define.
      	(LZMA_PROB_MATCH_LEN_CHOICE2_LEN): Define.
      	(LZMA_PROB_MATCH_LEN_LOW_LEN): Define.
      	(LZMA_PROB_MATCH_LEN_MID_LEN): Define.
      	(LZMA_PROB_MATCH_LEN_HIGH_LEN): Define.
      	(LZMA_PROB_REP_LEN_CHOICE_LEN): Define.
      	(LZMA_PROB_REP_LEN_CHOICE2_LEN): Define.
      	(LZMA_PROB_REP_LEN_LOW_LEN): Define.
      	(LZMA_PROB_REP_LEN_MID_LEN): Define.
      	(LZMA_PROB_REP_LEN_HIGH_LEN): Define.
      	(LZMA_PROB_LITERAL_LEN): Define.
      	(LZMA_PROB_IS_MATCH_OFFSET, LZMA_PROB_IS_REP_OFFSET): Define.
      	(LZMA_PROB_IS_REP0_OFFSET, LZMA_PROB_IS_REP1_OFFSET): Define.
      	(LZMA_PROB_IS_REP2_OFFSET): Define.
      	(LZMA_PROB_IS_REP0_LONG_OFFSET): Define.
      	(LZMA_PROB_DIST_SLOT_OFFSET): Define.
      	(LZMA_PROB_DIST_SPECIAL_OFFSET): Define.
      	(LZMA_PROB_DIST_ALIGN_OFFSET): Define.
      	(LZMA_PROB_MATCH_LEN_CHOICE_OFFSET): Define.
      	(LZMA_PROB_MATCH_LEN_CHOICE2_OFFSET): Define.
      	(LZMA_PROB_MATCH_LEN_LOW_OFFSET): Define.
      	(LZMA_PROB_MATCH_LEN_MID_OFFSET): Define.
      	(LZMA_PROB_MATCH_LEN_HIGH_OFFSET): Define.
      	(LZMA_PROB_REP_LEN_CHOICE_OFFSET): Define.
      	(LZMA_PROB_REP_LEN_CHOICE2_OFFSET): Define.
      	(LZMA_PROB_REP_LEN_LOW_OFFSET): Define.
      	(LZMA_PROB_REP_LEN_MID_OFFSET): Define.
      	(LZMA_PROB_REP_LEN_HIGH_OFFSET): Define.
      	(LZMA_PROB_LITERAL_OFFSET): Define.
      	(LZMA_PROB_TOTAL_COUNT): Define.
      	(LZMA_IS_MATCH, LZMA_IS_REP, LZMA_IS_REP0): Define.
      	(LZMA_IS_REP1, LZMA_IS_REP2, LZMA_IS_REP0_LONG): Define.
      	(LZMA_DIST_SLOT, LZMA_DIST_SPECIAL, LZMA_DIST_ALIGN): Define.
      	(LZMA_MATCH_LEN_CHOICE, LZMA_MATCH_LEN_CHOICE2): Define.
      	(LZMA_MATCH_LEN_LOW, LZMA_MATCH_LEN_MID): Define.
      	(LZMA_MATCH_LEN_HIGH, LZMA_REP_LEN_CHOICE): Define.
      	(LZMA_REP_LEN_CHOICE2, LZMA_REP_LEN_LOW): Define.
      	(LZMA_REP_LEN_MID, LZMA_REP_LEN_HIGH, LZMA_LITERAL): Define.
      	(elf_lzma_varint): New static function.
      	(elf_lzma_range_normalize): New static function.
      	(elf_lzma_bit, elf_lzma_integer): New static functions.
      	(elf_lzma_reverse_integer): New static function.
      	(elf_lzma_len, elf_uncompress_lzma_block): New static functions.
      	(elf_uncompress_lzma): New static function.
      	(backtrace_uncompress_lzma): New function.
      	(elf_add): Add memory and memory_size parameters.  Change all
      	callers.  Look for .gnu_debugdata section, and, if found,
      	decompress it and use it for symbols and debug info.  Permit the
      	descriptor parameter to be -1.
      	* internal.h (backtrace_uncompress_lzma): Declare.
      	* mtest.c: New file.
      	* xztest.c: New file.
      	* configure.ac: Check for nm, xz, and comm programs.  Check for
      	liblzma library.
      	(HAVE_MINIDEBUG): Define.
      	* Makefile.am (mtest_SOURCES): Define.
      	(mtest_CFLAGS, mtest_LDADD): Define.
      	(TESTS): Add mtest_minidebug if HAVE_MINIDEBUG.
      	(%_minidebug): New pattern rule, if HAVE_MINIDEBUG.
      	(xztest_SOURCES, xztest_CFLAGS, xztest_LDADD): Define.
      	(xztest_alloc_SOURCES, xztest_alloc_CFLAGS): Define
      	(xztest_alloc_LDADD): Define.
      	(BUILDTESTS): Add mtest, xztest, xztest_alloc.
      	(CLEANFILES): Add files created by minidebug pattern.
      	(btest.lo): Correct INCDIR reference.
      	(mtest.lo, xztest.lo, ztest.lo): New targets.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      	* Makefile.in: Regenerate.
      05f40bc4
  3. May 13, 2020
  4. Feb 16, 2020
  5. Feb 04, 2020
  6. Jan 01, 2020
  7. Jan 01, 2019
  8. Jan 17, 2018
    • Ian Lance Taylor's avatar
      elf.c (codes): Fix size to be 288. · 566588f1
      Ian Lance Taylor authored
      	* elf.c (codes) [GENERATE_FIXED_HUFFMAN_TABLE]: Fix size to be
      	288.
      	(main) [GENERATE_FIXED_HUFFMAN_TABLE]: Pass 288 to
      	elf_zlib_inflate_table.  Generate elf_zlib_default_dist_table.
      	(elf_zlib_default_table): Update.
      	(elf_zlib_default_dist_table): New static array.
      	(elf_zlib_inflate): Use elf_zlib_default_dist_table for dist table
      	for block type 1.
      	* ztest.c (struct zlib_test): Add uncompressed_len.
      	(tests): Initialize uncompressed_len field.  Add new test case.
      	(test_samples): Use uncompressed_len field.
      
      From-SVN: r256776
      566588f1
  9. Jan 03, 2018
  10. Oct 06, 2017
  11. Oct 05, 2017
    • Ian Lance Taylor's avatar
      elf.c (elf_zlib_fetch): Change pval argument to uint64_t *. · a978e26b
      Ian Lance Taylor authored
      	* elf.c (elf_zlib_fetch): Change pval argument to uint64_t *.
      	Read a four byte integer.
      	(elf_zlib_inflate): Change val to uint64_t.  Align pin to a 32-bit
      	boundary before ever calling elf_zlib_fetch.
      	* ztest.c (test_large): Simplify print statements a bit.
      
      From-SVN: r253456
      a978e26b
  12. Oct 03, 2017
    • Ian Lance Taylor's avatar
      ztest.c: #include <errno.h>. · 8398c1df
      Ian Lance Taylor authored
      	* ztest.c: #include <errno.h>.
      	(TEST_TIMING): Don't define, don't test.
      	(xclock_gettime, xclockid_t): Define if !HAVE_CLOCK_GETTIME.
      	(clockid_t, clock_gettime, CLOCK_REALTIME): Likewise.
      	(ZLIB_CLOCK_GETTIME_ARG): Define.
      	* configure.ac: Change clock_gettime_link to CLOCK_GETTIME_LINK.
      	* Makefile.am: Likewise.
      	* configure, Makefile.in: Rebuild.
      
      From-SVN: r253377
      8398c1df
  13. Oct 02, 2017
  14. Sep 29, 2017
    • Ian Lance Taylor's avatar
      re PR other/67165 (please enable libbacktrace to work with compressed debug sections) · 8da872d9
      Ian Lance Taylor authored
      	PR other/67165
      	* elf.c (__builtin_prefetch): Define if not __GNUC__.
      	(unlikely): Define.
      	(SHF_UNCOMPRESSED, ELFCOMPRESS_ZLIB): Define.
      	(b_elf_chdr): Define type.
      	(enum debug_section): Add ZDEBUG_xxx values.
      	(debug_section_names): Add names for new sections.
      	(struct debug_section_info): Add compressed field.
      	(elf_zlib_failed, elf_zlib_fetch): New static functions.
      	(HUFFMAN_TABLE_SIZE, HUFFMAN_VALUE_MASK): Define.
      	(HUFFMAN_BITS_SHIFT, HUFFMAN_BITS_MASK): Define.
      	(HUFFMAN_SECONDARY_SHIFT): Define.
      	(ZDEBUG_TABLE_SIZE): Define.
      	(ZDEBUG_TABLE_CODELEN_OFFSET, ZDEBUG_TABLE_WORK_OFFSET): Define.
      	(final_next_secondary): New static variable if
      	BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE.
      	(elf_zlib_inflate_table): New static function.
      	(BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE): If define, define main
      	function to produce fixed Huffman table.
      	(elf_zlib_default_table): New static variable.
      	(elf_zlib_inflate): New static function.
      	(elf_zlib_verify_checksum): Likewise.
      	(elf_zlib_inflate_and_verify): Likewise.
      	(elf_uncompress_zdebug): Likewise.
      	(elf_uncompress_chdr): Likewise.
      	(backtrace_uncompress_zdebug): New extern function.
      	(elf_add): Look for .zdebug sections and SHF_COMPRESSED debug
      	sections, and uncompress them.
      	* internal.h (backtrace_compress_zdebug): Declare.
      	* ztest.c: New file.
      	* configure.ac: Check for -lz and check whether the linker
      	supports --compress-debug-sections.
      	* Makefile.am (ztest_SOURCES): New variable.
      	(ztest_CFLAGS, ztest_LDADD): New variables.
      	(check_PROGRAMS): Add ztest.
      	(ctestg_SOURCES): New variable.
      	(ctestg_CFLAGS, ctestg_LDFLAGS, ctestg_LDADD): New variables.
      	(ctesta_SOURCES): New variable.
      	(ctesta_CFLAGS, ctesta_LDFLAGS, ctesta_LDADD): New variables.
      	(check_PROGRAMS): Add ctestg and ctesta.
      	* configure, config.h.in, Makefile.in: Rebuild.
      
      From-SVN: r253275
      8da872d9
Loading