From 07092abe4cff10c1aec6dfed9d30693fd12c9c4b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 11 Nov 2026 11:45:05 -0800 Subject: [PATCH] apitrace: Do not export _init and _fini from wrappers The wrapper version scripts name _init and _fini, which riscv64 glibc does not define, so linking egltrace.so with lld fails: ld.lld: error: version script assignment of 'global' to symbol '_init' failed: symbol not defined Drop them from the version scripts; the loader uses DT_INIT/DT_FINI and nothing looks them up by name. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- ...appers-Do-not-export-_init-and-_fini.patch | 46 +++++++++++++++++++ .../apitrace/apitrace_14.0.bb | 1 + 2 files changed, 47 insertions(+) create mode 100644 meta-oe/recipes-devtools/apitrace/apitrace/0002-wrappers-Do-not-export-_init-and-_fini.patch diff --git a/meta-oe/recipes-devtools/apitrace/apitrace/0002-wrappers-Do-not-export-_init-and-_fini.patch b/meta-oe/recipes-devtools/apitrace/apitrace/0002-wrappers-Do-not-export-_init-and-_fini.patch new file mode 100644 index 0000000000..1d1d812974 --- /dev/null +++ b/meta-oe/recipes-devtools/apitrace/apitrace/0002-wrappers-Do-not-export-_init-and-_fini.patch @@ -0,0 +1,46 @@ +From 4661c86d9a64bf4057bc80fc9e6a4aed83754b5e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 11 Nov 2026 11:41:05 -0800 +Subject: [PATCH] wrappers: Do not export _init and _fini + +_init and _fini come from crti.o on some architectures. The dynamic loader +finds them through DT_INIT/DT_FINI, not by symbol lookup, so there is no +reason to export them from the wrappers. + +On architectures without crti.o _init/_fini, e.g. riscv64, they are not +defined at all, and lld, which defaults to --no-undefined-version, fails: + + ld.lld: error: version script assignment of 'global' to symbol '_init' failed: symbol not defined + ld.lld: error: version script assignment of 'global' to symbol '_fini' failed: symbol not defined + +Upstream-Status: Submitted [https://github.com/apitrace/apitrace/pull/1004] +Signed-off-by: Khem Raj +--- + wrappers/egltrace.version | 2 -- + wrappers/glxtrace.version | 2 -- + 2 files changed, 4 deletions(-) + +diff --git a/wrappers/egltrace.version b/wrappers/egltrace.version +index 0e7e62b..f4154be 100644 +--- a/wrappers/egltrace.version ++++ b/wrappers/egltrace.version +@@ -1,7 +1,5 @@ + { + global: +- _init; +- _fini; + egl[A-Z]*; + gl[A-Z]*; + dlopen; +diff --git a/wrappers/glxtrace.version b/wrappers/glxtrace.version +index 0546a05..68cd8d1 100644 +--- a/wrappers/glxtrace.version ++++ b/wrappers/glxtrace.version +@@ -1,7 +1,5 @@ + { + global: +- _init; +- _fini; + gl[A-Z]*; + dlopen; + _exit; diff --git a/meta-oe/recipes-devtools/apitrace/apitrace_14.0.bb b/meta-oe/recipes-devtools/apitrace/apitrace_14.0.bb index cb5ee92e04..729c8be91d 100644 --- a/meta-oe/recipes-devtools/apitrace/apitrace_14.0.bb +++ b/meta-oe/recipes-devtools/apitrace/apitrace_14.0.bb @@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50 \ SRCREV = "18cfd388ac47a9e00978b34d6c20341f3e2cdb56" SRC_URI = "gitsm://github.com/${BPN}/${BPN}.git;branch=master;protocol=https;tag=${PV} \ file://0001-zstd-disable-the-x86-64-BMI2-assembly-fast-loops.patch \ + file://0002-wrappers-Do-not-export-_init-and-_fini.patch \ " DEPENDS += "zlib libpng python3-native"