diff options
-rw-r--r-- | config/user-nptl_guard_within_stack.m4 | 56 | ||||
-rw-r--r-- | config/user.m4 | 1 | ||||
-rw-r--r-- | include/sys/zfs_context.h | 6 | ||||
-rw-r--r-- | lib/libzpool/kernel.c | 3 |
4 files changed, 1 insertions, 65 deletions
diff --git a/config/user-nptl_guard_within_stack.m4 b/config/user-nptl_guard_within_stack.m4 deleted file mode 100644 index 421eb1c05..000000000 --- a/config/user-nptl_guard_within_stack.m4 +++ /dev/null @@ -1,56 +0,0 @@ -dnl # -dnl # Check if the glibc NPTL threading implementation includes the guard area -dnl # within the stack size allocation, rather than allocating extra space at -dnl # the end of the stack, as POSIX.1 requires. -dnl # -AC_DEFUN([ZFS_AC_CONFIG_USER_STACK_GUARD], [ - - AC_MSG_CHECKING([whether pthread stack includes guard]) - - saved_CFLAGS="$CFLAGS" - CFLAGS="-fstack-check" - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="-lpthread" - - AC_RUN_IFELSE([AC_LANG_PROGRAM( - [ - #include <pthread.h> - #include <sys/resource.h> - #include <unistd.h> - #include <bits/local_lim.h> - - #define PAGESIZE (sysconf(_SC_PAGESIZE)) - #define STACK_SIZE 8192 - #define BUFSIZE 4096 - - void * func(void *arg) - { - char buf[[BUFSIZE]]; - } - ], - [ - pthread_t tid; - pthread_attr_t attr; - struct rlimit l; - - l.rlim_cur = 0; - l.rlim_max = 0; - setrlimit(RLIMIT_CORE, &l); - pthread_attr_init(&attr); - pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN + STACK_SIZE); - pthread_attr_setguardsize(&attr, PAGESIZE); - pthread_create(&tid, &attr, func, NULL); - pthread_join(tid, NULL); - ])], - [ - AC_MSG_RESULT([no]) - ], - [ - AC_DEFINE([NPTL_GUARD_WITHIN_STACK], 1, - [Define to 1 if NPTL threading implementation includes - guard area in stack allocation]) - AC_MSG_RESULT([yes]) - ]) - CFLAGS="$saved_CFLAGS" - LDFLAGS="$saved_LDFLAGS" -]) diff --git a/config/user.m4 b/config/user.m4 index 4fcef3d5b..109ebd5f9 100644 --- a/config/user.m4 +++ b/config/user.m4 @@ -10,5 +10,4 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [ ZFS_AC_CONFIG_USER_LIBBLKID ZFS_AC_CONFIG_USER_LIBSELINUX ZFS_AC_CONFIG_USER_FRAME_LARGER_THAN - ZFS_AC_CONFIG_USER_STACK_GUARD ]) diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h index 6b00a5d5d..53080f382 100644 --- a/include/sys/zfs_context.h +++ b/include/sys/zfs_context.h @@ -190,12 +190,6 @@ extern void vpanic(const char *, __va_list); #define STACK_SIZE 24576 /* Solaris */ #endif -#ifdef NPTL_GUARD_WITHIN_STACK -#define EXTRA_GUARD_BYTES PAGESIZE -#else -#define EXTRA_GUARD_BYTES 0 -#endif - /* in libzpool, p0 exists only to have its address taken */ typedef struct proc { uintptr_t this_is_never_used_dont_dereference_it; diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c index 0e10c8951..c1ce82d1b 100644 --- a/lib/libzpool/kernel.c +++ b/lib/libzpool/kernel.c @@ -175,8 +175,7 @@ zk_thread_create(caddr_t stk, size_t stksize, thread_func_t func, void *arg, * on Linux. */ - stack = PTHREAD_STACK_MIN + MAX(stksize, STACK_SIZE) * 4 + - EXTRA_GUARD_BYTES; + stack = PTHREAD_STACK_MIN + MAX(stksize, STACK_SIZE) * 4; VERIFY3S(pthread_attr_init(&attr), ==, 0); VERIFY3S(pthread_attr_setstacksize(&attr, stack), ==, 0); |