From 28c3e6db471b00203133ca89c67f7507a9f7405d Mon Sep 17 00:00:00 2001 From: Vladimir Murzin Date: Thu, 6 Feb 2020 13:13:54 +0000 Subject: common/bits: Fix ipc_perm and semid_ds definitions for 64-bit arches It fixes: FAIL sem got 1 expected 0 failed: incorrect sem_nsems! semget(IPC_CREAT) = 0 semctl(k) = 0 sem_nsems = 0 for aarch64. Signed-off-by: Vladimir Murzin --- libc/sysdeps/linux/common/bits/ipc.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libc/sysdeps/linux/common/bits/ipc.h') diff --git a/libc/sysdeps/linux/common/bits/ipc.h b/libc/sysdeps/linux/common/bits/ipc.h index 3bd5f1b6f..ca7f58cc7 100644 --- a/libc/sysdeps/linux/common/bits/ipc.h +++ b/libc/sysdeps/linux/common/bits/ipc.h @@ -20,6 +20,7 @@ #endif #include +#include /* Mode bits for `msgget', `semget', and `shmget'. */ #define IPC_CREAT 01000 /* Create key if key does not exist. */ @@ -46,8 +47,12 @@ struct ipc_perm __gid_t gid; /* Owner's group ID. */ __uid_t cuid; /* Creator's user ID. */ __gid_t cgid; /* Creator's group ID. */ +#if __WORDSIZE == 64 + unsigned int mode; +#else unsigned short int mode; /* Read/write permission. */ unsigned short int __pad1; +#endif unsigned short int __seq; /* Sequence number. */ unsigned short int __pad2; unsigned long int __unused1; -- cgit v1.2.3