PR sanitizer/77631
commitb919941efc58035debbcf69b645c072b7dd6ba4e
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Sep 2017 21:09:37 +0000 (20 21:09 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Sep 2017 21:09:37 +0000 (20 21:09 +0000)
treee52a88d0b1f5cfcb40440155b8e658b582180f36
parente6b5fa173fef314f40dea48230b0bcb36663c44f
PR sanitizer/77631
Support for external debug info.
* elf.c: Include <errno.h>, <sys/stat.h>, <unistd.h>.
(S_ISLNK): Define if not defined.
(xstrnlen): Define if strnlen is not available.
(b_elf_note): Define type.
(NT_GNU_BUILD_ID): Define macro.
(elf_crc32, elf_crc32_file): New static functions.
(elf_is_symlink, elf_readlink): New static functions.
(elf_open_debugfile_by_buildid): New static function.
(elf_try_debugfile): New static function.
(elf_find_debugfile_by_debuglink): New static function.
(elf_open_debugfile_by_debuglink): New static function.
(elf_add): Add filename and debuginfo parameters.  Adjust all
callers.  Look for external debug info notes, and try to fetch
debug info from external file.
(struct phdr_data): Add exe_filename field.
(phdr_callback): Pass filename to elf_add.
(backtrace_initialize): Add filename parameter.
* internal.h (backtrace_initialize): Add filename parameter.
* fileline.c (fileline_initialize): Pass filename to
backtrace_initialize.
* pecoff.c (fileline_initialize): Add unused filename parameter.
* unknown.c (fileline_initialize): Likewise.
* xcoff.c (fileline_initialize): Likewise.
* configure.ac: Check for objcopy --add-gnu-debuglink.
* Makefile.am (dtest): New test target.
* configure, Makefile.in: Rebuild.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253032 138bc75d-0d04-0410-961f-82ee72b054a4
libbacktrace/ChangeLog
libbacktrace/Makefile.am
libbacktrace/Makefile.in
libbacktrace/configure
libbacktrace/configure.ac
libbacktrace/elf.c
libbacktrace/fileline.c
libbacktrace/internal.h
libbacktrace/pecoff.c
libbacktrace/unknown.c
libbacktrace/xcoff.c