Richard Biener
9ae4f4ae44
[libbacktrace] fix up broken test
...
zstdtest has some inline data where some testcases lack the
uncompressed length field. Thus it computes that but still
ends up allocating memory for the uncompressed buffer based on
that (zero) length. Oops. Causes memory corruption if the
allocator returns non-NULL.
libbacktrace/
* zstdtest.c (test_samples): Properly compute the allocation
size for the uncompressed data.
2023-08-03 11:47:58 -07:00
Ian Lance Taylor
c1c86fa2f0
libbacktrace: look for _pgmptr on Windows
...
Patch from Andres Freund:
* configure.ac: Check for _pgmptr declaration.
* fileline.c (fileline_initialize): Check for _pgmfptr before
/proc/self/exec.
* configure, config.h.in: Regenerate.
2023-07-31 17:02:14 -07:00
Ian Lance Taylor
cdb64b688d
libbacktrace: minor fixes for zstd decompression
...
* elf.c (elf_zstd_read_fse): Call elf_fetch_bits after reading
bits, not before. Add unlikely for error case.
(elf_zstd_offset_table): Regenerate.
(elf_zstd_read_huff): Clear 13 entries in weight_mark, not 12.
(elf_zstd_read_literals): For a single stream adjust by
total_streams_size, not compressed_size.
2023-03-28 13:10:54 -07:00
Ian Lance Taylor
afe2967c77
libbacktrace: change PC variables from uint64_t to uintptr_t
...
Change variables holding PC values from uint64_t to uintptr_t.
Patch by Björn Schäpers.
* dwarf.c (struct function_addrs): Change low and high fields to
uintptr_t.
(struct unit_addrs): Likewise.
(resolve_addr_index): Change address parameter to uintptr_t*.
(add_unit_addr): Change lowpc and highpc parameters to uintptr_t.
(add_function_range): Likewise.
(struct pcrange): Change lowpc and highpc fields to uintptr_t.
(add_low_high_range): Change add_range lowpc and highpc parameters
to uintptr_t.
(add_ranges_from_ranges): Likewise.
(add_ranges_from_rnglists): Likewise.
(add_low_high_range): Chnage lowpc and highpc variables to
uintpr_t.
(add_ranges_from_rnglists): Change some local variables to
uintptr_t.
(add_ranges_from_ranges): Change base parameter to uintptr_t.
(add_ranges_from_rnglists): Likewise.
(read_function_entry): Likewise.
(resolve_addr_index): Add explicit casts to uintptr_t.
(update_pcrange): Likewise.
(add_ranges_from_ranges): Likewise.
(add_ranges_from_rnglists): Likewise.
(read_function_entry): Likewise.
2023-01-20 14:25:38 -08:00
Ian Lance Taylor
ad106d5fdd
libbacktrace: don't run --build-id tests if it is not supported
...
PR libbacktrace/108297
* configure.ac: Test whether linker supports --build-id.
* Makefile.am: Only run --build-id tests if supported.
* configure, Makefile.in: Regenerate.
2023-01-06 09:46:08 -08:00
Ian Lance Taylor
da7eff2f37
libbacktrace: unpack literals into output buffer
...
* elf.c (elf_fetch_backward_init): New static function.
(ZSTD_TABLE_SIZE): Use huffman scratch space size rather than
literal size.
(ZSTD_TABLE_WORK_LIT_SIZE): Don't define.
(elf_zstd_read_huff): Use elf_fetch_backward_init.
(elf_zstd_read_literals): New static function.
(ZSTD_LIT_RAW, ZSTD_LIT_RLE, ZSTD_LIT_HUFF): Don't define.
(struct elf_zstd_literals): Don't define.
(elf_zstd_literal_output): Remove static function.
(elf_zstd_decompress): Use elf_fetch_backward_init and
elf_zstd_read_literals. Rewrite literal copying.<
2022-12-16 18:53:11 -08:00
Ian Lance Taylor
fd9442f7b5
libbacktrace: rewrite and simplify main zstd loop
...
* elf.c (ZSTD_TABLE_*): Use elf_zstd_fse_baseline_entry.
(ZSTD_ENCODE_BASELINE_BITS): Define.
(ZSTD_DECODE_BASELINE, ZSTD_DECODE_BASEBITS): Define.
(elf_zstd_literal_length_base): New static const array.
(elf_zstd_match_length_base): Likewise.
(struct elf_zstd_fse_baseline_entry): Define.
(elf_zstd_make_literal_baseline_fse): New static function.
(elf_zstd_make_offset_baseline_fse): Likewise.
(elf_zstd_make_match_baseline_fse): Likewise.
(print_table, main): Use elf_zstd_fse_baseline_entry.
(elf_zstd_lit_table, elf_zstd_match_table): Likewise.
(elf_zstd_offset_table): Likewise.
(struct elf_zstd_seq_decode): Likewise. Remove use_rle and rle
fields.
(elf_zstd_unpack_seq_decode): Use elf_zstd_fse_baseline_entry,
taking a conversion function. Convert RLE to FSE.
(elf_zstd_literal_length_baseline): Remove.
(elf_zstd_literal_length_bits): Remove.
(elf_zstd_match_length_baseline): Remove.
(elf_zstd_match_length_bits): Remove.
(elf_zstd_decompress): Use elf_zstd_fse_baseline_entry. Rewrite
and simplify main loop.
2022-12-09 17:47:18 -08:00
Ian Lance Taylor
c992dd8a9b
libbacktrace: support zstd decompression
...
Support decompressing --compress-debug-sections=zstd.
* configure.ac: Check for zstd library and
--compress-debug-sections=zstd linker option.
* Makefile.am (zstdtest_*): New targets.
(zstdtest_alloc_*, ctestzstd_*): New targets.
(BUILDTESTS): Add zstdtest, zstdtest_alloc, ctestzstd as
appropriate.
* elf.c (ELFCOMPRESS_ZSTD): Define.
(elf_fetch_bits): Rename from elf_zlib_fetch. Update uses.
(elf_fetch_bits_backward): New static function.
(ZLIB_HUFFMAN_*): Rename from HUFFMAN_*. Update uses.
(ZLIB_TABLE_*): Rename from ZDEBUG_TABLE_*. Update uses.
(ZSTD_TABLE_*): Define.
(struct elf_zstd_fse_entry): Define.
(elf_zstd_read_fse): New static function.
(elf_zstd_build_fse): Likewise.
(lit): Define if BACKTRACE_GENERATE_ZSTD_FSE_TABLES.
(match, offset, next, print_table, main): Likewise.
(elf_zstd_lit_table): New static const array.
(elf_zstd_match_table, elf_zstd_offset_table): Likewise.
(elf_zstd_read_huff): New static function.
(struct elf_zstd_seq_decode): Define.
(elf_zstd_unpack_seq_decode): New static function.
(ZSTD_LIT_*): Define.
(struct elf_zstd_literals): Define.
(elf_zstd_literal_output): New static function.
(ZSTD_LITERAL_LENGTH_BASELINE_OFFSET): Define.
(elf_zstd_literal_length_baseline): New static const array.
(elf_zstd_literal_length_bits): Likewise.
(ZSTD_MATCH_LENGTH_BASELINE_OFFSET): Define.
(elf_zstd_match_length_baseline): New static const array.
(elf_zstd_match_length_bits): Likewise.
(elf_zstd_decompress): New static function.
(ZDEBUG_TABLE_SIZE): New definition.
(elf_uncompress_chdr): Support ELF_COMPRESS_ZSTD.
(backtrace_uncompress_zstd): New function.
(elf_add): Use ZLIB_TABLE_SIZE for zlib-gnu sections.
* internal.h (backtrace_uncompress_zstd): Declare.
* zstdtest.c: New file.
* configure, config.h.in, Makefile.in: Regenerate.
2022-12-07 16:27:12 -08:00
Ian Lance Taylor
8602fda64e
libbacktrace: check for sys/link.h
...
QNX uses sys/link.h rather than link.h for dl_iterate_phdr
Fixes #86
* configure.ac: Check for sys/link.h. Use either link.h or
sys/link.h when checking for dl_iterate_phdr.
* elf.c: Include sys/link.h if available.
* configure, config.h.in: Regenerate.
2022-07-08 10:35:17 -07:00
Ian Lance Taylor
7409767403
libbacktrace: don't exit Mach-O dyld library loop on one failure
...
* macho.c (backtrace_initialize) [HAVE_MACH_O_DYLD_H]: Don't exit
loop if we can't find debug info for one shared library.
For #85
2022-07-07 16:55:51 -07:00
Ian Lance Taylor
bc78542d20
libbacktrace: don't let "make clean" remove allocfail.sh
...
* Makefile.am (MAKETESTS): New variable split out of TESTS.
(CLEANFILES): Replace TESTS with BUILDTESTS and MAKETESTS.
* Makefile.in: Regenerate.
Fixes #81
2022-07-07 16:18:23 -07:00
Ian Lance Taylor
b6ddb3aa1b
libbacktrace: replace fgrep with grep in configure script
...
Patch by Xi Ruoyao.
* configure.ac: Use grep instead of fgrep.
* configure: Regenerate.
2022-07-07 15:46:41 -07:00
Ian Lance Taylor
4d2dd0b172
libbacktrace: don't skip initial aligned byte in uncompressed block
...
Patch from Rui Ueyama, who says:
libbacktrace occasionally fails to decompress compressed debug info
even though the sections contain valid zlib streams. The cause of the
issue is an off-by-one error.
If a zlib data block is a plain data (uncompressed data), the next two
bytes contain the size of the block. These two bytes value is byte-
aligned, so if we read-ahead more than 8 bits, we need to unread it.
So, the correct condition to determine whether or not we need to
unread a byte is bits >= 8 and not bits > 8. Due to this error,
if the last read bits happened to end at a byte boundary, the next
byte would be skipped. That caused the decompression failure.
This bug was originally reported against the mold linker.
rui314/mold#402
* elf.c (elf_zlib_inflate): Don't skip initial aligned byte in
uncompressed block.
2022-04-05 16:10:04 -07:00
Ian Lance Taylor
2446c66076
libbacktrace: gather address ranges from skeleton units
...
* dwarf.c (find_address_ranges): Handle skeleton units.
(read_function_entry): Likewise.
2022-02-17 08:27:13 -08:00
Ian Lance Taylor
509f74a2fb
libbacktrace: initialize DWARF 5 fields of unit
...
When I added the fields in 2019-12-13 I forgot to initialize them.
* dwarf.c (build_address_map): Initialize DWARF 5 fields of unit.
2022-02-16 11:42:40 -08:00
Ian Lance Taylor
c062afc28c
configury: support --disable-werror
2022-02-16 11:41:40 -08:00
Ian Lance Taylor
332522e199
configury: update to recent versions
...
Copied from GCC tip.
Fixes #84
2022-01-18 20:10:43 -08:00
Ian Lance Taylor
d0f5e95a87
config/override.m4: don't require exactly autoconf 2.69
...
Fixes #71
Fixes #74
2021-05-29 14:17:08 -07:00
Ian Lance Taylor
4f57c99971
libbacktrace: don't special case file 0
...
It's no longer necessary as file 0 is now set up in all cases.
* dwarf.c (read_line_program): Don't special case file 0.
(read_function_entry): Likewise.
Fixes #69
2021-03-02 18:17:36 -08:00
Ian Lance Taylor
59473f7906
libbacktrace: pass -1 to error callback for unrecognized DWARF
...
PR libbacktrace/98818
* dwarf.c (dwarf_buf_error): Add errnum parameter. Change all
callers.
* backtrace.h: Update backtrace_error_callback comment.
2021-03-02 13:49:18 -08:00
Ian Lance Taylor
7854b0bc25
libbacktrace: check for objcopy --add-gnu-debuglink using --help
...
* configure.ac: Check for objcopy --add-gnu-debuglink by using
objcopy --help.
* configure: Regenerate
2021-02-11 18:11:18 -08:00
Ian Lance Taylor
dedbe13fda
libbacktrace: don't fail tests if dwz fails
...
* Makefile.am (%_dwz): If dwz fails, use uncompressed debug info.
* Makefile.in: Regenerate.
2021-01-18 14:58:41 -08:00
Ian Lance Taylor
096650403a
libbacktrace: use correct directory/filename for DWARF 5
...
PR debug/98716
* dwarf.c (read_v2_paths): Allocate zero entry for dirs and
filenames.
(read_line_program): Remove parameter u, change caller. Don't
subtract one from dirs and filenames index.
(read_function_entry): Don't subtract one from filenames index.
2021-01-18 14:57:11 -08:00
Jakub Jelinek
5496ee0a1a
Update copyright years.
2021-01-18 14:56:19 -08:00
Ian Lance Taylor
1da441c1b0
libbacktrace: correct buffer overflow tests
...
* dwarf.c (resolve_string): Use > rather than >= to check whether
string index extends past buffer.
(resolve_addr_index): Similarly for address index.
2020-12-04 11:19:55 -08:00
Ian Lance Taylor
f24e9f401f
libbacktrace: update README
2020-10-26 13:45:23 -07:00
Ian Lance Taylor
73eb1803b1
libbacktrace: use __attribute__((__fallthrough__))
...
Use an attribute rather than a comment when falling through a switch case.
* internal.h (ATTRIBUTE_FALLTHROUGH): Define.
* elf.c (elf_zlib_inflate): Use ATTRIBUTE_FALLTHROUGH.
2020-10-20 11:50:23 -07:00
Ian Lance Taylor
5009c11398
libbacktrace: replace Tom Sawyer with Opticks
...
The main source uses Opticks now.
2020-09-30 20:08:56 -07:00
Ian Lance Taylor
3bd25ab355
libbacktrace/ChangeLog:
...
PR libbacktrace/97082
* Makefile.am (check_DATA): Add mtest.dSYM if USE_DSYMUTIL.
* Makefile.in: Regenerate.
2020-09-28 13:57:18 -07:00
Ian Lance Taylor
1286f69fde
libbacktrace: only run dsymutil with Mach-O
...
libbacktrace/ChangeLog:
PR libbacktrace/97227
* configure.ac (USE_DSYMUTIL): Define instead of HAVE_DSYMUTIL.
* Makefile.am: Change all uses of HAVE_DSYMUTIL to USE_DSYMUTIL.
* configure: Regenerate.
* Makefile.in: Regenerate.
2020-09-28 13:50:34 -07:00
Ian Lance Taylor
95e8e96c86
libbacktrace: handle pc == low correctly
...
* dwarf.c (report_inlined_functions): Handle PC == -1 and PC ==
p->low.
(dwarf_lookup_pc): Likewise.
2020-09-27 17:30:21 -07:00
Ian Lance Taylor
c8a81d4e3a
libbacktrace: use ELF symbol table if no debug info available
...
PR libbacktrace/97080
* fileline.c (backtrace_syminfo_to_full_callback): New function.
(backtrace_syminfo_to_full_error_callback): New function.
* elf.c (elf_nodebug): Call syminfo_fn if possible.
* internal.h (struct backtrace_call_full): Define.
(backtrace_syminfo_to_full_callback): Declare.
(backtrace_syminfo_to_full_error_callback): Declare.
* mtest.c (f3): Only check all[i] if data.index permits.
2020-09-27 17:29:53 -07:00
Iain Sandoe
753968c2e8
libbacktrace, Mach-O : Support PowerPC archs.
...
This adds the PPC architecture variants for Mach-O libbacktrace.
With this (as for X86 and Arm) when dsymutil is run on the binary
we get a basic usable backtrace.
Testsuite results on powerpc-apple-darwin9 are the same as for X86:
* btest fails (TBC why)
* dwarf5 tests fail because dsymutil does not handle that so far.
libbacktrace/ChangeLog:
* macho.c (MACH_O_CPU_TYPE_PPC): New.
(MACH_O_CPU_TYPE_PPC64): New.
Add compile-tests for powerpc to the Mach-O variants.
Close #55
2020-09-27 17:29:21 -07:00
Ian Lance Taylor
77bcaa99f5
libbacktrace: support MiniDebugInfo
...
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.
Close #38
2020-09-27 17:28:39 -07:00
Ian Lance Taylor
2f5efbfa32
libbacktrace: don't strip leading underscore on 64-bit PE
...
* pecoff.c (coff_initialize_syminfo): Add is_64 parameter.
(coff_add): Determine and pass is_64.
Closes #28
2020-09-27 17:19:28 -07:00
Ian Lance Taylor
4ae8d988a7
libbacktrace: fetch executable path on macOS
...
PR libbacktrace/96973
* fileline.c (macho_get_executable_path): New static function.
(fileline_initialize): Call macho_get_executable_path.
2020-09-27 17:18:38 -07:00
Ian Lance Taylor
430dc8b6fe
libbacktrace: avoid ambiguous binary search
...
Searching for a range match can cause the search order to not match
the sort order, which can cause libbacktrace to miss matching entries.
Allocate an extra entry at the end of function_addrs and unit_addrs vectors,
so that we can safely compare to the next entry when searching.
Adjust the matching code accordingly.
Fixes #44
* dwarf.c (function_addrs_search): Compare against the next entry
low address, not the high address.
(unit_addrs_search): Likewise.
(build_address_map): Add a trailing unit_addrs.
(read_function_entry): Add a trailing function_addrs.
(read_function_info): Likewise.
(report_inlined_functions): Search backward for function_addrs
match.
(dwarf_lookup_pc): Search backward for unit_addrs and
function_addrs matches.
2020-09-27 17:17:59 -07:00
Ian Lance Taylor
5dec0fae31
libbacktrace: fix tipo in comment
...
* simple.c (simple_unwind): Correct comment spelling.
Close #47
2020-09-27 17:17:10 -07:00
Ian Lance Taylor
030bd0a709
libbacktrace: correct memory lengths in Mach-O dsym support
...
* macho.c (macho_add_dsym): Make space for '/' in dsym. Use
correct length when freeing diralc.
Close #40
2020-09-27 17:16:15 -07:00
Ian Lance Taylor
b3b57f9ee0
libbacktrace: correctly swap Mach-O 32-bit file offset
...
libbacktrace/ChangeLog:
PR libbacktrace/96973
* macho.c (macho_add_fat): Correctly swap 32-bit file offset.
2020-09-27 17:15:03 -07:00
Ian Lance Taylor
886aef3783
libbacktrace: only match magic number at start of line
...
libbacktrace/ChangeLog:
PR libbacktrace/96971
* filetype.awk: Only match magic number at start of line.
2020-09-27 17:14:27 -07:00
Ian Lance Taylor
89b2b5066b
libbacktrace: add Mach-O 64-bit FAT support
...
libbacktrace/:
* macho.c (MACH_O_MH_MAGIC_FAT_64): Define.
(MACH_O_MH_CIGAM_FAT_64): Define.
(struct macho_fat_arch_64): Define.
(macho_add_fat): Add and use is_64 parameter.
(macho_add): Recognize 64-bit fat files.
2020-09-27 17:13:21 -07:00
Ian Lance Taylor
aaa51b6dbe
libbacktrace: test linker support for DWARF 5
...
On AIX, the compiler supports DWARF 5 but the linker does not.
2020-07-07 Clement Chigot <clement.chigot@atos.net >
* configure.ac: Test linker support for DWARF5
* configure: Regenerate
2020-09-27 17:12:15 -07:00
Ian Lance Taylor
9b7f216e86
libbacktrace: mark test_large parameter unused in ztest.c
2020-05-13 11:11:13 -07:00
Ian Lance Taylor
d68a7ac6dd
libbacktrace: treat EACCESS like ENOENT
...
For https://gcc.gnu.org/PR95061
2020-05-13 10:29:45 -07:00
Ian Lance Taylor
14465a9574
libbacktrace: declare getpagesize if necessary
...
Fixes https://gcc.gnu.org/PR95012 .
2020-05-11 10:54:46 -07:00
Ian Lance Taylor
7206f5bd06
libbacktrace: don't crash if ELF file has no sections
...
Patch from Roland McGrath.
Fixes #41
2020-05-09 20:36:19 -07:00
Ian Lance Taylor
ca0de0517f
libbacktrace: don't free ELF strtab if error occurs after saving syminfo
...
Fixes #29
2020-02-19 10:32:09 -08:00
Ian Lance Taylor
4e548e735f
libbacktrace: add preliminary Mach-O support
2020-02-18 18:57:14 -08:00
Ian Lance Taylor
929d6205cf
libbacktrace: always pass -g when compiling test code
...
This approach required adding a few casts to ztest.c, as it is now
compiled with -Wall.
Fixes GCC PR libbacktrace/90636
2020-02-18 18:49:42 -08:00