On Sun, May 26, 2024 at 11:50 PM Max Filippov <jcmvb...@gmail.com> wrote:
>
> Instead of a single base address FDPIC ELF files use load map: a
> structure with an array of mappings for individual segments.  Change
> libbacktrace functions and structures to support that.

Ping?

> libbacktrace/
>
>         PR libbacktrace/114941
>         * dwarf.c: Include <link.h> or <sys/link.h> if available.
>         (struct dwarf_data): Change base_address type to base_address_type.
>         (add_low_high_range): Change base_address argument type to
>         base_address_type.  Use __RELOC_UINTPTR for lowpc and highpc
>         calculation.
>         (add_ranges_from_ranges): Change base_address argument type to
>         base_address_type.  Use __RELOC_UINTPTR to calculate arguments
>         for add_range().
>         (add_ranges_from_rnglists): Change base_address argument type to
>         base_address_type.  Use __RELOC_UINTPTR to calculate arguments
>         for add_range().  Use __RELOC_UINTPTR for low calculation.
>         (add_ranges, find_address_ranges, build_address_map): Change
>         base_address argument type to base_address_type.
>         (add_line): Use __RELOC_UINTPTR for ln->pc calculation.
>         (build_dwarf_data, backtrace_dwarf_add): Change base_address
>         argument type to base_address_type.
>         * elf.c (elf_initialize_syminfo): Change base_address argument
>         type to base_address_type.  Use __RELOC_UINTPTR for
>         elf_symbols[j].address calculation.
>         (elf_add): Change base_address argument type to
>         base_address_type.  Do early return -1 in case of FDPIC
>         executable, update corresponding comment.
>         (backtrace_initialize): Change NULL base address parameter in
>         the add_elf() call to no_base_address.
>         * internal.h (base_address_type, __RELOC_POINTER)
>         (__RELOC_UINTPTR, no_base_address): New definitions.
>         (backtrace_dwarf_add): Change base_address argument type to
>         base_address_type.
> ---
>  libbacktrace/dwarf.c    | 60 ++++++++++++++++++++++++-----------------
>  libbacktrace/elf.c      | 20 +++++++++-----
>  libbacktrace/internal.h | 14 +++++++++-
>  3 files changed, 62 insertions(+), 32 deletions(-)

-- 
Thanks.
-- Max

Reply via email to