From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-1.8 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MIME_CHARSET_FARAWAY,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id DEF021F45F for ; Fri, 10 May 2019 10:27:24 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-transfer-encoding :in-reply-to; q=dns; s=default; b=giXX3GAC4ooPqPeQnM1jAC8ri4IhmO MWnMT6HXQGGojrMDxewSbh/8HPIJKfPg2PUvQkCE0c8DXElx2DXXAu4WFGSyxy5a f945+a/NxlEdNjGcBVwMav2VBDqc9ft9Oc8yhdh71jU8umJaqAlpVJnGLUELTO8S xNrPIwSiuG4uo= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-transfer-encoding :in-reply-to; s=default; bh=z+m1G6id8cUkQhb9zQvKVvj1Sug=; b=Rod8 rS3aLZ6NwFmnboVnhc7hxwATeIy6d9SE88WpNUEv5h0QRsSq6G87V7aGkgMrJQAj S0cFLgTIjZ55q7Eg2uouDsifaJajg2Ta5NIWzZTlMsxi2DVfQMCsiQPxCWGbZexv nk99Bqa1HtbsVAewHCMOTNW9IcNMLjorArfa0Dk= Received: (qmail 19042 invoked by alias); 10 May 2019 10:27:21 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 19033 invoked by uid 89); 10 May 2019 10:27:21 -0000 Authentication-Results: sourceware.org; auth=none X-HELO: relay03.nicmail.ru Date: Fri, 10 May 2019 14:27:13 +0400 From: Stepan Golosunov To: Joseph Myers Cc: libc-alpha@sourceware.org Subject: Re: Update kernel-features.h files for Linux 5.1 Message-ID: <20190510102713.udgjb6ilygibgd5x@sghpc.golosunov.pp.ru> References: MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) 09.05.2019 Χ 23:00:37 +0000 Joseph Myers ΞΑΠΙΣΑΜ: > Linux 5.1 adds missing syscalls to the syscall table for many Linux > kernel architectures. This patch updates the kernel-features.h > headers accordingly. 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. The newly added direct ipc syscalls are different from the old ones: 1. They do not accept IPC_64. This means that __IPC_64 should be set to zero when new syscalls are used. And new syscalls can not be used for compat functions like __old_semctl. (Hmm. Is __old_msgctl already buggy due to its use of __IPC_64 when __ASSUME_DIRECT_SYSVIPC_SYSCALLS is defined? Is there any architecture with both __ASSUME_DIRECT_SYSVIPC_SYSCALLS and __old_msgctl currently?) 2. semtimedop does not exist on 32-bit ABIs. They have semtimedop_time64 instead. (I also think that ipc with IPCOP_semtimedop was accidentally made to behave like semtimedop_time64 in 32-bit builds of linux 5.1. But that would be a kernel bug.) > diff --git a/sysdeps/unix/sysv/linux/i386/kernel-features.h b/sysdeps/unix/sysv/linux/i386/kernel-features.h > index 3ac725b5a2..8610651346 100644 > --- a/sysdeps/unix/sysv/linux/i386/kernel-features.h > +++ b/sysdeps/unix/sysv/linux/i386/kernel-features.h > @@ -43,8 +43,10 @@ > # undef __ASSUME_SENDTO_SYSCALL > #endif > > -/* i686 only supports ipc syscall. */ > -#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +/* i686 only supports ipc syscall before 5.1. */ > +#if __LINUX_KERNEL_VERSION < 0x050100 > +# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +#endif > > #undef __ASSUME_CLONE_DEFAULT > #define __ASSUME_CLONE_BACKWARDS 1 > diff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h > index 1976724362..1467474b8a 100644 > --- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h > +++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h > @@ -50,5 +50,7 @@ > # undef __ASSUME_SET_ROBUST_LIST > #endif > > -/* m68k only supports ipc syscall. */ > -#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +/* m68k only supports ipc syscall before 5.1. */ > +#if __LINUX_KERNEL_VERSION < 0x050100 > +# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h > index c341c3fa10..8114090913 100644 > --- a/sysdeps/unix/sysv/linux/mips/kernel-features.h > +++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h > @@ -31,8 +31,10 @@ > pairs to start with an even-number register. */ > #if _MIPS_SIM == _ABIO32 > # define __ASSUME_ALIGNED_REGISTER_PAIRS 1 > -/* mips32 only supports ipc syscall. */ > -# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +/* mips32 only supports ipc syscall before 5.1. */ > +# if __LINUX_KERNEL_VERSION < 0x050100 > +# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +# endif > > /* The o32 MIPS fadvise64 syscall behaves as fadvise64_64. */ > # define __ASSUME_FADVISE64_AS_64_64 1 > diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h > index 413a185db3..5924534c22 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h > +++ b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h > @@ -44,8 +44,10 @@ > > #include_next > > -/* powerpc only supports ipc syscall. */ > -#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +/* powerpc only supports ipc syscall before 5.1. */ > +#if __LINUX_KERNEL_VERSION < 0x050100 > +# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +#endif > > #undef __ASSUME_CLONE_DEFAULT > #define __ASSUME_CLONE_BACKWARDS 1 > diff --git a/sysdeps/unix/sysv/linux/s390/kernel-features.h b/sysdeps/unix/sysv/linux/s390/kernel-features.h > index 8fdf38c454..dcbf1c7c53 100644 > --- a/sysdeps/unix/sysv/linux/s390/kernel-features.h > +++ b/sysdeps/unix/sysv/linux/s390/kernel-features.h > @@ -45,8 +45,10 @@ > # undef __ASSUME_SENDTO_SYSCALL > #endif > > -/* s390 only supports ipc syscall. */ > -#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +/* s390 only supports ipc syscall before 5.1. */ > +#if __LINUX_KERNEL_VERSION < 0x050100 > +# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +#endif > > #undef __ASSUME_CLONE_DEFAULT > #define __ASSUME_CLONE_BACKWARDS2 > diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h > index 767df721b8..8532cccadd 100644 > --- a/sysdeps/unix/sysv/linux/sh/kernel-features.h > +++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h > @@ -41,8 +41,10 @@ > before the offset. */ > #define __ASSUME_PRW_DUMMY_ARG 1 > > -/* sh only supports ipc syscall. */ > -#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +/* sh only supports ipc syscall before 5.1. */ > +#if __LINUX_KERNEL_VERSION < 0x050100 > +# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +#endif > > /* Support for several syscalls was added in 4.8. */ > #if __LINUX_KERNEL_VERSION < 0x040800 > diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h > index f441bd811d..7b5db4af17 100644 > --- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h > +++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h > @@ -58,8 +58,10 @@ > # undef __NR_pause > #endif > > -/* sparc only supports ipc syscall. */ > -#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +/* sparc only supports ipc syscall before 5.1. */ > +#if __LINUX_KERNEL_VERSION < 0x050100 > +# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS > +#endif > > /* Support for the renameat2 syscall was added in 3.16. */ > #if __LINUX_KERNEL_VERSION < 0x031000