diff options
author | Rickard Green <[email protected]> | 2017-01-25 15:05:50 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2017-01-25 15:05:50 +0100 |
commit | cd4a95b0abb45f07eef8a77991c2be8f5dea575e (patch) | |
tree | 0f0626fc7963a25e45f1b9d113ffaea09d318248 | |
parent | dd2e2b74fe6e97f13ab00f98a049604cf61fb43d (diff) | |
parent | 23cfe2138c71861684f55a298b55203b4649a645 (diff) | |
download | otp-cd4a95b0abb45f07eef8a77991c2be8f5dea575e.tar.gz otp-cd4a95b0abb45f07eef8a77991c2be8f5dea575e.tar.bz2 otp-cd4a95b0abb45f07eef8a77991c2be8f5dea575e.zip |
Merge branch 'rickard/android-missing-page-size-workaround' into maint
OTP-14165
* rickard/android-missing-page-size-workaround:
Workaround for buggy android implementation of PTHREAD_STACK_MIN
-rw-r--r-- | erts/aclocal.m4 | 19 | ||||
-rw-r--r-- | erts/lib_src/common/ethr_aux.c | 2 |
2 files changed, 20 insertions, 1 deletions
diff --git a/erts/aclocal.m4 b/erts/aclocal.m4 index 6c0544da31..5ea4c2ccf3 100644 --- a/erts/aclocal.m4 +++ b/erts/aclocal.m4 @@ -1704,6 +1704,25 @@ case "$THR_LIB_NAME" in AC_DEFINE(ETHR_TIME_WITH_SYS_TIME, 1, \ [Define if you can safely include both <sys/time.h> and <time.h>.])) + AC_MSG_CHECKING([for usable PTHREAD_STACK_MIN]) + pthread_stack_min=no + AC_TRY_COMPILE([ +#include <limits.h> +#if defined(ETHR_NEED_NPTL_PTHREAD_H) +#include <nptl/pthread.h> +#elif defined(ETHR_HAVE_MIT_PTHREAD_H) +#include <pthread/mit/pthread.h> +#elif defined(ETHR_HAVE_PTHREAD_H) +#include <pthread.h> +#endif + ], + [return PTHREAD_STACK_MIN;], + [pthread_stack_min=yes]) + + AC_MSG_RESULT([$pthread_stack_min]) + test $pthread_stack_min != yes || { + AC_DEFINE(ETHR_HAVE_USABLE_PTHREAD_STACK_MIN, 1, [Define if you can use PTHREAD_STACK_MIN]) + } dnl dnl Check for functions diff --git a/erts/lib_src/common/ethr_aux.c b/erts/lib_src/common/ethr_aux.c index 420efd725f..3501fe335a 100644 --- a/erts/lib_src/common/ethr_aux.c +++ b/erts/lib_src/common/ethr_aux.c @@ -220,7 +220,7 @@ ethr_init_common__(ethr_init_data *id) ethr_min_stack_size__ += ethr_pagesize__; #endif /* The system may think that we need more stack */ -#if defined(PTHREAD_STACK_MIN) +#if defined(ETHR_HAVE_USABLE_PTHREAD_STACK_MIN) if (ethr_min_stack_size__ < PTHREAD_STACK_MIN) ethr_min_stack_size__ = PTHREAD_STACK_MIN; #elif defined(_SC_THREAD_STACK_MIN) |