diff --git a/configure.in b/configure.in index 66d31340972aba39730279a70edc9b6824b8a8a5..3aced513209972fa7f3074a6fb4286c543b8ba97 100644 --- a/configure.in +++ b/configure.in @@ -7230,7 +7230,7 @@ if test "$OS_TARGET" = Android; then WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=dlopen,--wrap=dlclose,--wrap=dlerror,--wrap=dlsym,--wrap=dladdr" fi WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=getaddrinfo,--wrap=freeaddrinfo,--wrap=gai_strerror" - WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=fork,--wrap=pthread_atfork" + WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=fork,--wrap=pthread_atfork,--wrap=raise" fi dnl ======================================================== diff --git a/mozglue/android/APKOpen.cpp b/mozglue/android/APKOpen.cpp index 793b0f74e23fdf99cb20257b0cf923bb795fbf23..243834c72e13715233d9cfc818338b5b58f146ad 100644 --- a/mozglue/android/APKOpen.cpp +++ b/mozglue/android/APKOpen.cpp @@ -49,6 +49,7 @@ #include <sys/mman.h> #include <sys/limits.h> #include <errno.h> +#include <pthread.h> #include <string.h> #include <stdio.h> #include <stdlib.h> @@ -1082,3 +1083,10 @@ __wrap_fork(void) } return pid; } + +extern "C" NS_EXPORT int +__wrap_raise(int sig) +{ + return pthread_kill(pthread_self(), sig); +} + diff --git a/mozglue/gonk/GonkGlue.cpp b/mozglue/gonk/GonkGlue.cpp index 434fd9fd63cad73de35a51464009db7b6c1c570c..6eefb43c4cf2abd205efc5438273d43665ac11c7 100644 --- a/mozglue/gonk/GonkGlue.cpp +++ b/mozglue/gonk/GonkGlue.cpp @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include <unistd.h> +#include <pthread.h> #include <vector> #define NS_EXPORT __attribute__ ((visibility("default"))) @@ -51,3 +52,10 @@ __wrap_fork(void) } return pid; } + +extern "C" NS_EXPORT int +__wrap_raise(int sig) +{ + return pthread_kill(pthread_self(), sig); +} +