summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2025-02-20 05:24:19 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-02-25 12:17:22 +0000
commit116070ab08021e2d7d3674d69029992ca103f0fd (patch)
treee58f76e46203d9405723fcfb9b0965fe8924e711
parentae8fe5b896a1f6bd0740d1fa6638b9d9377a8d28 (diff)
downloadpoky-116070ab08021e2d7d3674d69029992ca103f0fd.tar.gz
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>
-rw-r--r--meta/recipes-devtools/debugedit/debugedit_5.1.bb6
-rw-r--r--meta/recipes-devtools/debugedit/files/0001-Add-option-to-allow-disabling-inlined-xxhash.patch81
2 files changed, 84 insertions, 3 deletions
diff --git a/meta/recipes-devtools/debugedit/debugedit_5.1.bb b/meta/recipes-devtools/debugedit/debugedit_5.1.bb
index 00c40473c4..384909a36f 100644
--- a/meta/recipes-devtools/debugedit/debugedit_5.1.bb
+++ b/meta/recipes-devtools/debugedit/debugedit_5.1.bb
@@ -10,9 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
10 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504" 10 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
11 11
12SRC_URI = "https://sourceware.org/ftp/debugedit/${PV}/debugedit-${PV}.tar.xz \ 12SRC_URI = "https://sourceware.org/ftp/debugedit/${PV}/debugedit-${PV}.tar.xz \
13 " 13 file://0001-Add-option-to-allow-disabling-inlined-xxhash.patch \
14
15SRC_URI:append:libc-musl = "\
16 file://0003-Makefile.am-do-not-update-manual.patch \ 14 file://0003-Makefile.am-do-not-update-manual.patch \
17 " 15 "
18 16
@@ -25,6 +23,8 @@ inherit pkgconfig autotools multilib_script
25 23
26RDEPENDS:${PN} += "bash elfutils-binutils" 24RDEPENDS:${PN} += "bash elfutils-binutils"
27 25
26EXTRA_OECONF = "${@oe.utils.vartrue('DEBUG_BUILD', '--disable-inlined-xxhash', '', d)}"
27
28BBCLASSEXTEND = "native nativesdk" 28BBCLASSEXTEND = "native nativesdk"
29 29
30MULTILIB_SCRIPTS = "${PN}:${bindir}/find-debuginfo" 30MULTILIB_SCRIPTS = "${PN}:${bindir}/find-debuginfo"
diff --git a/meta/recipes-devtools/debugedit/files/0001-Add-option-to-allow-disabling-inlined-xxhash.patch b/meta/recipes-devtools/debugedit/files/0001-Add-option-to-allow-disabling-inlined-xxhash.patch
new file mode 100644
index 0000000000..3aac43628b
--- /dev/null
+++ b/meta/recipes-devtools/debugedit/files/0001-Add-option-to-allow-disabling-inlined-xxhash.patch
@@ -0,0 +1,81 @@
1From 820498e881401a6f4b1715dc6831da965f6e1d69 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 18 Feb 2025 18:50:46 -0800
4Subject: [PATCH] Add option to allow disabling inlined xxhash
5
6xxhash cannot always inline. For example, when using gcc14 and
7'-Og' option, xxhash cannot inline. See links below:
8https://github.com/Cyan4973/xxHash/commit/574aabad87b2ab9440403e92e1075ef48554eb87
9https://github.com/Cyan4973/xxHash/issues/943#issuecomment-2563205130
10
11To allow users successfully build debugedit with gcc14 and "-Og" option,
12add an option to allow disabling inlined xxhash.
13
14This patch refers to a similar patch for libabigail:
15https://sourceware.org/cgit/libabigail/commit/?id=50497911e2590c21270e0763d277457cf7752c3f
16
17Note that the default remains using inlined xxhash.
18
19Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
20
21Upstream-Status: Backport [https://sourceware.org/cgit/debugedit/commit/?id=820498e881401a6f4b1715dc6831da965f6e1d69]
22
23Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
24---
25 Makefile.am | 4 ++--
26 configure.ac | 11 +++++++++++
27 tools/debugedit.c | 1 -
28 3 files changed, 13 insertions(+), 3 deletions(-)
29
30diff --git a/Makefile.am b/Makefile.am
31index c590edf..35fd947 100644
32--- a/Makefile.am
33+++ b/Makefile.am
34@@ -42,8 +42,8 @@ find-debuginfo: $(top_srcdir)/scripts/find-debuginfo.in Makefile
35
36 debugedit_SOURCES = tools/debugedit.c \
37 tools/hashtab.c
38-debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ $(AM_CFLAGS)
39-debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@
40+debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ @XXHASH_CFLAGS@ $(AM_CFLAGS)
41+debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@ @XXHASH_LIBS@
42
43 sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
44 sepdebugcrcfix_CFLAGS = @LIBELF_CFLAGS@ $(AM_CFLAGS)
45diff --git a/configure.ac b/configure.ac
46index a5a6e28..32dd27d 100644
47--- a/configure.ac
48+++ b/configure.ac
49@@ -181,6 +181,17 @@ else
50 fi
51 AC_SUBST([READELF_VERSION_OK])
52
53+ENABLE_INLINED_XXHASH=yes
54+AC_ARG_ENABLE(inlined-xxhash,
55+ AS_HELP_STRING([--disable-inlined-xxhash], [disable the inlined-only version of xxhash library]),
56+ ENABLE_INLINED_XXHASH=$enableval,
57+ ENABLE_INLINED_XXHASH=yes)
58+
59+if test x$ENABLE_INLINED_XXHASH = xyes; then
60+ XXHASH_CFLAGS="$XXHASH_CFLAGS -DXXH_INLINE_ALL"
61+ XXHASH_LIBS=""
62+fi
63+
64 # And generate the output files.
65 AC_CONFIG_FILES([Makefile])
66 AC_OUTPUT
67diff --git a/tools/debugedit.c b/tools/debugedit.c
68index beefd65..43f9cee 100644
69--- a/tools/debugedit.c
70+++ b/tools/debugedit.c
71@@ -82,7 +82,6 @@ typedef struct Ebl_Strtab Strtab;
72
73 #include "tools/hashtab.h"
74
75-#define XXH_INLINE_ALL
76 #include "xxhash.h"
77
78 #define DW_TAG_partial_unit 0x3c
79--
802.25.1
81