public inbox for glibc-cvs@sourceware.org help / color / mirror / Atom feed
From: Adhemerval Zanella <azanella@sourceware.org> To: glibc-cvs@sourceware.org Subject: [glibc] Deleted branch azanella/y2038-fixes Date: Thu, 30 Jul 2020 13:20:57 +0000 (GMT) [thread overview] Message-ID: <20200730132057.7BA693851C2B@sourceware.org> (raw) The branch 'azanella/y2038-fixes' was deleted. It previously pointed to: 6da8914032... linux: Add time64 sigtimedwait support Diff: !!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST): ------------------------------------------------------------------- 6da8914... linux: Add time64 sigtimedwait support d04aab4... linux: Add time64 recvmmsg support 32e5a24... linux: Add time64 select support a4d465d... linux: Add time64 pselect support d14f501... sysvipc: linux: Add time64 semtimedop support bdfeee2... sysv: linux: Add 64-bit time_t variant for shmctl 199dbdc... sysvipc: Remove the linux shm-pad.h file 5d35b17... sysvipc: Split out linux struct shmid_ds af4acc1... sysv: linux: Add 64-bit time_t variant for msgctl 71e07db... sysvipc: Remove the linux msq-pad.h file e5c77b8... sysvipc: Split out linux struct semid_ds 3ca7a46... sysv: linux: Add 64-bit time_t variant for semctl commit 6da89140323ed9264152f121aad64ea7c7b897a1 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Jul 6 17:14:42 2020 -0300 linux: Add time64 sigtimedwait support The syscall __NR_sigtimedwait_time64 (for 32-bit) or __NR_sigtimedwait (for 64-bit) is used as default. The 32-bit fallback is used iff __ASSUME_TIME64_SYSCALLS is not defined, which assumes the kernel ABI provides either __NR_rt_sigtimedwait (32-bit time_t). Checked on x86_64-linux-gnu and i686-linux-gnu. commit d04aab4c9a9cca045973f1869fc37d15e2e645fb Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Jul 6 16:55:46 2020 -0300 linux: Add time64 recvmmsg support The wire-up syscall __NR_recvmmsg_time64 (for 32-bit) or __NR_recvmmsg (for 64-bit) is used as default. The 32-bit fallback is used iff __ASSUME_TIME64_SYSCALLS is not defined, which assumes the kernel ABI provides either __NR_socketcall or __NR_recvmmsg (32-bit time_t). Checked on x86_64-linux-gnu and i686-linux-gnu. commit 32e5a24b93108dec8a24615f227718f692da824b Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Jul 6 16:06:51 2020 -0300 linux: Add time64 select support The syscall __NR_pselect6_time64 (32-bit) or __NR_pselect6 (64-bit) is used as default. For architectures with __ASSUME_TIME64_SYSCALLS the 32-bit fallback uses __NR_select/__NR__newselect or __NR_pselect6 (it should cover the microblaze case where older kernels do not provide __NR_pselect6). Checked on x86_64-linux-gnu and i686-linux-gnu. commit a4d465d793fbbc7d587988c42429e1326d89f734 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Jul 6 13:27:12 2020 -0300 linux: Add time64 pselect support The syscall __NR_pselect6_time64 (32-bit) or __NR_pselect6 (64-bit) is used as default. For architectures with __ASSUME_TIME64_SYSCALLS the 32-bit fallback uses __NR_pselec6. To accomodate microblaze missing pselect6 support on kernel older than 3.15 the fallback is moved to its own function to the microblaze specific implementation can override it. Checked x86_64-linux-gnu and i686-linux-gnu. commit d14f5013c1e7bf3aa20611a9b6f794c24f08154c Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Jul 6 17:40:34 2020 -0300 sysvipc: linux: Add time64 semtimedop support The wire-up syscall __NR_semtimedop_time64 (for 32-bit) or __NR_semtimedop (for 64-bit) is used as default. The 32-bit fallback is used iff __ASSUME_TIME64_SYSCALLS is not defined, which assumes the kernel ABI provides either __NR_ipc or __NR_semtimeop (32-bit time_t) Checked on x86_64-linux-gnu and i686-linux-gnu. commit bdfeee2a1fd2453b2d1e91cbd5ab02111a7adfb6 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Tue Jun 30 14:08:22 2020 -0300 sysv: linux: Add 64-bit time_t variant for shmctl To provide a y2038 safe interface a new symbol __shmctl64 is added and __shmctl is change to call it instead (it adds some extra buffer copy for the 32 bit time_t implementation). Two two new structures are added: 1. kernel_shmid64_ds: used internally only on 32-bit architectures to issue the syscall. A handful architectures (hppa, i386, mips, powerpc32, and sparc32) requires specific implementation due its specific kernel ABI. 2. shmid_ds64: this is only for __TIMESIZE != 64 to use 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 shmid_ds already contains 64-bit time_t fields it will result in just the __shmctl symbol using the __shmctl64 code. The shmid_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 exported symbol but with the required high/low time handling. 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 shmid_ds over multiple buffers, but this should be deprecated in favor of the __shmctl64 anyway. Checked on i686-linux-gnu and x86_64-linux-gnu. I also did some sniff tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and sparc64. commit 199dbdcf98de8e8e8361eb98702d0509383c30e2 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> 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 5d35b17432fa68f4ecb2738bbc7ea897b80ed966 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> 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. Not semantic changes expected. Checked with a build against the all affected ABIs. commit af4acc128ff5adb5a1b55a8b1037d39490713370 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Tue Jun 30 09:20:48 2020 -0300 sysv: linux: Add 64-bit time_t variant for msgctl To provide a y2038 safe interface a new symbol __msgctl64 is added and __msgctl is change to call it instead (it adds some extra buffer copy for the 32 bit time_t implementation). Two two new structures are added: 1. kernel_msqid64_ds: used internally only on 32-bit architectures to issue the syscall. A handful architectures (hppa, i386, mips, powerpc32, and sparc32) requires specific implementation due its specific kernel ABI. 2. msqid_ds64: this is only for __TIMESIZE != 64 to use 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 msqid_ds already contains 64-bit time_t fields it will result in just the __msgctl symbol using the __msgctl64 code. The msgid_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 exported symbol but with the required high/low time handling. 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 msqid_ds over multiple buffers, but this should be deprecated in favor of the __msgctl64 anyway. Checked on i686-linux-gnu and x86_64-linux-gnu. I also did some sniff tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and sparc64. commit 71e07dbeb5faf1698406fc4d85af94c175f4e0e0 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Jun 29 21:33:14 2020 -0300 sysvipc: Remove the linux msq-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 e5c77b87c5e9f90a29f327f44f75c5b0da85fa50 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> 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. Not semantic changes expected. Checked with a build against the all affected ABIs. commit 3ca7a464ef33a0ff1bb4e4b4003aa844027dc0c8 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> 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 unused fields in semid_ds structure to return the high bits for the timestamps. To provide a y2038 safe interface a new symbol __semctl64 is added and __semctl is change to call it instead (it adds some extra buffer copy for the 32 bit time_t implementation). Two new structures are added: 1. kernel_semid64_ds: used internally only on 32-bit architectures to issue the syscall. A handful of architectures (hppa, i386, mips, powerpc32, sparc32) require specific implementations due their kernel ABI. 2. semid_ds64: this is only for __TIMESIZE != 64 to use along with the 64-bit semctl. It is different than the kernel struct 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 and 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 exported 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 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 using 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, armhf, sparcv9, and sparc64. Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Tested-by: Vineet Gupta <vgupta@synopsys.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
reply other threads:[~2020-07-30 13:20 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200730132057.7BA693851C2B@sourceware.org \ --to=azanella@sourceware.org \ --cc=glibc-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).