From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org
Subject: Re: [PATCH 00/14] Remove sysdep-cancel assembly macro
Date: Wed, 02 Aug 2017 14:41:00 -0000 [thread overview]
Message-ID: <ffc0f790-211e-a499-f033-6dac2ac803f5@linaro.org> (raw)
In-Reply-To: <1499198034-5837-1-git-send-email-adhemerval.zanella@linaro.org>
With now 2.27 open I would like to push it and remove the syscal-cancel.h
hackery at the start of the window. I have recently rechecked with a build
on all ports and with exceptions of x86_64 (which this patchset addresses)
none of Linux ports are currently using any auto-generated cancelable syscall.
On 04/07/2017 16:53, Adhemerval Zanella wrote:
> - I refactored how internal non cancellable syscalls are implemented
> within glibc. On Linux which support cancellation instead of
> C prepocessor macros, proper function prototypes and implementation
> are used. This allows targets that requires specific handling of
> 64 bits arguments, such as x32, to use the correct kernel abi.
>
> --
>
> This patchset finishes my previous work of Linux syscall consolidation
> and refactor to finally remove the requeriment of sysdeps-cancel.h
> assembly macros for cancellable syscalls. All ports now uses the
> SYSCALL_CANCEL macros with C implementation which in turn calls
> INLINE_SYSCALL macros.
>
> Besides simplify the curent code requirement, it also simplify
> possible future ports to require only the C bindings and the direct
> assembly one for syscalls.list autogeneration (another possible
> work for future would be to use C generate binding to simplify
> even further the syscall requirements).
>
> I checked with a build for mostly supported architecture:
> aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabhi, i686-linux-gnu,
> ia64-linux-gnu, m68k-linux-gnu, microblaze-linux-gnu,
> mips{64,64n32}-linux-gnu, nios2-linux-gnu, powerpc{64,64le}-linux-gnu,
> s390{x}-linux-gnu, sh4-linux-gnu{-soft}, tile{pro,gx}-linux-gnu{-32},
> sparc{v9,64}-linux-gnu, and x86_64-linux-gnu.
>
> I also run a full make check on real hardware on aarch64-linux-gnu,
> arm-linux-gnueabihf, i686-linux-gnu, powerpc{64le}-linux-gnu,
> sparc{v9,64}-linux-gnu, and x86_64-linux-gnu{-x32}.
>
> Adhemerval Zanella (14):
> Consolidate non cancellable open call
> Consolidate non cancellable read call
> Consolidate non cancellable write call
> Consolidate non cancellable openat call
> Consolidate non cancellable close call
> Consolidate non cancellable writev call
> Consolidate non cancellable fcntl call
> Consolidate non cancellable waitpid call
> Consolidate non cancellable pause call
> Consolidate non cancellable nanosleep call
> Remove non cancellable sigsuspend definition
> Fix {INLINE,INTERNAL}_SYSCALL macros for x32
> Remove p{read,write}{v} and fallocate from x86 auto-generation list
> Remove cancellation support for syscall generation
>
> ChangeLog | 462 +++++++++++++++++++++
> catgets/open_catalog.c | 8 +-
> csu/check_fds.c | 2 +-
> gmon/gmon.c | 22 +-
> iconv/gconv_cache.c | 6 +-
> intl/loadmsgcat.c | 6 +-
> io/ftw.c | 8 +-
> libio/fileops.c | 12 +-
> libio/iopopen.c | 4 +-
> locale/loadarchive.c | 10 +-
> locale/loadlocale.c | 12 +-
> login/utmp_file.c | 30 +-
> misc/daemon.c | 6 +-
> nptl/pthread_mutex_lock.c | 2 +-
> nptl/pthread_mutex_timedlock.c | 2 +-
> nscd/nscd_getai.c | 2 +-
> nscd/nscd_getgr_r.c | 2 +-
> nscd/nscd_gethst_r.c | 2 +-
> nscd/nscd_getpw_r.c | 2 +-
> nscd/nscd_getserv_r.c | 2 +-
> nscd/nscd_helper.c | 4 +-
> nscd/nscd_initgroups.c | 2 +-
> nscd/nscd_netgroup.c | 4 +-
> nss/nss_db/db-open.c | 4 +-
> resolv/herror.c | 2 +-
> resolv/res-close.c | 4 +-
> stdio-common/psiginfo.c | 2 +-
> sunrpc/pm_getmaps.c | 2 +-
> sysdeps/generic/not-cancel.h | 40 +-
> sysdeps/mach/hurd/opendir.c | 4 +-
> sysdeps/posix/closedir.c | 2 +-
> sysdeps/posix/getaddrinfo.c | 4 +-
> sysdeps/posix/getcwd.c | 8 +-
> sysdeps/posix/libc_fatal.c | 2 +-
> sysdeps/posix/opendir.c | 12 +-
> sysdeps/posix/spawni.c | 10 +-
> sysdeps/unix/make-syscalls.sh | 4 -
> sysdeps/unix/syscall-template.S | 7 +-
> sysdeps/unix/sysv/linux/Versions | 2 +
> sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h | 87 +---
> sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h | 131 +-----
> sysdeps/unix/sysv/linux/arm/sysdep-cancel.h | 197 +--------
> sysdeps/unix/sysv/linux/check_native.c | 2 +-
> sysdeps/unix/sysv/linux/check_pf.c | 2 +-
> sysdeps/unix/sysv/linux/close.c | 8 +
> sysdeps/unix/sysv/linux/fips-private.h | 6 +-
> sysdeps/unix/sysv/linux/gethostid.c | 12 +-
> sysdeps/unix/sysv/linux/getloadavg.c | 6 +-
> sysdeps/unix/sysv/linux/getlogin_r.c | 6 +-
> sysdeps/unix/sysv/linux/getsysstats.c | 16 +-
> sysdeps/unix/sysv/linux/grantpt.c | 6 +-
> sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h | 236 +----------
> sysdeps/unix/sysv/linux/i386/smp.h | 6 +-
> sysdeps/unix/sysv/linux/i386/sysdep-cancel.h | 119 +-----
> sysdeps/unix/sysv/linux/ia64/has_cpuclock.c | 6 +-
> sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h | 194 +--------
> sysdeps/unix/sysv/linux/if_index.c | 6 +-
> sysdeps/unix/sysv/linux/libc_fatal.c | 10 +-
> sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h | 108 +----
> sysdeps/unix/sysv/linux/malloc-sysdep.h | 8 +-
> sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h | 116 +-----
> .../unix/sysv/linux/mips/mips64/sysdep-cancel.h | 249 -----------
> sysdeps/unix/sysv/linux/mips/sysdep-cancel.h | 159 +------
> sysdeps/unix/sysv/linux/mq_notify.c | 2 +-
> sysdeps/unix/sysv/linux/nanosleep.c | 9 +
> sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h | 110 +----
> sysdeps/unix/sysv/linux/not-cancel.h | 118 +++---
> sysdeps/unix/sysv/linux/open.c | 18 +
> sysdeps/unix/sysv/linux/open64.c | 35 +-
> sysdeps/unix/sysv/linux/openat.c | 16 +
> sysdeps/unix/sysv/linux/openat64.c | 32 +-
> sysdeps/unix/sysv/linux/pause.c | 14 +-
> sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c | 2 +-
> .../sysv/linux/powerpc/powerpc32/sysdep-cancel.h | 118 ------
> .../sysv/linux/powerpc/powerpc64/sysdep-cancel.h | 147 -------
> sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h | 38 ++
> sysdeps/unix/sysv/linux/pthread_getname.c | 6 +-
> sysdeps/unix/sysv/linux/pthread_setname.c | 6 +-
> sysdeps/unix/sysv/linux/read.c | 8 +
> .../unix/sysv/linux/s390/s390-32/sysdep-cancel.h | 105 +----
> .../unix/sysv/linux/s390/s390-64/sysdep-cancel.h | 109 +----
> sysdeps/unix/sysv/linux/sh/sysdep-cancel.h | 136 +-----
> .../unix/sysv/linux/sparc/sparc32/sysdep-cancel.h | 111 -----
> .../unix/sysv/linux/sparc/sparc64/sysdep-cancel.h | 109 -----
> sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h | 38 ++
> sysdeps/unix/sysv/linux/spawni.c | 8 +-
> sysdeps/unix/sysv/linux/sysconf.c | 6 +-
> sysdeps/unix/sysv/linux/tile/sysdep-cancel.h | 123 +-----
> sysdeps/unix/sysv/linux/waitpid.c | 15 +-
> sysdeps/unix/sysv/linux/write.c | 8 +
> sysdeps/unix/sysv/linux/x86_64/syscalls.list | 4 -
> sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h | 62 +--
> sysdeps/unix/sysv/linux/x86_64/sysdep.h | 251 ++++++-----
> sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list | 1 -
> sysdeps/unix/sysv/linux/x86_64/x32/times.c | 24 +-
> 95 files changed, 1129 insertions(+), 3077 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
> create mode 100644 sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
> create mode 100644 sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h
>
prev parent reply other threads:[~2017-08-02 14:41 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-04 19:54 Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 02/14] Consolidate non cancellable read call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 11/14] Remove non cancellable sigsuspend definition Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 03/14] Consolidate non cancellable write call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 04/14] Consolidate non cancellable openat call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 12/14] Fix {INLINE,INTERNAL}_SYSCALL macros for x32 Adhemerval Zanella
2017-07-04 20:09 ` H.J. Lu
2017-07-04 20:22 ` Adhemerval Zanella
2017-07-04 21:34 ` H.J. Lu
2017-07-04 19:54 ` [PATCH 06/14] Consolidate non cancellable writev call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 01/14] Consolidate non cancellable open call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 08/14] Consolidate non cancellable waitpid call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 13/14] Remove p{read,write}{v} and fallocate from x86 auto-generation list Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 10/14] Consolidate non cancellable nanosleep call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 05/14] Consolidate non cancellable close call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 07/14] Consolidate non cancellable fcntl call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 09/14] Consolidate non cancellable pause call Adhemerval Zanella
2017-07-04 19:54 ` [PATCH 14/14] Remove cancellation support for syscall generation Adhemerval Zanella
2017-08-02 14:41 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ffc0f790-211e-a499-f033-6dac2ac803f5@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).