All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit] package/util-linux: fix build with -O0
@ 2024-02-11 22:23 Thomas Petazzoni via buildroot
  0 siblings, 0 replies; only message in thread
From: Thomas Petazzoni via buildroot @ 2024-02-11 22:23 UTC (permalink / raw)
  To: buildroot

commit: https://git.buildroot.net/buildroot/commit/?id=8740387457f4dfccbd211ffaef1cae91db9f232d
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Fix the following build failure with -O0 raised since bump to version
2.39 in commit ad276d94a392fb13244e042851a44269e6254d61 and
https://github.com/util-linux/util-linux/commit/2fa4168c8bc9d5438bc1dfadda293c7c21b6fa59:

libuuid/src/gen_uuid.c: In function 'uuid_generate_time_generic':
libuuid/src/gen_uuid.c:536:33: error: initializer element is not constant
  THREAD_LOCAL int  cache_size = cs_min;
                                 ^~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/7c9b8508345ffaba167c08521fb865d76555be1d
 - http://autobuild.buildroot.org/results/2f80a5cdb523cc3c8c0f3693607a1be036b2ae98

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 ...uid-src-gen_uuid.c-fix-cs_min-declaration.patch | 80 ++++++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/package/util-linux/0001-libuuid-src-gen_uuid.c-fix-cs_min-declaration.patch b/package/util-linux/0001-libuuid-src-gen_uuid.c-fix-cs_min-declaration.patch
new file mode 100644
index 0000000000..bba4d54619
--- /dev/null
+++ b/package/util-linux/0001-libuuid-src-gen_uuid.c-fix-cs_min-declaration.patch
@@ -0,0 +1,80 @@
+From bcd11dece7d278bb0b76b138d08dedea80fa8262 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Tue, 7 Nov 2023 18:43:57 +0100
+Subject: [PATCH] libuuid/src/gen_uuid.c: fix cs_min declaration
+
+Define cs_min through a define and not a const int to avoid the
+following build failure with -O0 raised since version 2.39 and
+https://github.com/util-linux/util-linux/commit/2fa4168c8bc9d5438bc1dfadda293c7c21b6fa59:
+
+libuuid/src/gen_uuid.c: In function 'uuid_generate_time_generic':
+libuuid/src/gen_uuid.c:536:33: error: initializer element is not constant
+  THREAD_LOCAL int  cache_size = cs_min;
+                                 ^~~~~~
+
+For consistency, also use define for cs_max and cs_factor
+
+Fixes:
+ - http://autobuild.buildroot.org/results/2f80a5cdb523cc3c8c0f3693607a1be036b2ae98
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Upstream: https://github.com/util-linux/util-linux/commit/07e5c29d501c19e7af84fecb5915e0f9f94cb49f
+---
+ libuuid/src/gen_uuid.c | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c
+index 619ef0131..db793c374 100644
+--- a/libuuid/src/gen_uuid.c
++++ b/libuuid/src/gen_uuid.c
+@@ -518,6 +518,10 @@ int __uuid_generate_time_cont(uuid_t out, int *num, uint32_t cont_offset)
+ 	return __uuid_generate_time_internal(out, num, cont_offset);
+ }
+ 
++#define CS_MIN		(1<<6)
++#define CS_MAX		(1<<18)
++#define CS_FACTOR	2
++
+ /*
+  * Generate time-based UUID and store it to @out
+  *
+@@ -529,11 +533,8 @@ int __uuid_generate_time_cont(uuid_t out, int *num, uint32_t cont_offset)
+ static int uuid_generate_time_generic(uuid_t out) {
+ #ifdef HAVE_TLS
+ 	/* thread local cache for uuidd based requests */
+-	const int			cs_min = (1<<6);
+-	const int			cs_max = (1<<18);
+-	const int			cs_factor = 2;
+ 	THREAD_LOCAL int		num = 0;
+-	THREAD_LOCAL int		cache_size = cs_min;
++	THREAD_LOCAL int		cache_size = CS_MIN;
+ 	THREAD_LOCAL int		last_used = 0;
+ 	THREAD_LOCAL struct uuid	uu;
+ 	THREAD_LOCAL time_t		last_time = 0;
+@@ -552,10 +553,10 @@ static int uuid_generate_time_generic(uuid_t out) {
+ 		 * Start with a small cache size to cover short running applications
+ 		 * and adjust the cache size over the runntime.
+ 		 */
+-		if ((last_used == cache_size) && (cache_size < cs_max))
+-			cache_size *= cs_factor;
+-		else if ((last_used < (cache_size / cs_factor)) && (cache_size > cs_min))
+-			cache_size /= cs_factor;
++		if ((last_used == cache_size) && (cache_size < CS_MAX))
++			cache_size *= CS_FACTOR;
++		else if ((last_used < (cache_size / CS_FACTOR)) && (cache_size > CS_MIN))
++			cache_size /= CS_FACTOR;
+ 
+ 		num = cache_size;
+ 
+@@ -568,7 +569,7 @@ static int uuid_generate_time_generic(uuid_t out) {
+ 		}
+ 		/* request to daemon failed, reset cache */
+ 		num = 0;
+-		cache_size = cs_min;
++		cache_size = CS_MIN;
+ 	}
+ 	if (num > 0) { /* serve uuid from cache */
+ 		uu.time_low++;
+-- 
+2.43.0
+
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-02-11 22:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-11 22:23 [Buildroot] [git commit] package/util-linux: fix build with -O0 Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.