]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
git: fix build with gcc-15 on host
authorMartin Jansa <martin.jansa@gmail.com>
Thu, 21 Aug 2025 10:58:40 +0000 (12:58 +0200)
committerSteve Sakoman <steve@sakoman.com>
Tue, 26 Aug 2025 20:10:34 +0000 (13:10 -0700)
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/recipes-devtools/git/git/0001-index-pack-rename-struct-thread_local.patch [new file with mode: 0644]
meta/recipes-devtools/git/git/0001-reflog-rename-unreachable.patch [new file with mode: 0644]
meta/recipes-devtools/git/git_2.44.4.bb

diff --git a/meta/recipes-devtools/git/git/0001-index-pack-rename-struct-thread_local.patch b/meta/recipes-devtools/git/git/0001-index-pack-rename-struct-thread_local.patch
new file mode 100644 (file)
index 0000000..b3b4900
--- /dev/null
@@ -0,0 +1,67 @@
+From e8b3bcf49120309b207b7afc25c4aa81b866ac45 Mon Sep 17 00:00:00 2001
+From: "brian m. carlson" <sandals@crustytoothpaste.net>
+Date: Sun, 17 Nov 2024 01:31:48 +0000
+Subject: [PATCH] index-pack: rename struct thread_local
+
+"thread_local" is a keyword in C23.  To make sure that our code compiles
+on a wide variety of C versions, rename struct thread_local to "struct
+thread_local_data" to avoid a conflict.
+
+Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
+Signed-off-by: Junio C Hamano <gitster@pobox.com>
+
+Upstream-Status: Backport [v2.48.0 e8b3bcf49120309b207b7afc25c4aa81b866ac45]                                                                                                                                                                  
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ builtin/index-pack.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/builtin/index-pack.c b/builtin/index-pack.c
+index e228c56ff2..74675dbd6c 100644
+--- a/builtin/index-pack.c
++++ b/builtin/index-pack.c
+@@ -94,7 +94,7 @@ static LIST_HEAD(done_head);
+ static size_t base_cache_used;
+ static size_t base_cache_limit;
+-struct thread_local {
++struct thread_local_data {
+       pthread_t thread;
+       int pack_fd;
+ };
+@@ -117,7 +117,7 @@ static struct object_entry *objects;
+ static struct object_stat *obj_stat;
+ static struct ofs_delta_entry *ofs_deltas;
+ static struct ref_delta_entry *ref_deltas;
+-static struct thread_local nothread_data;
++static struct thread_local_data nothread_data;
+ static int nr_objects;
+ static int nr_ofs_deltas;
+ static int nr_ref_deltas;
+@@ -148,7 +148,7 @@ static uint32_t input_crc32;
+ static int input_fd, output_fd;
+ static const char *curr_pack;
+-static struct thread_local *thread_data;
++static struct thread_local_data *thread_data;
+ static int nr_dispatched;
+ static int threads_active;
+@@ -390,7 +390,7 @@ static NORETURN void bad_object(off_t offset, const char *format, ...)
+           (uintmax_t)offset, buf);
+ }
+-static inline struct thread_local *get_thread_data(void)
++static inline struct thread_local_data *get_thread_data(void)
+ {
+       if (HAVE_THREADS) {
+               if (threads_active)
+@@ -401,7 +401,7 @@ static inline struct thread_local *get_thread_data(void)
+       return &nothread_data;
+ }
+-static void set_thread_data(struct thread_local *data)
++static void set_thread_data(struct thread_local_data *data)
+ {
+       if (threads_active)
+               pthread_setspecific(key, data);
diff --git a/meta/recipes-devtools/git/git/0001-reflog-rename-unreachable.patch b/meta/recipes-devtools/git/git/0001-reflog-rename-unreachable.patch
new file mode 100644 (file)
index 0000000..a44fe91
--- /dev/null
@@ -0,0 +1,40 @@
+From 639cd8db63b07c958062bde4d3823dadbf469b0b Mon Sep 17 00:00:00 2001
+From: "brian m. carlson" <sandals@crustytoothpaste.net>
+Date: Sun, 17 Nov 2024 01:31:49 +0000
+Subject: [PATCH] reflog: rename unreachable
+
+In C23, "unreachable" is a macro that invokes undefined behavior if it
+is invoked.  To make sure that our code compiles on a variety of C
+versions, rename unreachable to "is_unreachable".
+
+Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
+Signed-off-by: Junio C Hamano <gitster@pobox.com>
+
+Upstream-Status: Backport [v2.48.0 639cd8db63b07c958062bde4d3823dadbf469b0b]
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ reflog.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/reflog.c b/reflog.c
+index 875ac1aa66..aeab78c9b7 100644
+--- a/reflog.c
++++ b/reflog.c
+@@ -210,7 +210,7 @@ static void mark_reachable(struct expire_reflog_policy_cb *cb)
+       cb->mark_list = leftover;
+ }
+-static int unreachable(struct expire_reflog_policy_cb *cb, struct commit *commit, struct object_id *oid)
++static int is_unreachable(struct expire_reflog_policy_cb *cb, struct commit *commit, struct object_id *oid)
+ {
+       /*
+        * We may or may not have the commit yet - if not, look it
+@@ -265,7 +265,7 @@ int should_expire_reflog_ent(struct object_id *ooid, struct object_id *noid,
+                       return 1;
+               case UE_NORMAL:
+               case UE_HEAD:
+-                      if (unreachable(cb, old_commit, ooid) || unreachable(cb, new_commit, noid))
++                      if (is_unreachable(cb, old_commit, ooid) || is_unreachable(cb, new_commit, noid))
+                               return 1;
+                       break;
+               }
index 66936417e126831661e7533cb0f8c43d545b3329..3c94667382489f4da7d5a4e4fd6663c86cf9703a 100644 (file)
@@ -11,6 +11,8 @@ PROVIDES:append:class-native = " git-replacement-native"
 SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \
            file://fixsort.patch \
            file://0001-config.mak.uname-do-not-force-RHEL-7-specific-build-.patch \
+           file://0001-reflog-rename-unreachable.patch \
+           file://0001-index-pack-rename-struct-thread_local.patch \
            "
 
 SRC_URI:append:class-nativesdk = " \