From: Martin Jansa Date: Thu, 21 Aug 2025 10:58:40 +0000 (+0200) Subject: git: fix build with gcc-15 on host X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a534cf958f9c7d05af795def43ee5ba09fb34ca2;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git git: fix build with gcc-15 on host Signed-off-by: Martin Jansa Signed-off-by: Steve Sakoman --- 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 index 0000000000..b3b490064f --- /dev/null +++ b/meta/recipes-devtools/git/git/0001-index-pack-rename-struct-thread_local.patch @@ -0,0 +1,67 @@ +From e8b3bcf49120309b207b7afc25c4aa81b866ac45 Mon Sep 17 00:00:00 2001 +From: "brian m. carlson" +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 +Signed-off-by: Junio C Hamano + +Upstream-Status: Backport [v2.48.0 e8b3bcf49120309b207b7afc25c4aa81b866ac45] +Signed-off-by: Martin Jansa +--- + 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 ¬hread_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 index 0000000000..a44fe91dd3 --- /dev/null +++ b/meta/recipes-devtools/git/git/0001-reflog-rename-unreachable.patch @@ -0,0 +1,40 @@ +From 639cd8db63b07c958062bde4d3823dadbf469b0b Mon Sep 17 00:00:00 2001 +From: "brian m. carlson" +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 +Signed-off-by: Junio C Hamano + +Upstream-Status: Backport [v2.48.0 639cd8db63b07c958062bde4d3823dadbf469b0b] +Signed-off-by: Martin Jansa +--- + 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; + } diff --git a/meta/recipes-devtools/git/git_2.44.4.bb b/meta/recipes-devtools/git/git_2.44.4.bb index 66936417e1..3c94667382 100644 --- a/meta/recipes-devtools/git/git_2.44.4.bb +++ b/meta/recipes-devtools/git/git_2.44.4.bb @@ -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 = " \