From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id D588F3857007; Wed, 1 Jul 2020 17:04:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D588F3857007 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc] Deleted branch azanella/semctl-y2038 X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/azanella/semctl-y2038 X-Git-Oldrev: 1ba333409b885b523798eab67b96566a55763429 X-Git-Newrev: 0000000000000000000000000000000000000000 Message-Id: <20200701170421.D588F3857007@sourceware.org> Date: Wed, 1 Jul 2020 17:04:21 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Jul 2020 17:04:21 -0000 The branch 'azanella/semctl-y2038' was deleted. It previously pointed to: 1ba333409b... sysv: linux: Add 64-bit time_t variant for shmctl Diff: !!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST): ------------------------------------------------------------------- 1ba3334... sysv: linux: Add 64-bit time_t variant for shmctl e5950a0... sysvipc: Remove the linux shm-pad.h file 831b2b3... sysvipc: Split out linux struct shmid_ds d0a53f7... sysv: linux: Add 64-bit time_t variant for msgctl 896dd21... sysvipc: Remove the linux sem-pad.h file d521e51... sysvipc: Split out linux struct semid_ds 100689a... sysv: linux: Add 64-bit time_t variant for semctl commit 1ba333409b885b523798eab67b96566a55763429 Author: Adhemerval Zanella Date: Tue Jun 30 14:08:22 2020 -0300 sysv: linux: Add 64-bit time_t variant for shmctl commit e5950a08a897d7f741ec270a06e4e370b8f28723 Author: Adhemerval Zanella Date: Tue Jun 30 11:02:52 2020 -0300 sysvipc: Remove the linux shm-pad.h file Each architecture overrides the struct msqid_ds which its required kernel ABI one. Checked on x86_64-linux-gnu and some bases sysvipc tests on hppa, mips, mipsle, mips64, mips64le, sparc64, sparcv9, powerpc64le, powerpc64, and powerpc. commit 831b2b37bf0afd731efbf9df48a1d555bceba37f Author: Adhemerval Zanella Date: Tue Jun 30 10:30:14 2020 -0300 sysvipc: Split out linux struct shmid_ds This will allow us to have architectures specify their own version. commit d0a53f7a922baf1915200f9719a35c4b385485b5 Author: Adhemerval Zanella Date: Tue Jun 30 09:20:48 2020 -0300 sysv: linux: Add 64-bit time_t variant for msgctl commit 896dd219d9442a1d474587f113e194828677f31b Author: Adhemerval Zanella Date: Mon Jun 29 21:33:14 2020 -0300 sysvipc: Remove the linux sem-pad.h file Each architecture overrides the struct msqid_ds which its required kernel ABI one. Checked on x86_64-linux-gnu and some bases sysvipc tests on hppa, mips, mipsle, mips64, mips64le, sparc64, sparcv9, powerpc64le, powerpc64, and powerpc. commit d521e51cb9653401e483d0e4166aeb1e4fd13a8a Author: Adhemerval Zanella Date: Mon Jun 29 18:21:14 2020 -0300 sysvipc: Split out linux struct semid_ds This will allow us to have architectures specify their own version. commit 100689aabc128b7c0e4ba9ad65aca6a7b986a531 Author: Adhemerval Zanella Date: Mon Jun 29 13:35:50 2020 -0300 sysv: linux: Add 64-bit time_t variant for semctl Different than others 64-bit time_t syscalls, the SysIPC interface does not provide a new set of syscall for y2038 safeness. Instead it uses ununsed fields in semid_ds structure the return the high bits for the timestamps. To provide a y2038 safe interface a new symbol __semctl64 is added internally and __semctl is change to call it instead. It requires some extra buffer copy for the 32 bit time_t implementation, but it focus the syscall handling on the 64 bit symbol (as per others y2038 safe symbols). Two two new structures are added: 1. kernel_semid64_ds: used internally only on 32-bit architectures to issue the syscall. A handful architectures (hppa, i386, mips, powerpc32, sparc32) requires specific implementation due its specific kernel ABI. 2. semid_ds64: this is only for __TIMESIZE != 64 to used along with the 64-bit semctl. It is different than the kernel one because the exported 64-bit time_t might require different alignment depending of the architecture ABI. So the resulting implementation does: 1. For 64-bit architectures it assumes semid_ds already contains 64-bit time_t fields it will result in just the __semctl symbol using the __semctl64 code. The semid_ds argument is passed as-is to the syscall. 2. For 32-bit architectures with default 64-bit time_t (newer ABIs such riscv32 or arc), it will also result in only one symbol but with the required high/low handling. It might be possible to optimize it further to avoid the kernel_semid64_ds to semun transformation if the exported glibc ABI for the architectures matches the expected kernel ABI, but the implementation is already complex enough and don't think this should be a hotspot in any case. 3. Finally for 32-bit architecture with both 32-bit and 64-bit time_t support we follow the already set way to provide one symbol with 64-bit time_t support and implement the 32-bit time_t support on basis of the 64-bit one. The default 32-bit symbol will allocate and copy the semid_ds over multiple buffers, but this should be deprecated in favor of the __semctl64 anyway. Checked on i686-linux-gnu and x86_64-linux-gnu. I also did some sniff tests on powerpc, powerpc64, mips, mips64, and armhf.