Re: Fwd: devel/valgrind: removal syscall(2)

2023-11-17 Thread Klemens Nanni
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, >arch.vex,
>   syscall_mask, , 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, >arch.vex,
>  +syscall_mask, , 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;
> ++   

Fwd: devel/valgrind: removal syscall(2)

2023-11-16 Thread ASOU Masato
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, >arch.vex,
  syscall_mask, , 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, >arch.vex,
 +syscall_mask, , 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_linux)