diff --git a/ndk/sources/android/libportable/arch-mips/pthread.c b/ndk/sources/android/libportable/arch-mips/pthread.c index 41d94786e..5b75623c9 100644 --- a/ndk/sources/android/libportable/arch-mips/pthread.c +++ b/ndk/sources/android/libportable/arch-mips/pthread.c @@ -288,13 +288,14 @@ int WRAP(pthread_kill)(pthread_t thread, int portable_signum) int WRAP(pthread_sigmask)(int portable_how, const sigset_portable_t *portable_sigset, sigset_portable_t *portable_oldset) { + extern int REAL(pthread_sigmask)(int how, const sigset_t *set, sigset_t *oset); int portable_ret, ret; ALOGV(" "); ALOGV("%s(portable_how:%d portable_sigset:%p, portable_oldset:%p)", __func__, portable_how, portable_sigset, portable_oldset); - ret = do_sigmask(portable_how, portable_sigset, portable_oldset, pthread_sigmask, NULL); + ret = do_sigmask(portable_how, portable_sigset, portable_oldset, REAL(pthread_sigmask), NULL); portable_ret = errno_ntop(ret); diff --git a/ndk/sources/android/libportable/arch-mips/signal.c b/ndk/sources/android/libportable/arch-mips/signal.c index c1befd62c..a06eff70a 100644 --- a/ndk/sources/android/libportable/arch-mips/signal.c +++ b/ndk/sources/android/libportable/arch-mips/signal.c @@ -745,6 +745,7 @@ do_signal_portable(int portable_signum, sighandler_portable_t portable_handler, */ sighandler_portable_t WRAP(signal)(int portable_signum, sighandler_portable_t handler) { + extern __sighandler_t REAL(bsd_signal)(int, __sighandler_t); sighandler_portable_t rv; ALOGV(" "); @@ -752,7 +753,7 @@ sighandler_portable_t WRAP(signal)(int portable_signum, sighandler_portable_t ha portable_signum, handler); /* bsd does a SA_RESTART */ - rv = do_signal_portable(portable_signum, handler, bsd_signal); + rv = do_signal_portable(portable_signum, handler, REAL(bsd_signal)); ALOGV("%s: return(ret:%p); }", __func__, rv); return rv; @@ -761,6 +762,7 @@ sighandler_portable_t WRAP(signal)(int portable_signum, sighandler_portable_t ha sighandler_portable_t WRAP(sysv_signal)(int portable_signum, sighandler_portable_t handler) { + extern __sighandler_t REAL(sysv_signal)(int, __sighandler_t); sighandler_portable_t rv; ALOGV(" "); @@ -768,7 +770,7 @@ sighandler_portable_t WRAP(sysv_signal)(int portable_signum, sighandler_portable portable_signum, handler); /* sysv does a SA_RESETHAND */ - rv = do_signal_portable(portable_signum, handler, sysv_signal); + rv = do_signal_portable(portable_signum, handler, REAL(sysv_signal)); ALOGV("%s: return(ret:%p); }", __func__, rv); return rv; @@ -785,6 +787,7 @@ sighandler_portable_t WRAP(sysv_signal)(int portable_signum, sighandler_portable sighandler_portable_t WRAP(bsd_signal)(int portable_signum, sighandler_portable_t handler) { + extern __sighandler_t REAL(bsd_signal)(int, __sighandler_t); sighandler_portable_t rv; ALOGV(" "); @@ -792,7 +795,7 @@ sighandler_portable_t WRAP(bsd_signal)(int portable_signum, sighandler_portable_ portable_signum, handler); /* bsd does a SA_RESTART */ - rv = do_signal_portable(portable_signum, handler, bsd_signal); + rv = do_signal_portable(portable_signum, handler, REAL(bsd_signal)); ALOGV("%s: return(ret:%p); }", __func__, rv); return rv;