Files
poky/meta/recipes-devtools/debugedit/files/0001-Add-option-to-allow-disabling-inlined-xxhash.patch
Chen Qi 116070ab08 debugedit: fix build failure when enabling DEBUG_BUILD
When DEBUG_BUILD is enabled, we use "-Og" gcc options. In such
case, the xxhash functions are considered not inline, yet debugedit.c
defined XXH_INLINE_ALL to force inline, thus causing build failure.

Backport a patch which add "--disable-inlined-xxhash" option and
make debugedit use that option when DEBUG_BUILD is enabled.

The 0003-Makefile.am-do-not-update-manual.patch is moved from musl
specific patch to SRC_URI, because we now have a patch to modify debugedit.c
and this will cause manual to be generated again. This is unnecessary and
will report help2man missing.

(From OE-Core rev: 7aaf60854c6bc9c075399de7450fe63b21b2883b)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-02-25 12:17:22 +00:00

82 lines
2.6 KiB
Diff

From 820498e881401a6f4b1715dc6831da965f6e1d69 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Tue, 18 Feb 2025 18:50:46 -0800
Subject: [PATCH] Add option to allow disabling inlined xxhash
xxhash cannot always inline. For example, when using gcc14 and
'-Og' option, xxhash cannot inline. See links below:
https://github.com/Cyan4973/xxHash/commit/574aabad87b2ab9440403e92e1075ef48554eb87
https://github.com/Cyan4973/xxHash/issues/943#issuecomment-2563205130
To allow users successfully build debugedit with gcc14 and "-Og" option,
add an option to allow disabling inlined xxhash.
This patch refers to a similar patch for libabigail:
https://sourceware.org/cgit/libabigail/commit/?id=50497911e2590c21270e0763d277457cf7752c3f
Note that the default remains using inlined xxhash.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Upstream-Status: Backport [https://sourceware.org/cgit/debugedit/commit/?id=820498e881401a6f4b1715dc6831da965f6e1d69]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
Makefile.am | 4 ++--
configure.ac | 11 +++++++++++
tools/debugedit.c | 1 -
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index c590edf..35fd947 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -42,8 +42,8 @@ find-debuginfo: $(top_srcdir)/scripts/find-debuginfo.in Makefile
debugedit_SOURCES = tools/debugedit.c \
tools/hashtab.c
-debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ $(AM_CFLAGS)
-debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@
+debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ @XXHASH_CFLAGS@ $(AM_CFLAGS)
+debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@ @XXHASH_LIBS@
sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
sepdebugcrcfix_CFLAGS = @LIBELF_CFLAGS@ $(AM_CFLAGS)
diff --git a/configure.ac b/configure.ac
index a5a6e28..32dd27d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -181,6 +181,17 @@ else
fi
AC_SUBST([READELF_VERSION_OK])
+ENABLE_INLINED_XXHASH=yes
+AC_ARG_ENABLE(inlined-xxhash,
+ AS_HELP_STRING([--disable-inlined-xxhash], [disable the inlined-only version of xxhash library]),
+ ENABLE_INLINED_XXHASH=$enableval,
+ ENABLE_INLINED_XXHASH=yes)
+
+if test x$ENABLE_INLINED_XXHASH = xyes; then
+ XXHASH_CFLAGS="$XXHASH_CFLAGS -DXXH_INLINE_ALL"
+ XXHASH_LIBS=""
+fi
+
# And generate the output files.
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/tools/debugedit.c b/tools/debugedit.c
index beefd65..43f9cee 100644
--- a/tools/debugedit.c
+++ b/tools/debugedit.c
@@ -82,7 +82,6 @@ typedef struct Ebl_Strtab Strtab;
#include "tools/hashtab.h"
-#define XXH_INLINE_ALL
#include "xxhash.h"
#define DW_TAG_partial_unit 0x3c
--
2.25.1