]> git.ipfire.org Git - thirdparty/glibc.git/commit
Refactor internal-signals.h
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 21 Apr 2022 12:41:59 +0000 (09:41 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 30 Jun 2022 17:56:21 +0000 (14:56 -0300)
commita1bdd81664aa681364da368154c48501db249df9
tree29f01a9ad8bcda2794869dd0555537a2de16fa38
parentc22d2021a9f9bdea62398976eea4f0e6ef668b7d
Refactor internal-signals.h

The main drive is to optimize the internal usage and required size
when sigset_t is embedded in other data structures.  On Linux, the
current supported signal set requires up to 8 bytes (16 on mips),
was lower than the user defined sigset_t (128 bytes).

A new internal type internal_sigset_t is added, along with the
functions to operate on it similar to the ones for sigset_t.  The
internal-signals.h is also refactored to remove unused functions

Besides small stack usage on some functions (posix_spawn, abort)
it lower the struct pthread by about 120 bytes (112 on mips).

Checked on x86_64-linux-gnu.

Reviewed-by: Arjun Shankar <arjun@redhat.com>
18 files changed:
nptl/descr.h
nptl/pthread_attr_setsigmask.c
nptl/pthread_create.c
nptl/pthread_kill.c
nptl/pthread_sigmask.c
rt/tst-timer-sigmask.c
signal/sigaction.c
signal/sigaddset.c
signal/sigdelset.c
signal/sigfillset.c
stdlib/abort.c
sysdeps/generic/internal-signals.h
sysdeps/posix/signal.c
sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c
sysdeps/unix/sysv/linux/internal-signals.h
sysdeps/unix/sysv/linux/internal-sigset.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/spawni.c
sysdeps/unix/sysv/linux/timer_routines.c