]> granicus.if.org Git - strace/commit
Add support for tracing 32-bit ARM EABI binaries on AArch64
authorSteve McIntyre <steve.mcintyre@linaro.org>
Sat, 10 Nov 2012 11:24:48 +0000 (11:24 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 12 Nov 2012 15:19:58 +0000 (15:19 +0000)
commit890a5cad2321ae72fb5ca1b253edb874b1ca7180
tree51cc2c84a334598ff4e1fb2849121a91080229eb
parent716c93ecf8edc5dda092d4fa4d878f333a601b51
Add support for tracing 32-bit ARM EABI binaries on AArch64

* defs.h [AARCH64]: Copy in the definition of arm_pt_regs and the
accessor macros, so it's possible to build on AArch64 without
ARM system headers.  Set SUPPORTED_PERSONALITIES to 2.
Define PERSONALITY0_WORDSIZE and PERSONALITY1_WORDSIZE.
Set DEFAULT_PERSONALITY to 1.
* linux/aarch64/errnoent1.h: New file, includes generic errnoent.h.
* linux/aarch64/ioctlent1.h: New file, includes generic ioctlent.h.
* linux/aarch64/signalent1.h: New file, includes generic signalent.h.
* linux/aarch64/syscallent1.h: Rename from linux/aarch64/syscallent.h.
* linux/aarch64/syscallent.h: New file, includes arm/syscallent.h.
* syscall.c [AARCH64]: Define aarch64_regs.
(update_personality) [AARCH64]: Add debug output.
(get_scno) [AARCH64]: Determine if we're in ARM or AArch64 mode by
checking the size of the returned uio structure from PTRACE_GETREGSET
and interpret the structure accordingly.
(get_syscall_result): Likewise.
(get_syscall_args): Merge the AArch64 and ARM sections so that on
AArch64 we can fall back to supporting the ARM personality.
(get_error): Likewise.

Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
defs.h
linux/aarch64/errnoent1.h [new file with mode: 0644]
linux/aarch64/ioctlent1.h [new file with mode: 0644]
linux/aarch64/signalent1.h [new file with mode: 0644]
linux/aarch64/syscallent.h
linux/aarch64/syscallent1.h [new file with mode: 0644]
syscall.c