diff options
author | Khem Raj <raj.khem@gmail.com> | 2025-07-16 15:40:29 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2025-07-16 15:42:59 -0700 |
commit | 459a98c170be844ae2b4e545afeabb2ae7480f5c (patch) | |
tree | 7bebaf0f6d1f87be11d22c041224e83662d5fb44 | |
parent | c7e2e1e3ecbe6c3aa56ae55cad9fd49690b2c438 (diff) | |
download | meta-openembedded-459a98c170be844ae2b4e545afeabb2ae7480f5c.tar.gz |
uftrace: Fix build failure on x86
Do not inherit autotools bbclass, the configure script is hand-written
and not a autoconf generated one.
Backport a fix to build on 32bit x86
Fixes
| i686-yoe-linux-ld.lld: error: undefined symbol: uftrace_arch_ops
| >>> referenced by symbol.c:586 (utils/symbol.c:586)
| >>> /mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/uftrace/0.18/sources/uftrace-0.18/libmcount/symbol.op:(load_elf_dynsymtab)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | meta-oe/recipes-devtools/uftrace/uftrace/0001-build-Fix-a-build-error-on-i386.patch | 26 | ||||
-rw-r--r-- | meta-oe/recipes-devtools/uftrace/uftrace_0.18.bb | 23 |
2 files changed, 43 insertions, 6 deletions
diff --git a/meta-oe/recipes-devtools/uftrace/uftrace/0001-build-Fix-a-build-error-on-i386.patch b/meta-oe/recipes-devtools/uftrace/uftrace/0001-build-Fix-a-build-error-on-i386.patch new file mode 100644 index 0000000000..c6bc8473b9 --- /dev/null +++ b/meta-oe/recipes-devtools/uftrace/uftrace/0001-build-Fix-a-build-error-on-i386.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | From ea53a7f42c1c5da688ef79e53731dcc3810a1256 Mon Sep 17 00:00:00 2001 | ||
2 | From: Namhyung Kim <namhyung@gmail.com> | ||
3 | Date: Sun, 6 Jul 2025 15:13:30 -0700 | ||
4 | Subject: [PATCH] build: Fix a build error on i386 | ||
5 | |||
6 | It happened to have common.S as well as common.c, so it picked the .S | ||
7 | before .c for the uftrace-arch.a. And it caused undefined symbols. | ||
8 | |||
9 | /usr/bin/ld: libmcount/symbol.op: in function `load_dynsymtab': | ||
10 | utils/symbol.c:722:(.text+0x2b19): undefined reference to `uftrace_arch_ops' | ||
11 | libmcount/symbol.op: in function `load_elf_dynsymtab': | ||
12 | utils/symbol.c:586:(.text+0x184a): undefined reference to `uftrace_arch_ops' | ||
13 | |||
14 | Fixed: #2010 | ||
15 | |||
16 | Upstream-Status: Backport [https://github.com/namhyung/uftrace/commit/ea53a7f42c1c5da688ef79e53731dcc3810a1256] | ||
17 | Signed-off-by: Namhyung Kim <namhyung@gmail.com> | ||
18 | --- | ||
19 | arch/i386/{common.S => thunk.S} | 0 | ||
20 | 1 file changed, 0 insertions(+), 0 deletions(-) | ||
21 | rename arch/i386/{common.S => thunk.S} (100%) | ||
22 | |||
23 | diff --git a/arch/i386/common.S b/arch/i386/thunk.S | ||
24 | similarity index 100% | ||
25 | rename from arch/i386/common.S | ||
26 | rename to arch/i386/thunk.S | ||
diff --git a/meta-oe/recipes-devtools/uftrace/uftrace_0.18.bb b/meta-oe/recipes-devtools/uftrace/uftrace_0.18.bb index f82dc17071..7ba2dcadc9 100644 --- a/meta-oe/recipes-devtools/uftrace/uftrace_0.18.bb +++ b/meta-oe/recipes-devtools/uftrace/uftrace_0.18.bb | |||
@@ -8,11 +8,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" | |||
8 | DEPENDS = "elfutils" | 8 | DEPENDS = "elfutils" |
9 | DEPENDS:append:libc-musl = " argp-standalone" | 9 | DEPENDS:append:libc-musl = " argp-standalone" |
10 | 10 | ||
11 | inherit autotools | ||
12 | |||
13 | SRCREV = "8ccd4f627569b0af122c8d1df98dc6813ab97a40" | 11 | SRCREV = "8ccd4f627569b0af122c8d1df98dc6813ab97a40" |
14 | SRC_URI = "git://github.com/namhyung/${BPN};branch=master;protocol=https;tag=v${PV} \ | 12 | SRC_URI = "git://github.com/namhyung/${BPN};branch=master;protocol=https;tag=v${PV} \ |
15 | file://0001-include-libgen.h-for-basename.patch" | 13 | file://0001-include-libgen.h-for-basename.patch \ |
14 | file://0001-build-Fix-a-build-error-on-i386.patch \ | ||
15 | " | ||
16 | 16 | ||
17 | LDFLAGS:append:libc-musl = " -largp" | 17 | LDFLAGS:append:libc-musl = " -largp" |
18 | 18 | ||
@@ -26,11 +26,22 @@ def set_target_arch(d): | |||
26 | else: | 26 | else: |
27 | return arch | 27 | return arch |
28 | 28 | ||
29 | EXTRA_UFTRACE_OECONF = "ARCH=${@set_target_arch(d)} \ | ||
30 | with_elfutils=/use/libelf/from/sysroot" | ||
31 | 29 | ||
32 | do_configure() { | 30 | do_configure() { |
33 | ${S}/configure ${EXTRA_UFTRACE_OECONF} | 31 | ${S}/configure --prefix=${prefix} \ |
32 | --objdir=${B} \ | ||
33 | --cflags='${CFLAGS}' \ | ||
34 | --ldflags='${LDFLAGS}' \ | ||
35 | --arch='${@set_target_arch(d)}' \ | ||
36 | --with-elfutils=${STAGING_EXECPREFIXDIR} | ||
37 | } | ||
38 | |||
39 | do_compile() { | ||
40 | oe_runmake V=1 | ||
41 | } | ||
42 | |||
43 | do_install() { | ||
44 | oe_runmake DESTDIR=${D} | ||
34 | } | 45 | } |
35 | 46 | ||
36 | FILES_SOLIBSDEV = "" | 47 | FILES_SOLIBSDEV = "" |