This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Fix __ASSUME_MLOCK2 for ARM, MicroBlaze (bug 23867)
On 06/11/2018 20:56, Joseph Myers wrote:
> The generic kernel-features.h defines __ASSUME_MLOCK2 for 4.4 and
> later kernels. However, for 32-bit ARM binaries running on 64-bit ARM
> kernels, and for MicroBlaze, the syscall was only wired up in the 4.7
> kernel. (32-bit ARM kernels did have the syscall from 4.4 onwards.)
> This patch duly arranges for the macro to be undefined for those
> architectures for kernels before 4.7.
>
> Tested with build-many-glibcs.py for its ARM and MicroBlaze
> configurations.
LGTM, for ARM it follows 10fdf8513f776 (arm64: unistd32.h: wire up
missing syscalls for compat tasks) and for MicroBlaze fbce3befd60d4
( microblaze: Wire up userfaultfd, membarrier, mlock2 syscalls).
>
> 2018-11-06 Joseph Myers <joseph@codesourcery.com>
>
> [BZ #23867]
> * sysdeps/unix/sysv/linux/arm/kernel-features.h
> [__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_MLOCK2): Undefine.
> * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> [__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_MLOCK2): Undefine.
>
> diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
> index 7831ab1e0f..c6e745227c 100644
> --- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
> +++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
> @@ -40,5 +40,12 @@
> #define __ASSUME_RECV_SYSCALL 1
> #define __ASSUME_SEND_SYSCALL 1
>
> +/* Support for the mlock2 syscall was added to the compat syscall
> + table for 64-bit kernels in 4.7, although present in 32-bit kernels
> + from 4.4. */
> +#if __LINUX_KERNEL_VERSION < 0x040700
> +# undef __ASSUME_MLOCK2
> +#endif
> +
> #undef __ASSUME_CLONE_DEFAULT
> #define __ASSUME_CLONE_BACKWARDS 1
> diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> index e8e2ac6a87..dfee428f49 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> +++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> @@ -58,6 +58,11 @@
> # undef __ASSUME_EXECVEAT
> #endif
>
> +/* Support for the mlock2 syscall was added in 4.7. */
> +#if __LINUX_KERNEL_VERSION < 0x040700
> +# undef __ASSUME_MLOCK2
> +#endif
> +
> /* Support for the copy_file_range syscall was added in 4.10. */
> #if __LINUX_KERNEL_VERSION < 0x040A00
> # undef __ASSUME_COPY_FILE_RANGE
>