From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org
Subject: Re: Update kernel-features.h files for Linux 5.1
Date: Thu, 16 May 2019 12:06:46 -0300 [thread overview]
Message-ID: <7a32b26b-76a6-dbb1-d2ab-f2986b49c1e7@linaro.org> (raw)
In-Reply-To: <alpine.DEB.2.21.1905132132440.14012@digraph.polyomino.org.uk>
On 13/05/2019 18:33, Joseph Myers wrote:
> On Fri, 10 May 2019, Stepan Golosunov wrote:
>
>> The newly added direct ipc syscalls are different from the old ones:
>
> Thanks for pointing this out. Here's a revised patch version with the
> __ASSUME_DIRECT_SYSVIPC_SYSCALLS changes removed.
>
>
> Update kernel-features.h files for Linux 5.1.
>
> Linux 5.1 adds missing syscalls to the syscall table for many Linux
> kernel architectures. This patch updates the kernel-features.h
> headers accordingly. __ASSUME_DIRECT_SYSVIPC_SYSCALLS is not updated
> because of the differences between new and old syscalls described in
> <https://sourceware.org/ml/libc-alpha/2019-05/msg00235.html>. I
> believe the statfs64 structure used by alpha matches what the new
> kernel syscalls use, but that should be reviewed carefully.
>
> Tested with build-many-glibcs.py.
LGTM.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>
> 2019-05-13 Joseph Myers <joseph@codesourcery.com>
>
> * sysdeps/unix/sysv/linux/alpha/kernel-features.h
> (__ASSUME_STATFS64): Only undefine if [__LINUX_KERNEL_VERSION <
> 0x050100].
> * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_STATX):
> Likewise.
> * sysdeps/unix/sysv/linux/sh/kernel-features.h
> (__ASSUME_STATX): Likewise.
>
> diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
> index f3298b234e..4a5d029c1d 100644
> --- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
> +++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
> @@ -22,9 +22,11 @@
>
> #include_next <kernel-features.h>
>
> -/* There never has been support for fstat64. */
> -#undef __ASSUME_STATFS64
> -#define __ASSUME_STATFS64 0
> +/* Support for statfs64 was added in 5.1. */
> +#if __LINUX_KERNEL_VERSION < 0x050100
> +# undef __ASSUME_STATFS64
> +# define __ASSUME_STATFS64 0
> +#endif
Ok, alpha statfs64 used on syscall entry points defines the structure as
--
typedef unsigned int __u32;
__extension__ typedef unsigned long long __u64;
typedef struct {
int val[2];
} __kernel_fsid_t;
struct statfs64 {
__u32 f_type;
__u32 f_bsize;
__u64 f_blocks;
__u64 f_bfree;
__u64 f_bavail;
__u64 f_files;
__u64 f_ffree;
__kernel_fsid_t f_fsid;
__u32 f_namelen;
__u32 f_frsize;
__u32 f_flags;
__u32 f_spare[4];
} ;
--
While glibc does:
--
#define __S64_TYPE long int
#define __FSBLKCNT64_T_TYPE __S64_TYPE
__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
#define __FSID_T_TYPE struct { int __val[2]; }
__STD_TYPE __FSID_T_TYPE __fsid_t;
struct statfs64
{
int f_type;
int f_bsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsid_t f_fsid;
int f_namelen;
int f_frsize;
int f_flags;
int f_spare[4];
};
--
My understanding is __u64 and __fsblkcnt64_t should have identical sizes on
alpha.
>
> /* Alpha used to define SysV ipc shmat syscall with a different name. */
> #ifndef __NR_shmat
> diff --git a/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
> index 0f4948b8e0..333947931d 100644
> --- a/sysdeps/unix/sysv/linux/ia64/kernel-features.h
> +++ b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
> @@ -26,8 +26,10 @@
> #define __ASSUME_SEND_SYSCALL 1
> #define __ASSUME_ACCEPT4_SYSCALL 1
>
> -/* No statx system call on ia64 yet. */
> -#undef __ASSUME_STATX
> +/* Support for statx was added in 5.1. */
> +#if __LINUX_KERNEL_VERSION < 0x050100
> +# undef __ASSUME_STATX
> +#endif
>
> #undef __ASSUME_CLONE_DEFAULT
> #define __ASSUME_CLONE2
Ok (commit 7349ee3a97edbec60ada97e81b26b9c20e96156b).
> diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h
> index 767df721b8..b11a5cb544 100644
> --- a/sysdeps/unix/sysv/linux/sh/kernel-features.h
> +++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h
> @@ -52,7 +52,9 @@
> # undef __ASSUME_COPY_FILE_RANGE
> #endif
>
> -/* sh does not support the statx system call. */
> -#undef __ASSUME_STATX
> +/* sh does not support the statx system call before 5.1. */
> +#if __LINUX_KERNEL_VERSION < 0x050100
> +# undef __ASSUME_STATX
> +#endif
>
> #endif
>
Ok (commit d25a122afd4374071bb8489a980051da37136ee1).
prev parent reply other threads:[~2019-05-16 15:06 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-09 23:00 Update kernel-features.h files for Linux 5.1 Joseph Myers
2019-05-10 10:27 ` Stepan Golosunov
2019-05-10 13:19 ` Stepan Golosunov
2019-05-16 7:59 ` Arnd Bergmann
2019-05-16 19:41 ` Stepan Golosunov
2019-05-16 20:56 ` Arnd Bergmann
2019-05-10 15:07 ` Adhemerval Zanella
2019-05-10 15:11 ` Adhemerval Zanella
2019-05-10 16:15 ` Stepan Golosunov
2019-05-10 16:40 ` Adhemerval Zanella
2019-05-16 8:08 ` Arnd Bergmann
2019-05-16 11:15 ` Adhemerval Zanella
2019-05-16 11:34 ` Arnd Bergmann
2019-05-16 12:28 ` Adhemerval Zanella
2019-05-16 12:42 ` Arnd Bergmann
2019-05-13 21:33 ` Joseph Myers
2019-05-16 15:06 ` Adhemerval Zanella [this message]
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
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7a32b26b-76a6-dbb1-d2ab-f2986b49c1e7@linaro.org \
--to=adhemerval.zanella@linaro.org \
--cc=libc-alpha@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: link
Be 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).