This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 00/14] Remove sysdep-cancel assembly macro
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 4 Jul 2017 16:53:40 -0300
- Subject: [PATCH 00/14] Remove sysdep-cancel assembly macro
- Authentication-results: sourceware.org; auth=none
- 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
--
2.7.4