pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/sysutils/strace make x86_64 work.
details: https://anonhg.NetBSD.org/pkgsrc/rev/8d48e2d15a0c
branches: trunk
changeset: 528290:8d48e2d15a0c
user: christos <christos%pkgsrc.org@localhost>
date: Sat Apr 28 03:42:30 2007 +0000
description:
make x86_64 work.
diffstat:
sysutils/strace/distinfo | 14 +++++-----
sysutils/strace/patches/patch-aj | 10 +++---
sysutils/strace/patches/patch-au | 52 +++++++++++++++++++++------------------
sysutils/strace/patches/patch-ay | 13 ++++++++-
4 files changed, 51 insertions(+), 38 deletions(-)
diffs (217 lines):
diff -r 8b157f588c32 -r 8d48e2d15a0c sysutils/strace/distinfo
--- a/sysutils/strace/distinfo Fri Apr 27 22:31:53 2007 +0000
+++ b/sysutils/strace/distinfo Sat Apr 28 03:42:30 2007 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.5 2007/04/27 19:45:01 christos Exp $
+$NetBSD: distinfo,v 1.6 2007/04/28 03:42:30 christos Exp $
SHA1 (strace-4.5.14.tar.bz2) = 72c17d1dd6786d22ca0aaaa7292b8edcd70a27de
RMD160 (strace-4.5.14.tar.bz2) = cb42cac34d1624dd24842ada0dbb9dfff67e8e93
@@ -12,7 +12,7 @@
SHA1 (patch-ag) = 02c6ce49d7bcefb97e69acc630b5bf82a8bb8a1d
SHA1 (patch-ah) = ad11dff799e48ae9592cb2bb688602637b72f3e2
SHA1 (patch-ai) = 01430e21dd0e6d2e19f93fab8846a3464ee5e7a0
-SHA1 (patch-aj) = 67cf49628622bca7ed3a14c1b014e97b58ebbaba
+SHA1 (patch-aj) = b5adc80e0d3f949e8d4d1c9fcbd49839a6b4d907
SHA1 (patch-ak) = 7b34a03fa9c8761038ef9b19f8ecbded2cc656b8
SHA1 (patch-al) = ea408e93a15c5fdd8054a65b409c60536ca928eb
SHA1 (patch-am) = edb9a6a4b76b6f0a39427562fe96a73fea3ecf4a
@@ -23,11 +23,11 @@
SHA1 (patch-ar) = 12b13f8b7e2054cbe57da6b502f3fe49b91de9ff
SHA1 (patch-as) = b241a70fb33aabb8282578a124b04aca05f0d3f2
SHA1 (patch-at) = da44d0101eb069ea231bdce7051af357e43cb3d1
-SHA1 (patch-au) = ad22866dba3248bdd94f0011d649c092886c13d6
-SHA1 (patch-av) = 039e074373167eb895b2af0a66e5b29ad409496a
-SHA1 (patch-aw) = 6a0d47a187e9aed739f809a68725630157ac2333
-SHA1 (patch-ax) = 21045db2efb1cde53a9f9ef7aeb76e09f9ae1d0b
-SHA1 (patch-ay) = 366a8e42d65a7ffa65b96c32018e5bdbbf67f43e
+SHA1 (patch-au) = fe4c23730ec3bb5624eb49cc981441ccb4b4a620
+SHA1 (patch-av) = fc31e45bf956cf5ddc09e01a7b1a02f15ece7968
+SHA1 (patch-aw) = 6d9c8243df401fb18e621c8965667778640c9d01
+SHA1 (patch-ax) = 6bb4fdfaf26f9ded736f0aa8f0209815ccbea199
+SHA1 (patch-ay) = 9a6942117fc4d26a9256a573559597560295d9c0
SHA1 (patch-az) = af6272c48668785dffd7c5b42b8fa2c8edb562d0
SHA1 (patch-ba) = be8e2f79bd8818b99bdce63fb73802f1a4014b2f
SHA1 (patch-bb) = 044c9a3a1fe88d0c8d12012012dc0428fde5a5c5
diff -r 8b157f588c32 -r 8d48e2d15a0c sysutils/strace/patches/patch-aj
--- a/sysutils/strace/patches/patch-aj Fri Apr 27 22:31:53 2007 +0000
+++ b/sysutils/strace/patches/patch-aj Sat Apr 28 03:42:30 2007 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-aj,v 1.2 2007/04/27 19:45:01 christos Exp $
+$NetBSD: patch-aj,v 1.3 2007/04/28 03:42:31 christos Exp $
---- /dev/null 2007-04-26 23:20:40.000000000 -0400
-+++ netbsd/ioctlent.sh 2007-04-27 14:49:01.000000000 -0400
+--- /dev/null 2007-04-27 23:20:36.000000000 -0400
++++ netbsd/ioctlent.sh 2007-04-27 23:27:49.000000000 -0400
@@ -0,0 +1,123 @@
+#!/bin/sh
-+# $NetBSD: patch-aj,v 1.2 2007/04/27 19:45:01 christos Exp $
++# $NetBSD: patch-aj,v 1.3 2007/04/28 03:42:31 christos Exp $
+#
+# Copyright (c) 1994
+# The Regents of the University of California. All rights reserved.
@@ -120,7 +120,7 @@
+ print "\tint i;\n";
+ print "\tfor (i = 0; i < sizeof(ioctlent0) / sizeof(ioctlent0[0]); i++)\n"
+ print "\t\tprintf(\"\t{ \\\"%s\\\", \\\"%s\\\", 0x%x },%c\",\n"
-+ print "\t\t ioctlent0[i].file, ioctlent0[i].name, 0xffff & ioctlent0[i].number, 012);\n"
++ print "\t\t ioctlent0[i].file, ioctlent0[i].name, 0xffffffff & ioctlent0[i].number, 012);\n"
+ print "\treturn 0;\n";
+ print "}\n";
+}' >> ioctlent.c
diff -r 8b157f588c32 -r 8d48e2d15a0c sysutils/strace/patches/patch-au
--- a/sysutils/strace/patches/patch-au Fri Apr 27 22:31:53 2007 +0000
+++ b/sysutils/strace/patches/patch-au Sat Apr 28 03:42:30 2007 +0000
@@ -1,7 +1,7 @@
-$NetBSD: patch-au,v 1.1 2007/04/27 19:45:02 christos Exp $
+$NetBSD: patch-au,v 1.2 2007/04/28 03:42:31 christos Exp $
--- syscall.c.orig 2006-01-12 05:18:53.000000000 -0500
-+++ syscall.c 2007-04-26 18:09:23.000000000 -0400
++++ syscall.c 2007-04-27 23:32:49.000000000 -0400
@@ -38,9 +38,9 @@
#include <signal.h>
#include <time.h>
@@ -65,7 +65,7 @@
if (pread(tcp->pfd_reg, ®s, sizeof(regs), 0) < 0) {
perror("pread");
return -1;
-@@ -1334,8 +1340,45 @@
+@@ -1334,8 +1340,41 @@
scno = regs.r_eax;
break;
}
@@ -97,11 +97,7 @@
+ switch (regs.regs[_REG_RAX]) {
+ case SYS_syscall:
+ case SYS___syscall:
-+ if ((scno = ptrace(PTRACE_PEEKUSER, pid,
-+ (char *)regs.regs[_REG_URSP] + sizeof(regs.regs[0]), sizeof(regs.regs[0]))) == -1) {
-+ perror("PEEKUSER __syscall");
-+ return -1;
-+ }
++ scno = regs.regs[_REG_RDI];
+ break;
+ default:
+ scno = regs.regs[_REG_RAX];
@@ -112,7 +108,7 @@
#endif /* USE_PROCFS */
if (!(tcp->flags & TCB_INSYSCALL))
tcp->scno = scno;
-@@ -1360,7 +1403,9 @@
+@@ -1360,7 +1399,9 @@
struct tcb *tcp;
{
#ifndef USE_PROCFS
@@ -122,7 +118,7 @@
#else /* USE_PROCFS */
int scno = known_scno(tcp);
-@@ -1733,17 +1778,36 @@
+@@ -1733,17 +1774,36 @@
}
#endif /* MIPS */
#endif /* SVR4 */
@@ -161,7 +157,7 @@
tcp->u_error = u_error;
return 1;
}
-@@ -1926,6 +1990,32 @@
+@@ -1926,6 +1986,32 @@
return -1;
}
#endif /* FREEBSD */
@@ -194,7 +190,7 @@
/* All branches reach here on success (only). */
tcp->u_error = error;
-@@ -1938,7 +2028,9 @@
+@@ -1938,7 +2024,9 @@
struct tcb *tcp;
{
#ifndef USE_PROCFS
@@ -204,7 +200,7 @@
#endif /* !USE_PROCFS */
#ifdef LINUX
#if defined(S390) || defined(S390X)
-@@ -2236,6 +2328,50 @@
+@@ -2236,6 +2324,58 @@
I DONT KNOW WHAT TO DO
#endif /* !HAVE_PR_SYSCALL */
#endif /* SVR4 */
@@ -233,29 +229,37 @@
+ }
+#endif
+#ifdef __x86_64__
++{
++ int bias, i;
++ static int ar[2][6] = {
++ { _REG_RDI, _REG_RSI, _REG_RDX,
++ _REG_R10, _REG_R8, _REG_R9 }, /* x86-64 ABI */
++ { _REG_RBX, _REG_RCX, _REG_RDX,
++ _REG_RSI, _REG_RDI, _REG_RBP } /* i386 ABI */
++ };
+ switch(regs.regs[_REG_RAX]) {
+ case SYS___syscall:
-+ umoven(tcp, regs.regs[_REG_URSP] + sizeof(regs.regs[0]) + sizeof(quad_t),
-+ tcp->u_nargs * sizeof(unsigned long),
-+ (char *) tcp->u_arg);
-+ break;
+ case SYS_syscall:
-+ umoven(tcp, regs.regs[_REG_URSP] + 2 * sizeof(regs.regs[0]),
-+ tcp->u_nargs * sizeof(unsigned long),
-+ (char *) tcp->u_arg);
++ bias = 1;
+ break;
+ default:
-+ umoven(tcp, regs.regs[_REG_URSP] + sizeof(regs.regs[0]),
-+ tcp->u_nargs * sizeof(unsigned long),
-+ (char *) tcp->u_arg);
++ bias = 0;
+ break;
+ }
++ for (i = 0; i < tcp->u_nargs; i++) {
++ tcp->u_arg[i] = regs.regs[ar[0][i + bias]];
++#if 0
++ if (upeek(tcp->pid, ar[0][i + bias] * 8, &tcp->u_arg[i]) < 0)
++ return -1;
++#endif
++ }
++}
+#endif
+#endif /* NETBSD */
#ifdef FREEBSD
if (tcp->scno >= 0 && tcp->scno < nsyscalls &&
sysent[tcp->scno].nargs > tcp->status.val)
-@@ -2648,6 +2784,19 @@
+@@ -2648,6 +2788,19 @@
pread(tcp->pfd_reg, ®s, sizeof(regs), 0);
val = regs.r_edx;
#endif
diff -r 8b157f588c32 -r 8d48e2d15a0c sysutils/strace/patches/patch-ay
--- a/sysutils/strace/patches/patch-ay Fri Apr 27 22:31:53 2007 +0000
+++ b/sysutils/strace/patches/patch-ay Sat Apr 28 03:42:30 2007 +0000
@@ -1,7 +1,7 @@
-$NetBSD: patch-ay,v 1.1 2007/04/27 19:45:03 christos Exp $
+$NetBSD: patch-ay,v 1.2 2007/04/28 03:42:31 christos Exp $
--- system.c.orig 2006-01-12 16:21:06.000000000 -0500
-+++ system.c 2007-04-27 11:35:28.000000000 -0400
++++ system.c 2007-04-27 19:00:30.000000000 -0400
@@ -568,7 +568,7 @@
#endif /* SUNOS4 */
@@ -40,3 +40,12 @@
if (entering(tcp)) {
if (tcp->u_arg[1] < 0 || tcp->u_arg[1] > CTL_MAXNAME ||
+@@ -2016,7 +2018,7 @@
+ } else {
+ if (!syserror(tcp) && (umove(tcp, tcp->u_arg[3], &len) >= 0)) {
+ printstr(tcp, tcp->u_arg[2], len);
+- tprintf(", [%u], ", len);
++ tprintf(", [%zu], ", (size_t)len);
+ } else
+ tprintf("%#lx, %#lx, ", tcp->u_arg[2], tcp->u_arg[3]);
+ printstr(tcp, tcp->u_arg[4], tcp->u_arg[5]);
Home |
Main Index |
Thread Index |
Old Index