1# Copyright (C) 1991-2021 Free Software Foundation, Inc.
2# This file is part of the GNU C Library.
3
4# The GNU C Library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8
9# The GNU C Library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12# Lesser General Public License for more details.
13
14# You should have received a copy of the GNU Lesser General Public
15# License along with the GNU C Library; if not, see
16# <https://www.gnu.org/licenses/>.
17
18#
19#	Makefile for signal routines.
20#
21subdir	:= signal
22
23include ../Makeconfig
24
25headers := signal.h sys/signal.h \
26	   bits/signum-generic.h bits/signum-arch.h \
27	   bits/sigcontext.h bits/sigaction.h \
28	   bits/sigevent-consts.h bits/siginfo-consts.h \
29	   bits/sigstack.h bits/sigthread.h bits/ss_flags.h \
30	   bits/types/__sigset_t.h bits/types/sig_atomic_t.h \
31	   bits/types/sigevent_t.h bits/types/siginfo_t.h \
32	   bits/types/sigset_t.h bits/types/sigval_t.h \
33	   bits/types/stack_t.h bits/types/struct_sigstack.h \
34	   bits/types/__sigval_t.h bits/signal_ext.h \
35	   bits/sigstksz.h
36
37routines	:= signal raise killpg \
38		   sigaction libc_sigaction sigprocmask kill \
39		   sigpending sigsuspend sigwait \
40		   sigblock sigsetmask sigpause sigvec \
41		   sigstack sigaltstack sigintr \
42		   sigsetops sigempty sigfillset sigaddset sigdelset sigismem \
43		   sigreturn \
44		   siggetmask sysv_signal \
45		   sigisempty sigandset sigorset \
46		   allocrtsig sigtimedwait sigwaitinfo sigqueue \
47		   sighold sigrelse sigignore sigset
48
49tests		:= tst-signal tst-sigset tst-sigsimple tst-raise tst-sigset2 \
50		   tst-sigwait-eintr tst-sigaction \
51		   tst-minsigstksz-1 tst-minsigstksz-2 tst-minsigstksz-3 \
52		   tst-minsigstksz-3a tst-minsigstksz-4 tst-minsigstksz-5 \
53		   tst-sigisemptyset
54
55include ../Rules
56
57CFLAGS-raise.c += -fasynchronous-unwind-tables
58CFLAGS-sigpause.c += -fexceptions
59CFLAGS-sigsuspend.c += -fexceptions -fasynchronous-unwind-tables
60CFLAGS-sigtimedwait.c += -fexceptions -fasynchronous-unwind-tables
61CFLAGS-sigwait.c += -fexceptions -fasynchronous-unwind-tables
62CFLAGS-sigwaitinfo.c += -fexceptions -fasynchronous-unwind-tables
63
64CFLAGS-sigreturn.c += $(no-stack-protector)
65
66# We don't want to test the lazy resolution stack usage, just the
67# execution of the handler and the functions.
68LDFLAGS-tst-minsigstksz-1 = -Wl,-z,now
69LDFLAGS-tst-minsigstksz-2 = -Wl,-z,now
70LDFLAGS-tst-minsigstksz-3 = -Wl,-z,now
71LDFLAGS-tst-minsigstksz-3a = -Wl,-z,now
72LDFLAGS-tst-minsigstksz-4 = -Wl,-z,now
73