Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649)

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649)

Joseph Myers
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  <[hidden email]>

        [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

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

RE: Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649)

David Holsgrove
Hi Joseph,

> -----Original Message-----
> From: Joseph Myers [mailto:[hidden email]]
> Sent: Thursday, 13 March 2014 3:48 am
> To: [hidden email]; 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  <[hidden email]>
>
> [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
> [hidden email]



Reply | Threaded
Open this post in threaded view
|

Ping Re: Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649)

Joseph Myers
In reply to this post by Joseph Myers
Ping.  The Alpha part of this patch
<https://sourceware.org/ml/libc-alpha/2014-03/msg00279.html> is pending
review.

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Ping Re: Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649)

Richard Henderson
On 03/18/2014 03:17 PM, Joseph S. Myers wrote:
> Ping.  The Alpha part of this patch
> <https://sourceware.org/ml/libc-alpha/2014-03/msg00279.html> is pending
> review.
>

This is ok.  Sorry for the delay.


r~