https://bugs.kde.org/show_bug.cgi?id=410743

--- Comment #7 from Mark Wielaard <m...@klomp.org> ---
(In reply to Mark Wielaard from comment #6)
> This looks similar to what is reported against Fedora arm64:
> https://bugzilla.redhat.com/show_bug.cgi?id=1909548

It isn't exactly the same issue. But related.

The issue in that bug is that syswrap-linux.c calls generic_PRE_sys_shmctl and
generic_POST_sys_shmctl with an extra VKI_IPC_64 only for amd64_linux, but not
for arm64_linux. In both cases (and riscv, but we don't have a port for that)
the VKI_IPC_64 is implied. The fix for that is simply:

diff --git a/coregrind/m_syswrap/syswrap-linux.c
b/coregrind/m_syswrap/syswrap-linux.c
index 328e02a98..52074149d 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -5127,7 +5127,7 @@ PRE(sys_shmctl)
    PRINT("sys_shmctl ( %ld, %ld, %#" FMT_REGWORD "x )", SARG1, SARG2, ARG3);
    PRE_REG_READ3(long, "shmctl",
                  int, shmid, int, cmd, struct shmid_ds *, buf);
-#ifdef VGP_amd64_linux
+#if defined(VGP_amd64_linux) || defined(VGP_arm64_linux)
    ML_(generic_PRE_sys_shmctl)(tid, ARG1,ARG2|VKI_IPC_64,ARG3);
 #else
    ML_(generic_PRE_sys_shmctl)(tid, ARG1,ARG2,ARG3);
@@ -5136,7 +5136,7 @@ PRE(sys_shmctl)

 POST(sys_shmctl)
 {
-#ifdef VGP_amd64_linux
+#if defined(VGP_amd64_linux) || defined(VGP_arm64_linux)
    ML_(generic_POST_sys_shmctl)(tid, RES,ARG1,ARG2|VKI_IPC_64,ARG3);
 #else
    ML_(generic_POST_sys_shmctl)(tid, RES,ARG1,ARG2,ARG3);

Then the generic PRE/POST do the right thing selecting the correct data
structure size.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to