blob: 2f2a85caf686cdf4441b6dc0043454d814274264 [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/* Copyright (C) 2003, 2005 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3 Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20/* Somebody please explain what's going on here. --vda */
21
22/* This is tricky. GCC doesn't like #include_next in the primary
23 source file and even if it did, the first #include_next is this
24 exact file anyway. */
25#ifndef LIBC_SIGACTION
26
27# include <bits/libc-lock.h>
28
29# define LIBC_SIGACTION 1
30
31# include "sigaction.c"
32
33# ifndef NOT_IN_libc
34# ifndef SHARED
35weak_extern (__pthread_sigaction)
36# endif
37
38int
39__sigaction (sig, act, oact)
40 int sig;
41 const struct sigaction *act;
42 struct sigaction *oact;
43{
44 return __libc_maybe_call2 (pthread_sigaction, (sig, act, oact),
45 __libc_sigaction (sig, act, oact));
46}
47# else
48weak_alias (__libc_sigaction, __sigaction)
49# endif
50libc_hidden_weak (__sigaction)
51weak_alias (__sigaction, sigaction)
52
53#else
54
55# include_next <sigaction.c>
56
57#endif /* LIBC_SIGACTION */