From a0a6ae80012a50e228a885466a9f1b9af5f71830 Mon Sep 17 00:00:00 2001 From: oreo639 <31916379+Oreo639@users.noreply.github.com> Date: Thu, 18 Aug 2022 20:05:03 -0700 Subject: [PATCH] ntp: fix build for glibc 2.34 https://bugs.ntp.org/show_bug.cgi?id=3741 --- srcpkgs/ntp/patches/compat-glibc-2.34.patch | 55 +++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 srcpkgs/ntp/patches/compat-glibc-2.34.patch diff --git a/srcpkgs/ntp/patches/compat-glibc-2.34.patch b/srcpkgs/ntp/patches/compat-glibc-2.34.patch new file mode 100644 index 000000000000..4e75cc845282 --- /dev/null +++ b/srcpkgs/ntp/patches/compat-glibc-2.34.patch @@ -0,0 +1,55 @@ +diff -Nru a/libntp/work_thread.c b/libntp/work_thread.c +--- a/libntp/work_thread.c 2022-01-16 11:35:17.290791372 +0100 ++++ b/libntp/work_thread.c 2022-01-16 11:35:17.290791372 +0100 +@@ -41,20 +41,10 @@ + #ifndef THREAD_MINSTACKSIZE + # define THREAD_MINSTACKSIZE (64U * 1024) + #endif +-#ifndef __sun +-#if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN +-# undef THREAD_MINSTACKSIZE +-# define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN +-#endif +-#endif + + #ifndef THREAD_MAXSTACKSIZE + # define THREAD_MAXSTACKSIZE (256U * 1024) + #endif +-#if THREAD_MAXSTACKSIZE < THREAD_MINSTACKSIZE +-# undef THREAD_MAXSTACKSIZE +-# define THREAD_MAXSTACKSIZE THREAD_MINSTACKSIZE +-#endif + + /* need a good integer to store a pointer... */ + #ifndef UINTPTR_T +@@ -594,12 +584,25 @@ + "start_blocking_thread: pthread_attr_getstacksize() -> %s", + strerror(rc)); + } else { +- if (ostacksize < THREAD_MINSTACKSIZE) +- nstacksize = THREAD_MINSTACKSIZE; +- else if (ostacksize > THREAD_MAXSTACKSIZE) ++ nstacksize = ostacksize; ++ /* order is important here: first clamp on upper limit, ++ * and the PTHREAD min stack size is ultimate override! ++ */ ++ if (nstacksize > THREAD_MAXSTACKSIZE) + nstacksize = THREAD_MAXSTACKSIZE; +- else +- nstacksize = ostacksize; ++# ifdef PTHREAD_STACK_MAX ++ if (nstacksize > PTHREAD_STACK_MAX) ++ nstacksize = PTHREAD_STACK_MAX; ++# endif ++ ++ /* now clamp on lower stack limit. */ ++ if (nstacksize < THREAD_MINSTACKSIZE) ++ nstacksize = THREAD_MINSTACKSIZE; ++# ifdef PTHREAD_STACK_MIN ++ if (nstacksize < PTHREAD_STACK_MIN) ++ nstacksize = PTHREAD_STACK_MIN; ++# endif ++ + if (nstacksize != ostacksize) + rc = pthread_attr_setstacksize(&thr_attr, nstacksize); + if (0 != rc)