diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2013-05-06 18:23:01 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2013-05-06 18:23:01 +0000 |
commit | 8e096c4ec507d9de1dd2f0d86ae925eb34b57053 (patch) | |
tree | 7660f30dfba18cb47f355c98e82d2ca355b06c9e | |
parent | a32b6837044c54957b9b90954e246a56c9bef403 (diff) | |
download | strace-8e096c4ec507d9de1dd2f0d86ae925eb34b57053.tar.gz strace-8e096c4ec507d9de1dd2f0d86ae925eb34b57053.tar.bz2 strace-8e096c4ec507d9de1dd2f0d86ae925eb34b57053.tar.xz |
ARM OABI: fix 64-bit arguments decoding
ARM OABI and ARM EABI have different function parameters passing rules,
see commit v4.6-11-g7a5b08f for details.
* util.c (printllval): Do not align argument number in case of ARM OABI.
* file.c (sys_fadvise64_64): Likewise.
-rw-r--r-- | file.c | 2 | ||||
-rw-r--r-- | util.c | 5 |
2 files changed, 5 insertions, 2 deletions
@@ -2677,7 +2677,7 @@ sys_fadvise64_64(struct tcb *tcp) printfd(tcp, tcp->u_arg[0]); argn = printllval(tcp, ", %lld, ", 1); argn = printllval(tcp, "%lld, ", argn); -#if defined ARM || defined AARCH64 || defined POWERPC || defined XTENSA +#if defined __ARM_EABI__ || defined AARCH64 || defined POWERPC || defined XTENSA printxval(advise, tcp->u_arg[1], "POSIX_FADV_???"); #else printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???"); @@ -207,7 +207,10 @@ printllval(struct tcb *tcp, const char *format, int arg_no) arg_no += 2; } #else -# if defined(ARM) || defined(POWERPC) || defined(LINUX_MIPSO32) || defined(XTENSA) +# if defined __ARM_EABI__ || \ + defined LINUX_MIPSO32 || \ + defined POWERPC || \ + defined XTENSA /* Align arg_no to the next even number. */ arg_no = (arg_no + 1) & 0xe; # endif |