From dfc1a37c441fe271dfb19c7de62acadc73e255aa Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 1 Apr 2015 19:12:18 -0400 Subject: [PATCH] aarch64: fix definition of sem_nsems in semid_ds structure POSIX requires the sem_nsems member to have type unsigned short. we have to work around the incorrect kernel type using matching endian-specific padding. --- arch/aarch64/bits/sem.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/aarch64/bits/sem.h b/arch/aarch64/bits/sem.h index 6ac93365..e46ced95 100644 --- a/arch/aarch64/bits/sem.h +++ b/arch/aarch64/bits/sem.h @@ -2,7 +2,13 @@ struct semid_ds { struct ipc_perm sem_perm; time_t sem_otime; time_t sem_ctime; - time_t sem_nsems; +#if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned short sem_nsems; + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; +#else + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; + unsigned short sem_nsems; +#endif time_t __unused3; time_t __unused4; }; -- 2.25.1