This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
RE: Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649)
- From: David Holsgrove <david dot holsgrove at xilinx dot com>
- To: Joseph Myers <joseph at codesourcery dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, Richard Henderson <rth at redhat dot com>
- Cc: Michal Simek <michals at xilinx dot com>
- Date: Thu, 13 Mar 2014 04:37:00 +0000
- Subject: RE: Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649)
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1403121746040 dot 13379 at digraph dot polyomino dot org dot uk>
Hi Joseph,
> -----Original Message-----
> From: Joseph Myers [mailto:joseph@codesourcery.com]
> Sent: Thursday, 13 March 2014 3:48 am
> To: libc-alpha@sourceware.org; David Holsgrove; Richard Henderson
> Subject: Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and
> MicroBlaze (bug 16649)
>
> Reviewing (for all architectures, with a baseline kernel version of
> 2.6.32) the kernel support for features for which __ASSUME_* macros
> would be affected by a move to 2.6.32 as minimum kernel version showed
> up that __ASSUME_PREADV and __ASSUME_PWRITEV were wrongly defined for
> MicroBlaze (despite the corresponding syscall table entries not being
> wired up in the kernel) and Alpha for 2.6.30 and above (although the
> support on Alpha was added in 2.6.33). This patch makes the
> kernel-features.h files undefine those macros for appropriate
> versions.
>
> 2014-03-12 Joseph Myers <joseph@codesourcery.com>
>
> [BZ #16649]
> * sysdeps/unix/sysv/linux/alpha/kernel-features.h
> [__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PREADV):
> Undefine.
> [__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PWRITEV):
> Likewise.
> * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> (__ASSUME_PREADV): Undefine.
> (__ASSUME_PWRITEV): Likewise.
>
> diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
> b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
> index e691bb0..f3a7a55 100644
> --- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
> +++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
> @@ -93,4 +93,10 @@
> # define __ASSUME_FDATASYNC 1
> #endif
>
> +/* Support for preadv and pwritev was added for alpha in 2.6.33. */
> +#if __LINUX_KERNEL_VERSION < 0x020621
> +# undef __ASSUME_PREADV
> +# undef __ASSUME_PWRITEV
> +#endif
> +
> #endif /* _KERNEL_FEATURES_H */
> diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> index dfb8344..f9a61a9 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> +++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
> @@ -43,5 +43,8 @@
>
> #include_next <kernel-features.h>
>
> -/* The MicroBlaze kernel does not support the pselect6 syscall. */
> +/* The MicroBlaze kernel does not support the pselect6, preadv and
> + pwritev syscalls. */
> #undef __ASSUME_PSELECT
> +#undef __ASSUME_PREADV
> +#undef __ASSUME_PWRITEV
>
Okay for MicroBlaze.
Kernel patches to wire pselect, preadv and pwritev queued up for inclusion
by the MicroBlaze kernel maintainer.
Once available in a released kernel, I'll set the version in glibc (hopefully v3.15).
thanks again,
David
> --
> Joseph S. Myers
> joseph@codesourcery.com