Re: Fwd: devel/valgrind: removal syscall(2)
On Fri, Nov 17, 2023 at 03:04:02PM +0900, ASOU Masato wrote: > ping > > I confermed the operation using snapshot created onfNovember 16th. > -- > ASOU Masato > > -- Forwarded message - > From: 朝生正人 > Date: 2023年11月2日(木) 10:45 > Subject: devel/valgrind: removal syscall(2) > To: > > > I have moved my email address from a...@soum.co.jp to > takeasou.mas...@gmail.com. Gmail doesn't accept my mails, hence me using your OpenBSD address. > > This is a diff to remove syscall(2) in Valgrind. > > ok? > -- > ASOU Masato > OK kn > Index: Makefile > === > RCS file: /cvs/ports/devel/valgrind/Makefile,v > diff -u -p -r1.33 Makefile > --- Makefile18 Oct 2023 03:27:55 - 1.33 > +++ Makefile2 Nov 2023 01:16:02 - > @@ -5,7 +5,7 @@ CATEGORIES =devel > > V =3.21.0 > DISTNAME = valgrind-${V} > -REVISION = 1 > +REVISION = 2 > EXTRACT_SUFX = .tar.bz2 > > SITES =https://sourceware.org/pub/valgrind/ > Index: patches/patch-coregrind_m_syswrap_syswrap_main_c > === > RCS file: > /cvs/ports/devel/valgrind/patches/patch-coregrind_m_syswrap_syswrap_main_c,v > diff -u -p -r1.1 patch-coregrind_m_syswrap_syswrap_main_c > --- patches/patch-coregrind_m_syswrap_syswrap_main_c18 Jul 2023 > 06:17:15 - 1.1 > +++ patches/patch-coregrind_m_syswrap_syswrap_main_c2 Nov 2023 01:16:03 > - > @@ -18,17 +18,12 @@ > Int real_syscallno; > # endif > # if defined(VGO_linux) > -@@ -369,6 +369,17 @@ > +@@ -369,6 +369,12 @@ > real_syscallno, &tst->arch.vex, > syscall_mask, &saved, sizeof(vki_sigset_t) >); > +# elif defined(VGO_openbsd) > -+ if (tst->arch.vex.guest_SC_CLASS == VG_OPENBSD_SYSCALL0) > -+ real_syscallno = __NR_syscall; > -+ else if (tst->arch.vex.guest_SC_CLASS == VG_OPENBSD_SYSCALL198) > -+ real_syscallno = __NR___syscall; > -+ else > -+ real_syscallno = syscallno; > ++ real_syscallno = syscallno; > + err = ML_(do_syscall_for_client_WRK)( > +real_syscallno, &tst->arch.vex, > +syscall_mask, &saved, sizeof(vki_sigset_t) > @@ -36,7 +31,7 @@ > # elif defined(VGO_darwin) > switch (VG_DARWIN_SYSNO_CLASS(syscallno)) { > case VG_DARWIN_SYSCALL_CLASS_UNIX: > -@@ -623,6 +634,153 @@ > +@@ -623,6 +629,112 @@ > canonical->arg8 = stack[2]; > } > > @@ -117,23 +112,8 @@ > + VexGuestX86State* gst = (VexGuestX86State*)gst_vanilla; > + UWord *stack = (UWord *)gst->guest_ESP; > + > -+ // OpenBSD supports different calling conventions > -+ switch (gst->guest_EAX) { > -+ case __NR_syscall: > -+ canonical->class = VG_OPENBSD_SYSCALL0; > -+ canonical->sysno = stack[1]; > -+ stack += 1; > -+ break; > -+ case __NR___syscall: > -+ canonical->class = VG_OPENBSD_SYSCALL198; > -+ canonical->sysno = stack[1]; > -+ stack += 2; > -+ break; > -+ default: > -+ canonical->class = 0; > -+ canonical->sysno = gst->guest_EAX; > -+ break; > -+ } > ++ canonical->class = 0; > ++ canonical->sysno = gst->guest_EAX; > + // stack[0] is a (fake) return address > + canonical->arg1 = stack[1]; > + canonical->arg2 = stack[2]; > @@ -148,49 +128,23 @@ > + VexGuestAMD64State* gst = (VexGuestAMD64State*)gst_vanilla; > + UWord *stack = (UWord *)gst->guest_RSP; > + > -+ // OpenBSD supports different calling conventions > -+ switch (gst->guest_RAX) { > -+ case __NR_syscall: > -+ canonical->klass = VG_OPENBSD_SYSCALL0; > -+ canonical->sysno = gst->guest_RDI; > -+ break; > -+ case __NR___syscall: > -+ canonical->klass = VG_OPENBSD_SYSCALL198; > -+ canonical->sysno = gst->guest_RDI; > -+ break; > -+ default: > -+ canonical->klass = 0; > -+ canonical->sysno = gst->guest_RAX; > -+ break; > -+ } > -+ // stack[0] is a (fake) return address > -+ if (canonical->klass != VG_OPENBSD_SYSCALL0 && canonical->klass != > VG_OPENBSD_SYSCALL198) { > -+ // stack[0] is return address > -+ canonical->arg1 = gst->guest_RDI; > -+ canonical->arg2 = gst->guest_RSI; > -+ canonical->arg3 = gst->guest_RDX; > -+ canonical->arg4 = gst->guest_R10; > -+ canonical->arg5 = gst->guest_R8; > -+ canonical->arg6 = gst->guest_R9; > -+ canonical->arg7 = stack[1]; > -+ canonical->arg8 = stack[2]; > -+ } else { > -+ // stack[0] is return address > -+ canonical->arg1 = gst->guest_RSI; > -+ canonical->arg2 = gst->guest_RDX; > -+ canonical->arg3 = gst->guest_R10; > -+ canonical->arg4 = gst->guest_R8; > -+ canonical->arg5 = gst->guest_R9; > -+ canonical->arg6 = stack[1]; > -+ canonical->arg7 = stack[2]; > -+ canonical->arg8 = stack[3]; > -+ } > ++ canonic
Fwd: devel/valgrind: removal syscall(2)
ping I confermed the operation using snapshot created onfNovember 16th. -- ASOU Masato -- Forwarded message - From: 朝生正人 Date: 2023年11月2日(木) 10:45 Subject: devel/valgrind: removal syscall(2) To: I have moved my email address from a...@soum.co.jp to takeasou.mas...@gmail.com. This is a diff to remove syscall(2) in Valgrind. ok? -- ASOU Masato Index: Makefile === RCS file: /cvs/ports/devel/valgrind/Makefile,v diff -u -p -r1.33 Makefile --- Makefile18 Oct 2023 03:27:55 - 1.33 +++ Makefile2 Nov 2023 01:16:02 - @@ -5,7 +5,7 @@ CATEGORIES =devel V =3.21.0 DISTNAME = valgrind-${V} -REVISION = 1 +REVISION = 2 EXTRACT_SUFX = .tar.bz2 SITES =https://sourceware.org/pub/valgrind/ Index: patches/patch-coregrind_m_syswrap_syswrap_main_c === RCS file: /cvs/ports/devel/valgrind/patches/patch-coregrind_m_syswrap_syswrap_main_c,v diff -u -p -r1.1 patch-coregrind_m_syswrap_syswrap_main_c --- patches/patch-coregrind_m_syswrap_syswrap_main_c18 Jul 2023 06:17:15 - 1.1 +++ patches/patch-coregrind_m_syswrap_syswrap_main_c2 Nov 2023 01:16:03 - @@ -18,17 +18,12 @@ Int real_syscallno; # endif # if defined(VGO_linux) -@@ -369,6 +369,17 @@ +@@ -369,6 +369,12 @@ real_syscallno, &tst->arch.vex, syscall_mask, &saved, sizeof(vki_sigset_t) ); +# elif defined(VGO_openbsd) -+ if (tst->arch.vex.guest_SC_CLASS == VG_OPENBSD_SYSCALL0) -+ real_syscallno = __NR_syscall; -+ else if (tst->arch.vex.guest_SC_CLASS == VG_OPENBSD_SYSCALL198) -+ real_syscallno = __NR___syscall; -+ else -+ real_syscallno = syscallno; ++ real_syscallno = syscallno; + err = ML_(do_syscall_for_client_WRK)( +real_syscallno, &tst->arch.vex, +syscall_mask, &saved, sizeof(vki_sigset_t) @@ -36,7 +31,7 @@ # elif defined(VGO_darwin) switch (VG_DARWIN_SYSNO_CLASS(syscallno)) { case VG_DARWIN_SYSCALL_CLASS_UNIX: -@@ -623,6 +634,153 @@ +@@ -623,6 +629,112 @@ canonical->arg8 = stack[2]; } @@ -117,23 +112,8 @@ + VexGuestX86State* gst = (VexGuestX86State*)gst_vanilla; + UWord *stack = (UWord *)gst->guest_ESP; + -+ // OpenBSD supports different calling conventions -+ switch (gst->guest_EAX) { -+ case __NR_syscall: -+ canonical->class = VG_OPENBSD_SYSCALL0; -+ canonical->sysno = stack[1]; -+ stack += 1; -+ break; -+ case __NR___syscall: -+ canonical->class = VG_OPENBSD_SYSCALL198; -+ canonical->sysno = stack[1]; -+ stack += 2; -+ break; -+ default: -+ canonical->class = 0; -+ canonical->sysno = gst->guest_EAX; -+ break; -+ } ++ canonical->class = 0; ++ canonical->sysno = gst->guest_EAX; + // stack[0] is a (fake) return address + canonical->arg1 = stack[1]; + canonical->arg2 = stack[2]; @@ -148,49 +128,23 @@ + VexGuestAMD64State* gst = (VexGuestAMD64State*)gst_vanilla; + UWord *stack = (UWord *)gst->guest_RSP; + -+ // OpenBSD supports different calling conventions -+ switch (gst->guest_RAX) { -+ case __NR_syscall: -+ canonical->klass = VG_OPENBSD_SYSCALL0; -+ canonical->sysno = gst->guest_RDI; -+ break; -+ case __NR___syscall: -+ canonical->klass = VG_OPENBSD_SYSCALL198; -+ canonical->sysno = gst->guest_RDI; -+ break; -+ default: -+ canonical->klass = 0; -+ canonical->sysno = gst->guest_RAX; -+ break; -+ } -+ // stack[0] is a (fake) return address -+ if (canonical->klass != VG_OPENBSD_SYSCALL0 && canonical->klass != VG_OPENBSD_SYSCALL198) { -+ // stack[0] is return address -+ canonical->arg1 = gst->guest_RDI; -+ canonical->arg2 = gst->guest_RSI; -+ canonical->arg3 = gst->guest_RDX; -+ canonical->arg4 = gst->guest_R10; -+ canonical->arg5 = gst->guest_R8; -+ canonical->arg6 = gst->guest_R9; -+ canonical->arg7 = stack[1]; -+ canonical->arg8 = stack[2]; -+ } else { -+ // stack[0] is return address -+ canonical->arg1 = gst->guest_RSI; -+ canonical->arg2 = gst->guest_RDX; -+ canonical->arg3 = gst->guest_R10; -+ canonical->arg4 = gst->guest_R8; -+ canonical->arg5 = gst->guest_R9; -+ canonical->arg6 = stack[1]; -+ canonical->arg7 = stack[2]; -+ canonical->arg8 = stack[3]; -+ } ++ canonical->klass = 0; ++ canonical->sysno = gst->guest_RAX; ++ // stack[0] is return address ++ canonical->arg1 = gst->guest_RDI; ++ canonical->arg2 = gst->guest_RSI; ++ canonical->arg3 = gst->guest_RDX; ++ canonical->arg4 = gst->guest_R10; ++ canonical->arg5 = gst->guest_R8; ++ canonical->arg6 = gst->guest_R9; ++ canonical->arg7 = stack[1]; ++ canonical->arg8 = stack[2]; + + #elif defined(VGP_arm_l