public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/28] More Linux syscall refactor
@ 2020-11-18 19:55 Adhemerval Zanella
  2020-11-18 19:55 ` [PATCH 01/28] Remove generic pthread linuxism on POSIX timer_routine Adhemerval Zanella
                   ` (28 more replies)
  0 siblings, 29 replies; 38+ messages in thread
From: Adhemerval Zanella @ 2020-11-18 19:55 UTC (permalink / raw)
  To: libc-alpha

This is second part of Linux syscall refactor (the first one [1] focused
on simplify the internal mechanism).  Although this patchset is
independent from first part, some code do intersect (such the ones that
might use the syscall return value), however they are easily fixed
whether one is pushed first.

This part remove ununsed code, consolidate implementation, simplify the
auto-generation syscall list, move some auto-generation to C, and move
some assembly implementation to C.

The idea is to 1. remove implementations from auto-generation which
require either arch-specific knowledge or can't be implemented easily
on C (such as 64-bit variable on 32-bit architecture) and 2. minimize the
assembly implementation that issues syscalls to a bare minimum (only the
ones that are not easily implemented in C, such as clone or vfork).

The long goal with this refactor is to replace the auto-generation
using assembly macros to a auto-generation using C code, thus removing
the requirement of each architecture to provide the ASM assembly macros
(all syscall will be done through proper inline functions).  The
subsequent part to implement it relies on this patchset and the previous
one [1].

[1] https://sourceware.org/pipermail/libc-alpha/2020-November/119456.html

Adhemerval Zanella (28):
  Remove generic pthread linuxism on POSIX timer_routine
  Removed ununsed pthread implementations
  Remove local-setxid.h
  Remove HAVE_INLINED_SYSCALLS usage on generic implementations
  linux: Consolidate and cleanup personality syscall
  x32: Remove syscalls.list
  linux: Assume bind support
  linux: Assume getpeername support
  linux: Assume getsockname support
  linux: Assume getsockopt support
  linux: Assume listen support
  linux: Assume setsockopt support
  linux: Assume shutdown support
  linux: Assume socket support
  linux: Assume socketpair support
  linux: Remove superflous __ASSUME_CONNECT_SYSCALL definitions
  x86_64: Remove ununsed syscalls.list entry
  nptl: Add futex_trylock_pi
  linux: Add fanotify_mark C implementation
  linux: Add prlimit64 C implementation
  linux: Implement mremap in C
  Linux: implement ioctl in C
  mips: Implement n32 lseek64 in C
  x32: Implement lseek64 in C
  linux: Implement pipe in terms of __NR_pipe2
  linux: Consolidate brk implementation
  linux: Add generic C syscall implementation
  alpha: Move implementations to C

 debug/read_chk.c                              |   9 --
 debug/readlink_chk.c                          |   5 -
 nptl/Makefile                                 |   4 -
 nptl/pthread_mutex_trylock.c                  |   9 +-
 nptl/pthread_setegid.c                        |   3 -
 nptl/pthread_seteuid.c                        |   3 -
 nptl/pthread_setgid.c                         |   3 -
 nptl/pthread_setregid.c                       |   3 -
 nptl/pthread_setresgid.c                      |   3 -
 nptl/pthread_setresuid.c                      |   3 -
 nptl/pthread_setreuid.c                       |   3 -
 nptl/pthread_setuid.c                         |   3 -
 sysdeps/generic/local-setxid.h                |   4 -
 sysdeps/nptl/futex-internal.h                 |  36 ++++++
 sysdeps/nptl/lowlevellock-futex.h             |   5 +
 sysdeps/posix/spawni.c                        |   5 +-
 sysdeps/pthread/timer_routines.c              |  19 ----
 sysdeps/unix/syscalls.list                    |   2 -
 sysdeps/unix/sysv/linux/Makefile              |   4 +-
 sysdeps/unix/sysv/linux/aarch64/sysdep.h      |   3 +
 sysdeps/unix/sysv/linux/alpha/brk.S           |  83 --------------
 sysdeps/unix/sysv/linux/{arm => alpha}/brk.c  |  13 +--
 sysdeps/unix/sysv/linux/alpha/dl-brk.S        |   1 -
 .../alpha/{fraiseexcpt.S => fraiseexcpt.c}    |  37 ++-----
 .../sysv/linux/alpha/{getegid.S => getegid.c} |  15 +--
 .../sysv/linux/alpha/{geteuid.S => geteuid.c} |  15 +--
 .../sysv/linux/alpha/{getppid.S => getppid.c} |  15 +--
 .../sysv/linux/alpha/ieee_get_fp_control.S    |  50 ---------
 .../linux/alpha/ieee_get_fp_control.c}        |  29 ++---
 .../sysv/linux/alpha/ieee_set_fp_control.S    |  46 --------
 .../linux/alpha/ieee_set_fp_control.c}        |  24 ++--
 sysdeps/unix/sysv/linux/alpha/pipe.S          |   1 -
 .../alpha/{setcontext.S => setcontext.c}      |  27 ++---
 sysdeps/unix/sysv/linux/alpha/syscalls.list   |  11 --
 sysdeps/unix/sysv/linux/alpha/sysdep.h        |  21 ++++
 sysdeps/unix/sysv/linux/arc/sysdep.h          |   3 +
 sysdeps/unix/sysv/linux/arm/syscalls.list     |  17 ---
 .../unix/sysv/linux/{microblaze => }/brk.c    |   5 +-
 sysdeps/unix/sysv/linux/csky/sysdep.h         |   3 +
 sysdeps/unix/sysv/linux/dl-brk.c              |   5 -
 .../sysv/linux/{sh/pipe.S => fanotify_mark.c} |  42 +++----
 sysdeps/unix/sysv/linux/generic/brk.c         |  43 --------
 sysdeps/unix/sysv/linux/generic/syscalls.list |  12 --
 .../linux/generic/wordsize-32/syscalls.list   |   5 -
 sysdeps/unix/sysv/linux/hppa/brk.c            |  41 -------
 sysdeps/unix/sysv/linux/hppa/fanotify_mark.c  |   2 +
 sysdeps/unix/sysv/linux/hppa/prlimit64.c      |   2 +
 sysdeps/unix/sysv/linux/hppa/syscall.c        |  65 -----------
 sysdeps/unix/sysv/linux/hppa/syscalls.list    |  16 ---
 sysdeps/unix/sysv/linux/i386/brk.c            |  45 --------
 .../unix/sysv/linux/i386/kernel-features.h    |  23 ++--
 sysdeps/unix/sysv/linux/i386/syscalls.list    |   6 -
 sysdeps/unix/sysv/linux/i386/sysdep.h         |   3 +
 sysdeps/unix/sysv/linux/ia64/brk.S            |  50 ---------
 sysdeps/unix/sysv/linux/ia64/dl-brk.S         |   1 -
 sysdeps/unix/sysv/linux/ia64/pipe.S           |  37 -------
 sysdeps/unix/sysv/linux/ia64/syscalls.list    |  11 --
 sysdeps/unix/sysv/linux/ia64/sysdep.h         |   3 +
 .../unix/sysv/linux/{x86_64/brk.c => ioctl.c} |  31 +++---
 sysdeps/unix/sysv/linux/kernel-features.h     |   9 ++
 sysdeps/unix/sysv/linux/local-setxid.h        |  16 ---
 .../unix/sysv/linux/m68k/kernel-features.h    |  23 ++--
 sysdeps/unix/sysv/linux/m68k/syscalls.list    |   3 -
 sysdeps/unix/sysv/linux/m68k/sysdep.h         |   3 +
 .../sysv/linux/microblaze/kernel-features.h   |  10 --
 .../unix/sysv/linux/microblaze/syscalls.list  |   4 -
 sysdeps/unix/sysv/linux/microblaze/sysdep.h   |   3 +
 sysdeps/unix/sysv/linux/mips/brk.c            |  46 --------
 .../unix/sysv/linux/mips/mips32/syscalls.list |   5 -
 sysdeps/unix/sysv/linux/mips/mips32/sysdep.h  |   3 +
 .../unix/sysv/linux/mips/mips64/n32/lseek64.c |  47 ++++++++
 .../sysv/linux/mips/mips64/n32/syscalls.list  |  11 --
 .../sysv/linux/mips/mips64/n64/syscalls.list  |   4 -
 sysdeps/unix/sysv/linux/mips/mips64/sysdep.h  |   3 +
 sysdeps/unix/sysv/linux/mips/pipe.S           |   1 -
 sysdeps/unix/sysv/linux/mips/syscalls.list    |  14 ---
 .../unix/sysv/linux/{sh/brk.c => mremap.c}    |  40 +++----
 sysdeps/unix/sysv/linux/nios2/sysdep.h        |   3 +
 sysdeps/unix/sysv/linux/personality.c         |  24 +---
 sysdeps/unix/sysv/linux/{generic => }/pipe.c  |   6 +-
 sysdeps/unix/sysv/linux/powerpc/dl-brk.S      |   1 -
 .../unix/sysv/linux/powerpc/kernel-features.h |  10 --
 .../linux/powerpc/powerpc32/syscalls.list     |   3 -
 .../unix/sysv/linux/powerpc/powerpc64/brk.S   |  43 --------
 sysdeps/unix/sysv/linux/prlimit.c             |   2 +
 .../{powerpc/powerpc32/brk.S => prlimit64.c}  |  51 ++++-----
 sysdeps/unix/sysv/linux/riscv/sysdep.h        |   3 +
 sysdeps/unix/sysv/linux/s390/brk.c            |  55 ---------
 .../unix/sysv/linux/s390/kernel-features.h    |  22 ++--
 .../sysv/linux/s390/s390-32/syscalls.list     |   4 -
 sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h |   5 +
 sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h |   5 +
 sysdeps/unix/sysv/linux/sh/fanotify_mark.c    |   2 +
 sysdeps/unix/sysv/linux/sh/kernel-features.h  |  10 --
 sysdeps/unix/sysv/linux/sh/syscalls.list      |   6 -
 .../unix/sysv/linux/sparc/kernel-features.h   |  17 ++-
 sysdeps/unix/sysv/linux/sparc/sparc32/brk.c   |  54 ---------
 sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S  |  39 -------
 .../sysv/linux/sparc/sparc32/syscalls.list    |   3 -
 .../unix/sysv/linux/sparc/sparc32/sysdep.h    |   3 +
 sysdeps/unix/sysv/linux/sparc/sparc64/brk.S   | 104 ------------------
 .../unix/sysv/linux/sparc/sparc64/dl-brk.S    |   1 -
 .../sysv/linux/sparc/sparc64/personality.c    |   3 -
 sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S  |  40 -------
 .../sysv/linux/sparc/sparc64/syscalls.list    |   7 --
 sysdeps/unix/sysv/linux/spawni.c              |  19 +++-
 sysdeps/unix/sysv/linux/{riscv => }/syscall.c |  33 +++---
 sysdeps/unix/sysv/linux/syscalls.list         |   2 -
 sysdeps/unix/sysv/linux/sysdep.h              |   4 +
 .../unix/sysv/linux/wordsize-64/syscalls.list |   4 -
 sysdeps/unix/sysv/linux/x86_64/syscalls.list  |  13 ---
 sysdeps/unix/sysv/linux/x86_64/x32/lseek.S    |  43 --------
 sysdeps/unix/sysv/linux/x86_64/x32/lseek64.S  |   1 -
 .../{m68k/brk.c => x86_64/x32/lseek64.c}      |  44 ++++----
 .../unix/sysv/linux/x86_64/x32/syscalls.list  |   4 -
 115 files changed, 429 insertions(+), 1497 deletions(-)
 delete mode 100644 nptl/pthread_setegid.c
 delete mode 100644 nptl/pthread_seteuid.c
 delete mode 100644 nptl/pthread_setgid.c
 delete mode 100644 nptl/pthread_setregid.c
 delete mode 100644 nptl/pthread_setresgid.c
 delete mode 100644 nptl/pthread_setresuid.c
 delete mode 100644 nptl/pthread_setreuid.c
 delete mode 100644 nptl/pthread_setuid.c
 delete mode 100644 sysdeps/generic/local-setxid.h
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/brk.S
 rename sysdeps/unix/sysv/linux/{arm => alpha}/brk.c (77%)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/dl-brk.S
 rename sysdeps/unix/sysv/linux/alpha/{fraiseexcpt.S => fraiseexcpt.c} (66%)
 rename sysdeps/unix/sysv/linux/alpha/{getegid.S => getegid.c} (79%)
 rename sysdeps/unix/sysv/linux/alpha/{geteuid.S => geteuid.c} (79%)
 rename sysdeps/unix/sysv/linux/alpha/{getppid.S => getppid.c} (79%)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
 rename sysdeps/unix/{mips/pipe.S => sysv/linux/alpha/ieee_get_fp_control.c} (64%)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
 rename sysdeps/unix/{alpha/pipe.S => sysv/linux/alpha/ieee_set_fp_control.c} (68%)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/pipe.S
 rename sysdeps/unix/sysv/linux/alpha/{setcontext.S => setcontext.c} (62%)
 rename sysdeps/unix/sysv/linux/{microblaze => }/brk.c (90%)
 delete mode 100644 sysdeps/unix/sysv/linux/dl-brk.c
 rename sysdeps/unix/sysv/linux/{sh/pipe.S => fanotify_mark.c} (56%)
 delete mode 100644 sysdeps/unix/sysv/linux/generic/brk.c
 delete mode 100644 sysdeps/unix/sysv/linux/generic/syscalls.list
 delete mode 100644 sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
 delete mode 100644 sysdeps/unix/sysv/linux/hppa/brk.c
 create mode 100644 sysdeps/unix/sysv/linux/hppa/fanotify_mark.c
 create mode 100644 sysdeps/unix/sysv/linux/hppa/prlimit64.c
 delete mode 100644 sysdeps/unix/sysv/linux/hppa/syscall.c
 delete mode 100644 sysdeps/unix/sysv/linux/hppa/syscalls.list
 delete mode 100644 sysdeps/unix/sysv/linux/i386/brk.c
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/brk.S
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/dl-brk.S
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/pipe.S
 rename sysdeps/unix/sysv/linux/{x86_64/brk.c => ioctl.c} (63%)
 delete mode 100644 sysdeps/unix/sysv/linux/local-setxid.h
 delete mode 100644 sysdeps/unix/sysv/linux/mips/brk.c
 delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/syscalls.list
 create mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n32/lseek64.c
 delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
 delete mode 100644 sysdeps/unix/sysv/linux/mips/pipe.S
 rename sysdeps/unix/sysv/linux/{sh/brk.c => mremap.c} (57%)
 rename sysdeps/unix/sysv/linux/{generic => }/pipe.c (86%)
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/dl-brk.S
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
 rename sysdeps/unix/sysv/linux/{powerpc/powerpc32/brk.S => prlimit64.c} (54%)
 delete mode 100644 sysdeps/unix/sysv/linux/s390/brk.c
 create mode 100644 sysdeps/unix/sysv/linux/sh/fanotify_mark.c
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc32/brk.c
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/personality.c
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
 rename sysdeps/unix/sysv/linux/{riscv => }/syscall.c (53%)
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/lseek64.S
 rename sysdeps/unix/sysv/linux/{m68k/brk.c => x86_64/x32/lseek64.c} (51%)
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list

-- 
2.25.1


^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2020-11-19 20:08 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-18 19:55 [PATCH 00/28] More Linux syscall refactor Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 01/28] Remove generic pthread linuxism on POSIX timer_routine Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 02/28] Removed ununsed pthread implementations Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 03/28] Remove local-setxid.h Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 04/28] Remove HAVE_INLINED_SYSCALLS usage on generic implementations Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 05/28] linux: Consolidate and cleanup personality syscall Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 06/28] x32: Remove syscalls.list Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 07/28] linux: Assume bind support Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 08/28] linux: Assume getpeername support Adhemerval Zanella
2020-11-19 12:55   ` Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 09/28] linux: Assume getsockname support Adhemerval Zanella
2020-11-19 12:56   ` Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 10/28] linux: Assume getsockopt support Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 11/28] linux: Assume listen support Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 12/28] linux: Assume setsockopt support Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 13/28] linux: Assume shutdown support Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 14/28] linux: Assume socket support Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 15/28] linux: Assume socketpair support Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 16/28] linux: Remove superflous __ASSUME_CONNECT_SYSCALL definitions Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 17/28] x86_64: Remove ununsed syscalls.list entry Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 18/28] nptl: Add futex_trylock_pi Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 19/28] linux: Add fanotify_mark C implementation Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 20/28] linux: Add prlimit64 " Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 21/28] linux: Implement mremap in C Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 22/28] Linux: implement ioctl " Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 23/28] mips: Implement n32 lseek64 " Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 24/28] x32: Implement " Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 25/28] linux: Implement pipe in terms of __NR_pipe2 Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 26/28] linux: Consolidate brk implementation Adhemerval Zanella
2020-11-19 17:31   ` Tulio Magno Quites Machado Filho
2020-11-19 17:53     ` Adhemerval Zanella
2020-11-19 20:08   ` Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 27/28] linux: Add generic C syscall implementation Adhemerval Zanella
2020-11-18 19:55 ` [PATCH 28/28] alpha: Move implementations to C Adhemerval Zanella
2020-11-18 21:06 ` [PATCH 00/28] More Linux syscall refactor Joseph Myers
2020-11-19 12:21   ` Adhemerval Zanella
2020-11-19 16:38     ` Joseph Myers
2020-11-19 17:43       ` Adhemerval Zanella

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).