mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-26 12:41:05 +00:00
566e10aa72
The upper bits of the sigset_t s not fully initialized in the signal mask calls that return information from kernel (sigprocmask, sigpending, and pthread_sigmask), since the exported sigset_t size (1024 bits) is larger than Linux support one (64 or 128 bits). It might make sigisemptyset/sigorset/sigandset fail if the mask is filled prior the call. This patch changes the internal signal function to handle up to supported Linux signal number (_NSIG), the remaining bits are untouched. Checked on x86_64-linux-gnu and i686-linux-gnu.
72 lines
2.6 KiB
Makefile
72 lines
2.6 KiB
Makefile
# Copyright (C) 1991-2020 Free Software Foundation, Inc.
|
|
# This file is part of the GNU C Library.
|
|
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
|
|
# The GNU C Library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with the GNU C Library; if not, see
|
|
# <https://www.gnu.org/licenses/>.
|
|
|
|
#
|
|
# Makefile for signal routines.
|
|
#
|
|
subdir := signal
|
|
|
|
include ../Makeconfig
|
|
|
|
headers := signal.h sys/signal.h \
|
|
bits/signum.h bits/signum-generic.h \
|
|
bits/sigcontext.h bits/sigaction.h \
|
|
bits/sigevent-consts.h bits/siginfo-consts.h \
|
|
bits/sigstack.h bits/sigthread.h bits/ss_flags.h \
|
|
bits/types/__sigset_t.h bits/types/sig_atomic_t.h \
|
|
bits/types/sigevent_t.h bits/types/siginfo_t.h \
|
|
bits/types/sigset_t.h bits/types/sigval_t.h \
|
|
bits/types/stack_t.h bits/types/struct_sigstack.h \
|
|
bits/types/__sigval_t.h bits/signal_ext.h
|
|
|
|
routines := signal raise killpg \
|
|
sigaction sigprocmask kill \
|
|
sigpending sigsuspend sigwait \
|
|
sigblock sigsetmask sigpause sigvec \
|
|
sigstack sigaltstack sigintr \
|
|
sigsetops sigempty sigfillset sigaddset sigdelset sigismem \
|
|
sigreturn \
|
|
siggetmask sysv_signal \
|
|
sigisempty sigandset sigorset \
|
|
allocrtsig sigtimedwait sigwaitinfo sigqueue \
|
|
sighold sigrelse sigignore sigset
|
|
|
|
tests := tst-signal tst-sigset tst-sigsimple tst-raise tst-sigset2 \
|
|
tst-sigwait-eintr tst-sigaction \
|
|
tst-minsigstksz-1 tst-minsigstksz-2 tst-minsigstksz-3 \
|
|
tst-minsigstksz-3a tst-minsigstksz-4 \
|
|
tst-sigisemptyset
|
|
|
|
include ../Rules
|
|
|
|
CFLAGS-raise.c += -fasynchronous-unwind-tables
|
|
CFLAGS-sigpause.c += -fexceptions
|
|
CFLAGS-sigsuspend.c += -fexceptions -fasynchronous-unwind-tables
|
|
CFLAGS-sigtimedwait.c += -fexceptions -fasynchronous-unwind-tables
|
|
CFLAGS-sigwait.c += -fexceptions -fasynchronous-unwind-tables
|
|
CFLAGS-sigwaitinfo.c += -fexceptions -fasynchronous-unwind-tables
|
|
|
|
CFLAGS-sigreturn.c += $(no-stack-protector)
|
|
|
|
# We don't want to test the lazy resolution stack usage, just the
|
|
# execution of the handler and the functions.
|
|
LDFLAGS-tst-minsigstksz-1 = -Wl,-z,now
|
|
LDFLAGS-tst-minsigstksz-2 = -Wl,-z,now
|
|
LDFLAGS-tst-minsigstksz-3 = -Wl,-z,now
|
|
LDFLAGS-tst-minsigstksz-3a = -Wl,-z,now
|
|
LDFLAGS-tst-minsigstksz-4 = -Wl,-z,now
|