diff mbox series

[meta-oe] uftrace: Fix build failure on x86

Message ID 20250716224247.2288484-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe] uftrace: Fix build failure on x86 | expand

Commit Message

Khem Raj July 16, 2025, 10:42 p.m. UTC
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>
---
 ...0001-build-Fix-a-build-error-on-i386.patch | 26 +++++++++++++++++++
 .../recipes-devtools/uftrace/uftrace_0.18.bb  | 23 +++++++++++-----
 2 files changed, 43 insertions(+), 6 deletions(-)
 create mode 100644 meta-oe/recipes-devtools/uftrace/uftrace/0001-build-Fix-a-build-error-on-i386.patch
diff mbox series

Patch

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 @@ 
+From ea53a7f42c1c5da688ef79e53731dcc3810a1256 Mon Sep 17 00:00:00 2001
+From: Namhyung Kim <namhyung@gmail.com>
+Date: Sun, 6 Jul 2025 15:13:30 -0700
+Subject: [PATCH] build: Fix a build error on i386
+
+It happened to have common.S as well as common.c, so it picked the .S
+before .c for the uftrace-arch.a.  And it caused undefined symbols.
+
+  /usr/bin/ld: libmcount/symbol.op: in function `load_dynsymtab':
+  utils/symbol.c:722:(.text+0x2b19): undefined reference to `uftrace_arch_ops'
+  libmcount/symbol.op: in function `load_elf_dynsymtab':
+  utils/symbol.c:586:(.text+0x184a): undefined reference to `uftrace_arch_ops'
+
+Fixed: #2010
+
+Upstream-Status: Backport [https://github.com/namhyung/uftrace/commit/ea53a7f42c1c5da688ef79e53731dcc3810a1256]
+Signed-off-by: Namhyung Kim <namhyung@gmail.com>
+---
+ arch/i386/{common.S => thunk.S} | 0
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+ rename arch/i386/{common.S => thunk.S} (100%)
+
+diff --git a/arch/i386/common.S b/arch/i386/thunk.S
+similarity index 100%
+rename from arch/i386/common.S
+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"
 DEPENDS = "elfutils"
 DEPENDS:append:libc-musl = " argp-standalone"
 
-inherit autotools
-
 SRCREV = "8ccd4f627569b0af122c8d1df98dc6813ab97a40"
 SRC_URI = "git://github.com/namhyung/${BPN};branch=master;protocol=https;tag=v${PV} \
-           file://0001-include-libgen.h-for-basename.patch"
+           file://0001-include-libgen.h-for-basename.patch \
+           file://0001-build-Fix-a-build-error-on-i386.patch \
+          "
 
 LDFLAGS:append:libc-musl = " -largp"
 
@@ -26,11 +26,22 @@  def set_target_arch(d):
     else:
         return arch
 
-EXTRA_UFTRACE_OECONF = "ARCH=${@set_target_arch(d)} \
-                        with_elfutils=/use/libelf/from/sysroot"
 
 do_configure() {
-    ${S}/configure ${EXTRA_UFTRACE_OECONF}
+    ${S}/configure --prefix=${prefix} \
+    --objdir=${B} \
+    --cflags='${CFLAGS}' \
+    --ldflags='${LDFLAGS}' \
+    --arch='${@set_target_arch(d)}' \
+    --with-elfutils=${STAGING_EXECPREFIXDIR}
+}
+
+do_compile() {
+    oe_runmake V=1
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D}
 }
 
 FILES_SOLIBSDEV = ""