diff options
author | Dan Albert <danalbert@google.com> | 2014-06-04 10:14:19 -0700 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2014-06-05 08:21:17 -0700 |
commit | 205dd7d9b3ba314ef8601e4613823c2d62a0605b (patch) | |
tree | 06109b7334bace518e53cd8c0b6bbf3c590839c0 /libc | |
parent | 8aabecf35c71a8255db259cba01005eea10485cf (diff) | |
download | android_bionic-205dd7d9b3ba314ef8601e4613823c2d62a0605b.tar.gz android_bionic-205dd7d9b3ba314ef8601e4613823c2d62a0605b.tar.bz2 android_bionic-205dd7d9b3ba314ef8601e4613823c2d62a0605b.zip |
Remove bsd_signal and sysv_signal from bionic LP64.
bsd_signal was removed in POSIX 2008, sysv_signal was never POSIX.
Bug: 13935372
Change-Id: I7688e5cc317247ff075dcf99b598f515fb4f15c4
Diffstat (limited to 'libc')
-rw-r--r-- | libc/bionic/ndk_cruft.cpp | 12 | ||||
-rw-r--r-- | libc/bionic/signal.cpp | 17 | ||||
-rw-r--r-- | libc/include/signal.h | 2 |
3 files changed, 19 insertions, 12 deletions
diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp index ed60ea48d..cb9c9c9f6 100644 --- a/libc/bionic/ndk_cruft.cpp +++ b/libc/bionic/ndk_cruft.cpp @@ -32,6 +32,7 @@ #include <ctype.h> #include <inttypes.h> #include <pthread.h> +#include <signal.h> #include <stdio.h> #include <stdlib.h> #include <sys/resource.h> @@ -226,4 +227,15 @@ extern "C" wchar_t* wcswcs(wchar_t* haystack, wchar_t* needle) { return wcsstr(haystack, needle); } +// This was removed from POSIX 2008. +extern "C" sighandler_t bsd_signal(int signum, sighandler_t handler) { + return signal(signum, handler); +} + +// sysv_signal() was never in POSIX. +extern sighandler_t _signal(int signum, sighandler_t handler, int flags); +extern "C" sighandler_t sysv_signal(int signum, sighandler_t handler) { + return _signal(signum, handler, SA_RESETHAND); +} + #endif diff --git a/libc/bionic/signal.cpp b/libc/bionic/signal.cpp index 48b2e723f..66d75bd91 100644 --- a/libc/bionic/signal.cpp +++ b/libc/bionic/signal.cpp @@ -28,7 +28,12 @@ #include <signal.h> -static sighandler_t _signal(int signum, sighandler_t handler, int flags) { +#ifdef __LP64__ +static +#else +__LIBC_HIDDEN__ +#endif +sighandler_t _signal(int signum, sighandler_t handler, int flags) { struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_handler = handler; @@ -41,14 +46,6 @@ static sighandler_t _signal(int signum, sighandler_t handler, int flags) { return (sighandler_t) sa.sa_handler; } -sighandler_t bsd_signal(int signum, sighandler_t handler) { - return _signal(signum, handler, SA_RESTART); -} - -sighandler_t sysv_signal(int signum, sighandler_t handler) { - return _signal(signum, handler, SA_RESETHAND); -} - sighandler_t signal(int signum, sighandler_t handler) { - return bsd_signal(signum, handler); + return _signal(signum, handler, SA_RESTART); } diff --git a/libc/include/signal.h b/libc/include/signal.h index 45c1cdad7..0063b2495 100644 --- a/libc/include/signal.h +++ b/libc/include/signal.h @@ -102,8 +102,6 @@ struct sigaction { extern int sigaction(int, const struct sigaction*, struct sigaction*); extern sighandler_t signal(int, sighandler_t); -extern sighandler_t bsd_signal(int, sighandler_t); -extern sighandler_t sysv_signal(int, sighandler_t); extern int siginterrupt(int, int); |