Message ID | 20210913125911.52199-1-abrodkin@synopsys.com |
---|---|
State | Accepted |
Headers | show |
Series | package/ntp: Fix building with glibc 2.34+ | expand |
On 13/09/2021 14:59, Alexey Brodkin via buildroot wrote: > On attempt to build ntp with glibc 2.34 the following error happens: > -------------------------------->8------------------------------ > In file included from .../output/host/lib/gcc/i586-buildroot-linux-gnu/10.3.0/include-fixed/pthread.h:42, > from work_thread.c:13: > work_thread.c:45:57: error: missing binary operator before token "(" > 45 | #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN > | ^~~~~~~~~~~~~~~~~ > -------------------------------->8------------------------------ > > That's because starting from glibc 2.34 PTHREAD_STACK_MIN gets determined > dynamically in runtime via sysconf(), see [1]. > > Original fix proposed by Khem Raj in OpenEmbedded, see [2]. I was looking for an upstream fix instead, since ntp is supposed to be a maintained project, but there seems to be no public git repository (the one on github hasn't been touched for 6 years), so I guess this is the best we can do... Applied to master, thanks. Regards, Arnout > > [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=5d98a7dae955bafa6740c26eaba9c86060ae0344 > [2] https://github.com/openembedded/meta-openembedded/commit/7055c764c83150f9310ce04bcfb19330460582fc > > Suggested-by: Artem Panfilov <artemp@synopsys.com> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > --- > ...ntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch | 33 ++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > create mode 100644 package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch > > diff --git a/package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch b/package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch > new file mode 100644 > index 0000000000..da03ad4aac > --- /dev/null > +++ b/package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch > @@ -0,0 +1,33 @@ > +From 082a504cfcc046c3d8adaae1164268bc94e5108a Mon Sep 17 00:00:00 2001 > +From: Khem Raj <raj.khem@gmail.com> > +Date: Sat, 31 Jul 2021 10:51:41 -0700 > +Subject: [PATCH] libntp: Do not use PTHREAD_STACK_MIN on glibc > + > +In glibc 2.34+ PTHREAD_STACK_MIN is not a compile-time constant which > +could mean different stack sizes at runtime on different architectures > +and it also causes compile failure. Default glibc thread stack size > +or 64Kb set by ntp should be good in glibc these days. > + > +Signed-off-by: Khem Raj <raj.khem@gmail.com> > +[Copied from https://github.com/openembedded/meta-openembedded/blob/master/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch] > +Signed-off-by: Alexey Brodkin <abrokdin@synopsys.com> > +--- > + libntp/work_thread.c | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/libntp/work_thread.c b/libntp/work_thread.c > +index 03a5647..3ddd751 100644 > +--- a/libntp/work_thread.c > ++++ b/libntp/work_thread.c > +@@ -41,7 +41,7 @@ > + #ifndef THREAD_MINSTACKSIZE > + # define THREAD_MINSTACKSIZE (64U * 1024) > + #endif > +-#ifndef __sun > ++#if !defined(__sun) && !defined(__GLIBC__) > + #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN > + # undef THREAD_MINSTACKSIZE > + # define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN > +-- > +2.32.0 > + >
diff --git a/package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch b/package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch new file mode 100644 index 0000000000..da03ad4aac --- /dev/null +++ b/package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch @@ -0,0 +1,33 @@ +From 082a504cfcc046c3d8adaae1164268bc94e5108a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 31 Jul 2021 10:51:41 -0700 +Subject: [PATCH] libntp: Do not use PTHREAD_STACK_MIN on glibc + +In glibc 2.34+ PTHREAD_STACK_MIN is not a compile-time constant which +could mean different stack sizes at runtime on different architectures +and it also causes compile failure. Default glibc thread stack size +or 64Kb set by ntp should be good in glibc these days. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +[Copied from https://github.com/openembedded/meta-openembedded/blob/master/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch] +Signed-off-by: Alexey Brodkin <abrokdin@synopsys.com> +--- + libntp/work_thread.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libntp/work_thread.c b/libntp/work_thread.c +index 03a5647..3ddd751 100644 +--- a/libntp/work_thread.c ++++ b/libntp/work_thread.c +@@ -41,7 +41,7 @@ + #ifndef THREAD_MINSTACKSIZE + # define THREAD_MINSTACKSIZE (64U * 1024) + #endif +-#ifndef __sun ++#if !defined(__sun) && !defined(__GLIBC__) + #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN + # undef THREAD_MINSTACKSIZE + # define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN +-- +2.32.0 +
On attempt to build ntp with glibc 2.34 the following error happens: -------------------------------->8------------------------------ In file included from .../output/host/lib/gcc/i586-buildroot-linux-gnu/10.3.0/include-fixed/pthread.h:42, from work_thread.c:13: work_thread.c:45:57: error: missing binary operator before token "(" 45 | #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN | ^~~~~~~~~~~~~~~~~ -------------------------------->8------------------------------ That's because starting from glibc 2.34 PTHREAD_STACK_MIN gets determined dynamically in runtime via sysconf(), see [1]. Original fix proposed by Khem Raj in OpenEmbedded, see [2]. [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=5d98a7dae955bafa6740c26eaba9c86060ae0344 [2] https://github.com/openembedded/meta-openembedded/commit/7055c764c83150f9310ce04bcfb19330460582fc Suggested-by: Artem Panfilov <artemp@synopsys.com> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> --- ...ntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 package/ntp/0004-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch