2000-07-06  Ulrich Drepper  <drepper@redhat.com>

	* include/signal.h: Declare __libc_sigaction.
	* sysdeps/unix/sysv/linux/Versions: Export __libc_sigaction.
	* sysdeps/unix/sysv/linux/sigaction.c: Add __libc_sigaction alias.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.

	* configure.in: Fix CLAGS-memprofstat.c definition after
	2000-06-19 change.
	Patch by Bradford W. Johnson <bradford@math.umn.edu>.

2000-07-06  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Pass 0
	instead of NULL to elf_machine_fixup_plt t argument.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c (__mmap64): Add
	cast.

2000-07-06  Andreas Jaeger  <aj@suse.de>

	* crypt/Makefile (LDLIBS-cert): Removed.
	(LDLIBS-md5c-test): Removed.
	($(objpfx)cert): Renamed from cert.out to fix dependencies.
	($(objpfx)md5c-test): Likewise for md5c-test.out.
This commit is contained in:
Ulrich Drepper 2000-07-07 00:52:01 +00:00
parent 353aebf582
commit c0f53cdd08
15 changed files with 165 additions and 45 deletions

View File

@ -1,3 +1,33 @@
2000-07-06 Ulrich Drepper <drepper@redhat.com>
* include/signal.h: Declare __libc_sigaction.
* sysdeps/unix/sysv/linux/Versions: Export __libc_sigaction.
* sysdeps/unix/sysv/linux/sigaction.c: Add __libc_sigaction alias.
* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
* configure.in: Fix CLAGS-memprofstat.c definition after
2000-06-19 change.
Patch by Bradford W. Johnson <bradford@math.umn.edu>.
2000-07-06 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Pass 0
instead of NULL to elf_machine_fixup_plt t argument.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c (__mmap64): Add
cast.
2000-07-06 Andreas Jaeger <aj@suse.de>
* crypt/Makefile (LDLIBS-cert): Removed.
(LDLIBS-md5c-test): Removed.
($(objpfx)cert): Renamed from cert.out to fix dependencies.
($(objpfx)md5c-test): Likewise for md5c-test.out.
2000-07-06 Andreas Jaeger <aj@suse.de> 2000-07-06 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): The type * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): The type

30
FAQ.in
View File

@ -217,8 +217,8 @@ errors while linking before deciding there is a problem.
??addon What are these `add-ons'? ??addon What are these `add-ons'?
{UD} To avoid complications with export rules or external source code some {UD} To avoid complications with export rules or external source code some
optional parts of the libc are distributed as separate packages (e.g., the optional parts of the libc are distributed as separate packages, e.g., the
crypt package, see ?crypt). linuxthreads package.
To use these packages as part of GNU libc, just unpack the tarfiles in the To use these packages as part of GNU libc, just unpack the tarfiles in the
libc source directory and tell the configuration script about them using the libc source directory and tell the configuration script about them using the
@ -227,7 +227,7 @@ to find all the add-on packages in your source tree. This may not work. If
it doesn't, or if you want to select only a subset of the add-ons, give a it doesn't, or if you want to select only a subset of the add-ons, give a
comma-separated list of the add-ons to enable: comma-separated list of the add-ons to enable:
configure --enable-add-ons=crypt,linuxthreads configure --enable-add-ons=linuxthreads
for example. for example.
@ -237,9 +237,13 @@ else. The existing makefiles do most of the work; only some few stub rules
must be written to get everything running. must be written to get everything running.
Most add-ons are tightly coupled to a specific GNU libc version. Please Most add-ons are tightly coupled to a specific GNU libc version. Please
check that the add-ons work with the GNU libc. For example the crypt and check that the add-ons work with the GNU libc. For example the linuxthreads
linuxthreads add-ons have the same numbering scheme as the libc and will in add-on has the same numbering scheme as the libc and will in general only
general only work with the corresponding libc. work with the corresponding libc.
{AJ} With glibc 2.2 the crypt add-on and with glibc 2.1 the localedata
add-on have been integrated into the normal glibc distribution, crypt and
localedata are therefore not anymore add-ons.
?? My XXX kernel emulates a floating-point coprocessor for me. ?? My XXX kernel emulates a floating-point coprocessor for me.
Should I enable --with-fp? Should I enable --with-fp?
@ -472,20 +476,8 @@ versions of some string functions. These can only be used with GCC. See
`crypt' and `setkey'. Why aren't these functions in the `crypt' and `setkey'. Why aren't these functions in the
libc anymore? libc anymore?
{UD} The US places restrictions on exporting cryptographic programs and
source code. Until this law gets abolished we cannot ship the cryptographic
functions together with glibc.
The functions are available, as an add-on (see ?addon). People in the US Removed. Does not apply anymore.
may get it from the same place they got GNU libc from. People outside the
US should get the code from ftp.gwdg.de [134.76.11.100] in the directory
pub/linux/glibc, or another archive site outside the USA. The README explains
how to install the sources.
If you already have the crypt code on your system the reason for the failure
is probably that you did not link with -lcrypt. The crypto functions are in
a separate library to make it possible to export GNU libc binaries from the
US.
?? When I use GNU libc on my Linux system by linking against ?? When I use GNU libc on my Linux system by linking against
the libc.so which comes with glibc all I get is a core dump. the libc.so which comes with glibc all I get is a core dump.

View File

@ -1,5 +1,10 @@
2000-07-06 Ulrich Drepper <drepper@redhat.com> 2000-07-06 Ulrich Drepper <drepper@redhat.com>
* Version: Export __sigaction.
* signals.c: Define __sigaction alias. Use __libc_sigaction instead
of __sigaction.
* pthread.c: Use __libc_sigaction instead of __sigaction.
* condvar.c: Implement pthread_condattr_getpshared and * condvar.c: Implement pthread_condattr_getpshared and
pthread_condattr_setpshared. pthread_condattr_setpshared.
* mutex.c: Implement pthread_mutexattr_getpshared and * mutex.c: Implement pthread_mutexattr_getpshared and

View File

@ -85,6 +85,9 @@ libpthread {
# The error functions. # The error functions.
__errno_location; __h_errno_location; __errno_location; __h_errno_location;
# Must be preemptible
__sigaction;
} }
GLIBC_2.1 { GLIBC_2.1 {
# Functions with changed interface. # Functions with changed interface.

View File

@ -379,15 +379,15 @@ static void pthread_initialize(void)
sa.sa_handler = pthread_handle_sigrestart; sa.sa_handler = pthread_handle_sigrestart;
sigemptyset(&sa.sa_mask); sigemptyset(&sa.sa_mask);
sa.sa_flags = 0; sa.sa_flags = 0;
__sigaction(__pthread_sig_restart, &sa, NULL); __libc_sigaction(__pthread_sig_restart, &sa, NULL);
sa.sa_handler = pthread_handle_sigcancel; sa.sa_handler = pthread_handle_sigcancel;
// sa.sa_flags = 0; // sa.sa_flags = 0;
__sigaction(__pthread_sig_cancel, &sa, NULL); __libc_sigaction(__pthread_sig_cancel, &sa, NULL);
if (__pthread_sig_debug > 0) { if (__pthread_sig_debug > 0) {
sa.sa_handler = pthread_handle_sigdebug; sa.sa_handler = pthread_handle_sigdebug;
sigemptyset(&sa.sa_mask); sigemptyset(&sa.sa_mask);
// sa.sa_flags = 0; // sa.sa_flags = 0;
__sigaction(__pthread_sig_debug, &sa, NULL); __libc_sigaction(__pthread_sig_debug, &sa, NULL);
} }
/* Initially, block __pthread_sig_restart. Will be unblocked on demand. */ /* Initially, block __pthread_sig_restart. Will be unblocked on demand. */
sigemptyset(&mask); sigemptyset(&mask);
@ -768,10 +768,10 @@ void __pthread_kill_other_threads_np(void)
sigemptyset(&sa.sa_mask); sigemptyset(&sa.sa_mask);
sa.sa_flags = 0; sa.sa_flags = 0;
sa.sa_handler = SIG_DFL; sa.sa_handler = SIG_DFL;
__sigaction(__pthread_sig_restart, &sa, NULL); __libc_sigaction(__pthread_sig_restart, &sa, NULL);
__sigaction(__pthread_sig_cancel, &sa, NULL); __libc_sigaction(__pthread_sig_cancel, &sa, NULL);
if (__pthread_sig_debug > 0) if (__pthread_sig_debug > 0)
__sigaction(__pthread_sig_debug, &sa, NULL); __libc_sigaction(__pthread_sig_debug, &sa, NULL);
} }
weak_alias (__pthread_kill_other_threads_np, pthread_kill_other_threads_np) weak_alias (__pthread_kill_other_threads_np, pthread_kill_other_threads_np)

View File

@ -131,7 +131,7 @@ static void pthread_sighandler_rt(int signo, struct siginfo *si,
/* The wrapper around sigaction. Install our own signal handler /* The wrapper around sigaction. Install our own signal handler
around the signal. */ around the signal. */
int sigaction(int sig, const struct sigaction * act, int __sigaction(int sig, const struct sigaction * act,
struct sigaction * oact) struct sigaction * oact)
{ {
struct sigaction newact; struct sigaction newact;
@ -159,7 +159,7 @@ int sigaction(int sig, const struct sigaction * act,
} }
else else
newactp = NULL; newactp = NULL;
if (__sigaction(sig, newactp, oact) == -1) if (__libc_sigaction(sig, newactp, oact) == -1)
return -1; return -1;
if (sig > 0 && sig < NSIG) if (sig > 0 && sig < NSIG)
{ {
@ -172,6 +172,7 @@ int sigaction(int sig, const struct sigaction * act,
} }
return 0; return 0;
} }
strong_alias(__sigaction, sigaction)
/* A signal handler that does nothing */ /* A signal handler that does nothing */
static void pthread_null_sighandler(int sig) { } static void pthread_null_sighandler(int sig) { }

View File

@ -107,7 +107,7 @@ static inline int __pthread_trylock (struct _pthread_fastlock * lock)
#endif #endif
#if !defined HAS_COMPARE_AND_SWAP #if !defined HAS_COMPARE_AND_SWAP
{ {
return (testandset(&lock->__spinlock) : EBUSY : 0) return (testandset(&lock->__spinlock) ? EBUSY : 0);
} }
#endif #endif

View File

@ -1,3 +1,84 @@
2000-07-06 Jakub Jelinek <jakub@redhat.com>
* locales/af_ZA (LC_TELEPHONE): Add int_prefix.
* locales/ar_SA (LC_TELEPHONE): Likewise.
* locales/be_BY (LC_TELEPHONE): Likewise.
* locales/bg_BG (LC_TELEPHONE): Likewise.
* locales/ca_ES (LC_TELEPHONE): Likewise.
* locales/da_DK (LC_TELEPHONE): Likewise.
* locales/de_BE (LC_TELEPHONE): Likewise.
* locales/de_CH (LC_TELEPHONE): Likewise.
* locales/de_LU (LC_TELEPHONE): Likewise.
* locales/el_GR (LC_TELEPHONE): Likewise.
* locales/en_AU (LC_TELEPHONE): Likewise.
* locales/en_BW (LC_TELEPHONE): Likewise.
* locales/en_CA (LC_TELEPHONE): Likewise.
* locales/en_CA,2.5 (LC_TELEPHONE): Likewise.
* locales/en_DK (LC_TELEPHONE): Likewise.
* locales/en_IE (LC_TELEPHONE): Likewise.
* locales/en_NZ (LC_TELEPHONE): Likewise.
* locales/en_ZA (LC_TELEPHONE): Likewise.
* locales/en_ZW (LC_TELEPHONE): Likewise.
* locales/es_AR (LC_TELEPHONE): Likewise.
* locales/es_BO (LC_TELEPHONE): Likewise.
* locales/es_CL (LC_TELEPHONE): Likewise.
* locales/es_CO (LC_TELEPHONE): Likewise.
* locales/es_DO (LC_TELEPHONE): Likewise.
* locales/es_EC (LC_TELEPHONE): Likewise.
* locales/es_ES (LC_TELEPHONE): Likewise.
* locales/es_GT (LC_TELEPHONE): Likewise.
* locales/es_HN (LC_TELEPHONE): Likewise.
* locales/es_MX (LC_TELEPHONE): Likewise.
* locales/es_PA (LC_TELEPHONE): Likewise.
* locales/es_PE (LC_TELEPHONE): Likewise.
* locales/es_PY (LC_TELEPHONE): Likewise.
* locales/es_SV (LC_TELEPHONE): Likewise.
* locales/es_US (LC_TELEPHONE): Likewise.
* locales/es_UY (LC_TELEPHONE): Likewise.
* locales/es_VE (LC_TELEPHONE): Likewise.
* locales/et_EE (LC_TELEPHONE): Likewise.
* locales/eu_ES (LC_TELEPHONE): Likewise.
* locales/fa_IR (LC_TELEPHONE): Likewise.
* locales/fi_FI (LC_TELEPHONE): Likewise.
* locales/fo_FO (LC_TELEPHONE): Likewise.
* locales/fr_BE (LC_TELEPHONE): Likewise.
* locales/fr_CA (LC_TELEPHONE): Likewise.
* locales/fr_CA,2.13 (LC_TELEPHONE): Likewise.
* locales/fr_CH (LC_TELEPHONE): Likewise.
* locales/fr_LU (LC_TELEPHONE): Likewise.
* locales/ga_IE (LC_TELEPHONE): Likewise.
* locales/gl_ES (LC_TELEPHONE): Likewise.
* locales/gv_GB (LC_TELEPHONE): Likewise.
* locales/he_IL (LC_TELEPHONE): Likewise.
* locales/hr_HR (LC_TELEPHONE): Likewise.
* locales/hu_HU (LC_TELEPHONE): Likewise.
* locales/id_ID (LC_TELEPHONE): Likewise.
* locales/in_ID (LC_TELEPHONE): Likewise.
* locales/is_IS (LC_TELEPHONE): Likewise.
* locales/it_CH (LC_TELEPHONE): Likewise.
* locales/it_IT (LC_TELEPHONE): Likewise.
* locales/iw_IL (LC_TELEPHONE): Likewise.
* locales/kl_GL (LC_TELEPHONE): Likewise.
* locales/ko_KR (LC_TELEPHONE): Likewise.
* locales/kw_GB (LC_TELEPHONE): Likewise.
* locales/lt_LT (LC_TELEPHONE): Likewise.
* locales/lv_LV (LC_TELEPHONE): Likewise.
* locales/mk_MK (LC_TELEPHONE): Likewise.
* locales/nl_BE (LC_TELEPHONE): Likewise.
* locales/nl_NL (LC_TELEPHONE): Likewise.
* locales/pl_PL (LC_TELEPHONE): Likewise.
* locales/pt_BR (LC_TELEPHONE): Likewise.
* locales/ro_RO (LC_TELEPHONE): Likewise.
* locales/ru_RU (LC_TELEPHONE): Likewise.
* locales/ru_UA (LC_TELEPHONE): Likewise.
* locales/sk_SK (LC_TELEPHONE): Likewise.
* locales/sl_SI (LC_TELEPHONE): Likewise.
* locales/sr_YU (LC_TELEPHONE): Likewise.
* locales/sv_FI (LC_TELEPHONE): Likewise.
* locales/th_TH (LC_TELEPHONE): Likewise.
* locales/tr_TR (LC_TELEPHONE): Likewise.
* locales/uk_UA (LC_TELEPHONE): Likewise.
2000-07-05 NIIBE Yutaka <gniibe@chroot.org> 2000-07-05 NIIBE Yutaka <gniibe@chroot.org>
* locales/th_TH: Update revision information. * locales/th_TH: Update revision information.

View File

@ -84,7 +84,7 @@ libc {
} }
GLIBC_2.2 { GLIBC_2.2 {
# needed in other libraries. # needed in other libraries.
__endmntent; __getmntent_r; __setmntent; __statfs; __endmntent; __getmntent_r; __setmntent; __statfs; __libc_sigaction;
# ipc ctl interface change. # ipc ctl interface change.
semctl; shmctl; msgctl; semctl; shmctl; msgctl;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. /* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -55,7 +55,7 @@ extern void __default_rt_sa_restorer(void);
/* If ACT is not NULL, change the action for SIG to *ACT. /* If ACT is not NULL, change the action for SIG to *ACT.
If OACT is not NULL, put the old action for SIG in *OACT. */ If OACT is not NULL, put the old action for SIG in *OACT. */
int int
__sigaction (sig, act, oact) __libc_sigaction (sig, act, oact)
int sig; int sig;
const struct sigaction *act; const struct sigaction *act;
struct sigaction *oact; struct sigaction *oact;
@ -147,4 +147,5 @@ __sigaction (sig, act, oact)
return result; return result;
} }
weak_alias (__sigaction, sigaction) strong_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)

View File

@ -55,7 +55,7 @@ static void restore (void) asm ("__restore");
/* If ACT is not NULL, change the action for SIG to *ACT. /* If ACT is not NULL, change the action for SIG to *ACT.
If OACT is not NULL, put the old action for SIG in *OACT. */ If OACT is not NULL, put the old action for SIG in *OACT. */
int int
__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
{ {
#if __ASSUME_REALTIME_SIGNALS == 0 #if __ASSUME_REALTIME_SIGNALS == 0
struct old_kernel_sigaction k_newact, k_oldact; struct old_kernel_sigaction k_newact, k_oldact;
@ -146,7 +146,8 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
#endif #endif
} }
weak_alias (__sigaction, sigaction) strong_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)
/* NOTE: Please think twice before making any changes to the bits of /* NOTE: Please think twice before making any changes to the bits of
code below. GDB needs some intimate knowledge about it to code below. GDB needs some intimate knowledge about it to

View File

@ -38,7 +38,7 @@ extern int __syscall_rt_sigaction (int, const struct sigaction *,
/* If ACT is not NULL, change the action for SIG to *ACT. /* If ACT is not NULL, change the action for SIG to *ACT.
If OACT is not NULL, put the old action for SIG in *OACT. */ If OACT is not NULL, put the old action for SIG in *OACT. */
int int
__sigaction (sig, act, oact) __libc_sigaction (sig, act, oact)
int sig; int sig;
const struct sigaction *act; const struct sigaction *act;
struct sigaction *oact; struct sigaction *oact;
@ -48,4 +48,5 @@ __sigaction (sig, act, oact)
return INLINE_SYSCALL (rt_sigaction, 4, sig, act, oact, _NSIG / 8); return INLINE_SYSCALL (rt_sigaction, 4, sig, act, oact, _NSIG / 8);
} }
weak_alias (__sigaction, sigaction) strong_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. /* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -45,7 +45,7 @@ extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *,
/* If ACT is not NULL, change the action for SIG to *ACT. /* If ACT is not NULL, change the action for SIG to *ACT.
If OACT is not NULL, put the old action for SIG in *OACT. */ If OACT is not NULL, put the old action for SIG in *OACT. */
int int
__sigaction (sig, act, oact) __libc_sigaction (sig, act, oact)
int sig; int sig;
const struct sigaction *act; const struct sigaction *act;
struct sigaction *oact; struct sigaction *oact;
@ -131,4 +131,5 @@ __sigaction (sig, act, oact)
#endif #endif
} }
weak_alias (__sigaction, sigaction) string_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)

View File

@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC. /* POSIX.1 sigaction call for Linux/SPARC.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx), 1997. Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx), 1997.
@ -36,7 +36,8 @@ static void __sigreturn_stub (void);
int __libc_missing_rt_sigs; int __libc_missing_rt_sigs;
int int
__sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) __libc_sigaction (int sig, __const struct sigaction *act,
struct sigaction *oact)
{ {
struct old_kernel_sigaction k_sigact, k_osigact; struct old_kernel_sigaction k_sigact, k_osigact;
int ret; int ret;
@ -134,7 +135,8 @@ __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact)
return -1; return -1;
} }
weak_alias (__sigaction, sigaction); strong_alias (__libc_sigaction, __sigaction);
weak_alias (__libc_sigaction, sigaction);
static void static void
__rt_sigreturn_stub (void) __rt_sigreturn_stub (void)

View File

@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC64. /* POSIX.1 sigaction call for Linux/SPARC64.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx) and Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).
@ -31,7 +31,8 @@
static void __rt_sigreturn_stub (void); static void __rt_sigreturn_stub (void);
int int
__sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) __libc_sigaction (int sig, __const struct sigaction *act,
struct sigaction *oact)
{ {
int ret; int ret;
struct kernel_sigaction kact, koact; struct kernel_sigaction kact, koact;
@ -61,7 +62,8 @@ __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact)
return ret; return ret;
} }
weak_alias (__sigaction, sigaction); strong_alias (__libc_sigaction, __sigaction);
weak_alias (__libc_sigaction, sigaction);
static void static void
__rt_sigreturn_stub (void) __rt_sigreturn_stub (void)