Message ID | 1478504615-11054-1-git-send-email-andreas@gaisler.com |
---|---|
State | New |
Headers | show |
On Mon, 7 Nov 2016, Andreas Larsson wrote: > The sendmsg and recvmsg systems calls were not available for 32-bit > sparc Linux kernels before Linux kernel version 4.4. Given the conditional you are putting this under: should I take it it is specifically for 32-bit kernels and the system calls *are* available for 32-bit binaries executed under 64-bit kernels?
On 2016-11-07 16:48, Joseph Myers wrote: > On Mon, 7 Nov 2016, Andreas Larsson wrote: > >> The sendmsg and recvmsg systems calls were not available for 32-bit >> sparc Linux kernels before Linux kernel version 4.4. > > Given the conditional you are putting this under: should I take it it is > specifically for 32-bit kernels and the system calls *are* available for > 32-bit binaries executed under 64-bit kernels? Yes, the intention is specifically for 32-bit kernels. This patch makes interfacing older 32-bit kernels work. The system calls are available in 64-bit kernels since before Linux 3.2. I don't have the possibility to test the case with 32-bit binaries under a 64-bit kernel, so I don't want to touch the behavior for that case. Best regards, Andreas Larsson
From: Andreas Larsson <andreas@gaisler.com> Date: Tue, 08 Nov 2016 15:20:30 +0100 > On 2016-11-07 16:48, Joseph Myers wrote: >> On Mon, 7 Nov 2016, Andreas Larsson wrote: >> >>> The sendmsg and recvmsg systems calls were not available for 32-bit >>> sparc Linux kernels before Linux kernel version 4.4. >> >> Given the conditional you are putting this under: should I take it it >> is >> specifically for 32-bit kernels and the system calls *are* available >> for >> 32-bit binaries executed under 64-bit kernels? > > Yes, the intention is specifically for 32-bit kernels. This patch > makes interfacing older 32-bit kernels work. > > The system calls are available in 64-bit kernels since before Linux > 3.2. I don't have the possibility to test the case with 32-bit > binaries under a 64-bit kernel, so I don't want to touch the behavior > for that case. The same commit in the kernel added them to all of the 32-bit cases (native and running under 64-bit kernel) so you can safely assume they exist universally starting with 4.4
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h index 69c9c7c..b7a79a7 100644 --- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h +++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h @@ -36,4 +36,9 @@ #if !defined __arch64__ && !defined __sparc_v9__ # undef __ASSUME_REQUEUE_PI # undef __ASSUME_SET_ROBUST_LIST +/* All direct socketcalls are available only with kernel 4.4. */ +# if __LINUX_KERNEL_VERSION < 0x040400 +# undef __ASSUME_SENDMSG_SYSCALL +# undef __ASSUME_RECVMSG_SYSCALL +# endif #endif