|
|
- From 241164a201e03acce363e902fb25e452827211f0 Mon Sep 17 00:00:00 2001
- From: Fabian Mauchle <fabian.mauchle@switch.ch>
- Date: Mon, 26 Jul 2021 14:12:15 +0200
- Subject: [PATCH] fix setstacksize for glibc 2.34 (fix #91)
-
- ---
- ChangeLog | 1 +
- radsecproxy.c | 10 ++++++++--
- radsecproxy.h | 12 +++---------
- 3 files changed, 12 insertions(+), 11 deletions(-)
-
- --- a/radsecproxy.c
- +++ b/radsecproxy.c
- @@ -3031,6 +3031,7 @@ int createpidfile(const char *pidfile) {
- int radsecproxy_main(int argc, char **argv) {
- pthread_t sigth;
- sigset_t sigset;
- + size_t stacksize;
- struct list_node *entry;
- uint8_t foreground = 0, pretend = 0, loglevel = 0;
- char *configfile = NULL, *pidfile = NULL;
- @@ -3042,8 +3043,13 @@ int radsecproxy_main(int argc, char **ar
-
- if (pthread_attr_init(&pthread_attr))
- debugx(1, DBG_ERR, "pthread_attr_init failed");
- - if (pthread_attr_setstacksize(&pthread_attr, PTHREAD_STACK_SIZE))
- - debugx(1, DBG_ERR, "pthread_attr_setstacksize failed");
- +#if defined(PTHREAD_STACK_MIN)
- + stacksize = THREAD_STACK_SIZE > PTHREAD_STACK_MIN ? THREAD_STACK_SIZE : PTHREAD_STACK_MIN;
- +#else
- + stacksize = THREAD_STACK_SIZE;
- +#endif
- + if (pthread_attr_setstacksize(&pthread_attr, stacksize))
- + debug(DBG_WARN, "pthread_attr_setstacksize failed! Using system default. Memory footprint might be increased!");
- #if defined(HAVE_MALLOPT)
- if (mallopt(M_TRIM_THRESHOLD, 4 * 1024) != 1)
- debugx(1, DBG_ERR, "mallopt failed");
- --- a/radsecproxy.h
- +++ b/radsecproxy.h
- @@ -28,15 +28,9 @@
- #define STATUS_SERVER_PERIOD 25
- #define IDLE_TIMEOUT 300
-
- -/* We want PTHREAD_STACK_SIZE to be 32768, but some platforms
- - * have a higher minimum value defined in PTHREAD_STACK_MIN. */
- -#define PTHREAD_STACK_SIZE 32768
- -#if defined(PTHREAD_STACK_MIN)
- -#if PTHREAD_STACK_MIN > PTHREAD_STACK_SIZE
- -#undef PTHREAD_STACK_SIZE
- -#define PTHREAD_STACK_SIZE PTHREAD_STACK_MIN
- -#endif
- -#endif
- +/* Target value for stack size.
- + * Some platforms might define higher minimums in PTHREAD_STACK_MIN. */
- +#define THREAD_STACK_SIZE 32768
-
- /* For systems that only support RFC 2292 Socket API, but not RFC 3542
- * like Cygwin */
|