]> granicus.if.org Git - strace/commitdiff
printllval: fix 64bit unpacking on mips/o32 and xtensa
authorMike Frysinger <vapier@gentoo.org>
Sun, 5 May 2013 22:30:21 +0000 (18:30 -0400)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 6 May 2013 18:13:34 +0000 (18:13 +0000)
The mips/o32 ABI and xtensa arch also do 64bit aligning, so add it to the
printllval list for this.

Normally for sys_fadvise64_64 we'd handle the same list of arches, but
mips/o32 ABI is funky and doesn't shift -- it has 7 args.  So just add
xtensa to it.

* file.c (sys_fadvise64_64): Add XTENSA to the shifted list.
* util.c (printllval): Add LINUX_MIPSO32 and XTENSA to the shifted list.

file.c
util.c

diff --git a/file.c b/file.c
index e5fc259dc711b7fc1a569befe4d31d96d23b7a2e..07f1ad95b48ca49132d86066af178f45db7e6f9e 100644 (file)
--- a/file.c
+++ b/file.c
@@ -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
+#if defined ARM || defined AARCH64 || defined POWERPC || defined XTENSA
                printxval(advise, tcp->u_arg[1], "POSIX_FADV_???");
 #else
                printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
diff --git a/util.c b/util.c
index 970faa44b1cc4274b34118ae930d99f7ab8041b5..77e939b297184451a5fc3daf5e9a7140182b084b 100644 (file)
--- a/util.c
+++ b/util.c
@@ -207,7 +207,7 @@ printllval(struct tcb *tcp, const char *format, int arg_no)
                arg_no += 2;
        }
 #else
-# if defined(ARM) || defined(POWERPC)
+# if defined(ARM) || defined(POWERPC) || defined(LINUX_MIPSO32) || defined(XTENSA)
        /* Align arg_no to the next even number. */
        arg_no = (arg_no + 1) & 0xe;
 # endif