From 205dd7d9b3ba314ef8601e4613823c2d62a0605b Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Wed, 4 Jun 2014 10:14:19 -0700 Subject: [PATCH] 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 --- libc/bionic/ndk_cruft.cpp | 12 ++++++++++++ libc/bionic/signal.cpp | 17 +++++++---------- 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 #include #include +#include #include #include #include @@ -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 -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) { +sighandler_t 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); -} 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);