mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-05-18 19:25:16 +02:00
da0b1a146f
This patch adds support for the powerpc64le-linux platform. It consists of two main features: - Support little-endian byte order This is done via a "big_endian" member of struct unw_addr_space, which is evaluated by common code via the dwarf_is_big_endian macro, and also in endian-aware code in unw_is_signal_frame. - Support the ELFv2 ABI This is done via an "abi" member of struct unw_addr_space. This is currently only needed in tdep_get_func_addr, since the ELFv2 ABI does not use function descriptors. Both new members are initialized in unw_create_addr_space and ppc64_local_addr_space_init, following the mips precedent. Since ppc32 and ppc64 now no longer share the unw_create_addr_space implementation, the file is duplicated from the ppc directory into ppc32/ppc64. Tested on powerpc64-linux and powerpc64le-linux. Support on LE seems to be as good as existing BE support; I have not attempted to fix the existing shortcomings of PPC support that already cause a number to tests to fail due to unimplemented features. Signed-off-by: Ulrich Weigand <uweigand@de.ibm.com>
6 lines
142 B
C
6 lines
142 B
C
#define UNW_LOCAL_ONLY
|
|
#include <libunwind.h>
|
|
#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
|
|
#include "Gcreate_addr_space.c"
|
|
#endif
|