Gentoo Archives: gentoo-commits

From: Conrad Kostecki <conikost@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-benchmarks/stress-ng/, app-benchmarks/stress-ng/files/
Date: Mon, 26 Jul 2021 20:05:47
Message-Id: 1627329855.e847dd35728834c0dc61729774119782d83b0899.conikost@gentoo
1 commit: e847dd35728834c0dc61729774119782d83b0899
2 Author: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jul 26 20:04:15 2021 +0000
4 Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
5 CommitDate: Mon Jul 26 20:04:15 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e847dd35
7
8 app-benchmarks/stress-ng: fix compilation with glibc-2.34
9
10 Closes: https://bugs.gentoo.org/803941
11 Package-Manager: Portage-3.0.20, Repoman-3.0.3
12 Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
13
14 .../files/stress-ng-0.12.12-glibc-2.34.patch | 101 +++++++++++++++++++++
15 app-benchmarks/stress-ng/stress-ng-0.12.12.ebuild | 2 +
16 2 files changed, 103 insertions(+)
17
18 diff --git a/app-benchmarks/stress-ng/files/stress-ng-0.12.12-glibc-2.34.patch b/app-benchmarks/stress-ng/files/stress-ng-0.12.12-glibc-2.34.patch
19 new file mode 100644
20 index 00000000000..b2f93f21cba
21 --- /dev/null
22 +++ b/app-benchmarks/stress-ng/files/stress-ng-0.12.12-glibc-2.34.patch
23 @@ -0,0 +1,101 @@
24 +From f839de283c44ffe46a2d14bfdf854c145abd8ed6 Mon Sep 17 00:00:00 2001
25 +From: Colin Ian King <colin.king@×××××××××.com>
26 +Date: Mon, 19 Jul 2021 20:49:34 +0100
27 +Subject: [PATCH] Detemine minimal stack size via sysconf, then
28 + PTHREAD_STACK_MIN then guess
29 +
30 +Don't rely on PTHREAD_STACK_MIN being defined, use sysconf, then
31 +PTHREAD_STACK_MIN if it is defined, then 8K default.
32 +
33 +Signed-off-by: Colin Ian King <colin.king@×××××××××.com>
34 +---
35 + core-helper.c | 31 +++++++++++++++++++++++++++++++
36 + stress-ng.h | 1 +
37 + stress-pthread.c | 13 ++-----------
38 + 3 files changed, 34 insertions(+), 11 deletions(-)
39 +
40 +diff --git a/core-helper.c b/core-helper.c
41 +index 508627f2..97a3b869 100644
42 +--- a/core-helper.c
43 ++++ b/core-helper.c
44 +@@ -2494,6 +2494,37 @@ size_t stress_min_sig_stack_size(void)
45 + return (size_t)sz;
46 + }
47 +
48 ++size_t stress_min_pthread_stack_size(void)
49 ++{
50 ++ static long sz = -1, min;
51 ++
52 ++ /* return cached copy */
53 ++ if (sz > 0)
54 ++ return sz;
55 ++
56 ++ min = stress_min_aux_sig_stack_size();
57 ++#if defined(__SC_THREAD_STACK_MIN_VALUE)
58 ++ sz = sysconf(__SC_THREAD_STACK_MIN_VALUE);
59 ++ if (sz > min)
60 ++ min = sz;
61 ++#endif
62 ++#if defined(_SC_THREAD_STACK_MIN_VALUE)
63 ++ sz = sysconf(_SC_THREAD_STACK_MIN_VALUE);
64 ++ if (sz > min)
65 ++ min = sz;
66 ++#endif
67 ++#if defined(PTHREAD_STACK_MIN)
68 ++ if (PTHREAD_STACK_MIN > min)
69 ++ min = PTHREAD_STACK_MIN;
70 ++#endif
71 ++ if (8192 > min)
72 ++ min = 8192;
73 ++
74 ++ sz = min;
75 ++
76 ++ return (size_t)sz;
77 ++}
78 ++
79 + /*
80 + * stress_sig_handler_exit()
81 + * signal handler that exits a process via _exit(0) for
82 +diff --git a/stress-ng.h b/stress-ng.h
83 +index 8a8b17ae..cd744756 100644
84 +--- a/stress-ng.h
85 ++++ b/stress-ng.h
86 +@@ -4056,6 +4056,7 @@ extern WARN_UNUSED int32_t stress_get_opt_ionice_class(const char *const str);
87 + /* Misc helper funcs */
88 + extern WARN_UNUSED size_t stress_sig_stack_size(void);
89 + extern WARN_UNUSED size_t stress_min_sig_stack_size(void);
90 ++extern WARN_UNUSED size_t stress_min_pthread_stack_size(void);
91 +
92 + #define STRESS_SIGSTKSZ (stress_sig_stack_size())
93 + #define STRESS_MINSIGSTKSZ (stress_min_sig_stack_size())
94 +diff --git a/stress-pthread.c b/stress-pthread.c
95 +index 0da3aeec..27777af8 100644
96 +--- a/stress-pthread.c
97 ++++ b/stress-pthread.c
98 +@@ -69,12 +69,7 @@ static const stress_opt_set_func_t opt_set_funcs[] = {
99 +
100 + #if defined(HAVE_LIB_PTHREAD)
101 +
102 +-/* Some systems such as GNU/HURD don't define PTHREAD_STACK_MIN */
103 +-#if !defined(PTHREAD_STACK_MIN)
104 +-#define PTHREAD_STACK_MIN (16 * KB)
105 +-#endif
106 +-
107 +-#define DEFAULT_STACK_MIN (16 * KB)
108 ++#define DEFAULT_STACK_MIN (8 * KB)
109 +
110 + #if defined(HAVE_GET_ROBUST_LIST) && \
111 + defined(HAVE_LINUX_FUTEX_H)
112 +@@ -404,11 +399,7 @@ static int stress_pthread(const stress_args_t *args)
113 + stress_pthread_args_t pargs = { args, NULL, 0 };
114 + sigset_t set;
115 + #if defined(HAVE_PTHREAD_ATTR_SETSTACK)
116 +-#if DEFAULT_STACK_MIN == PTHREAD_STACK_MIN
117 +- const size_t stack_size = PTHREAD_STACK_MIN;
118 +-#else
119 +- const size_t stack_size = STRESS_MAXIMUM(DEFAULT_STACK_MIN, PTHREAD_STACK_MIN);
120 +-#endif
121 ++ const size_t stack_size = STRESS_MAXIMUM(DEFAULT_STACK_MIN, stress_min_pthread_stack_size());
122 + #endif
123 +
124 + keep_running_flag = true;
125
126 diff --git a/app-benchmarks/stress-ng/stress-ng-0.12.12.ebuild b/app-benchmarks/stress-ng/stress-ng-0.12.12.ebuild
127 index 309cd350a1c..4269478b747 100644
128 --- a/app-benchmarks/stress-ng/stress-ng-0.12.12.ebuild
129 +++ b/app-benchmarks/stress-ng/stress-ng-0.12.12.ebuild
130 @@ -28,6 +28,8 @@ RDEPEND="${DEPEND}"
131
132 DOCS=( "README" "README.Android" "TODO" "syscalls.txt" )
133
134 +PATCHES=( "${FILESDIR}/${PN}-0.12.12-glibc-2.34.patch" )
135 +
136 src_compile() {
137 export MAN_COMPRESS=0
138 export VERBOSE=1