Bump the FEX srcrev to the FEX-2607 tag and resync the vendored externals to that release's submodule pointers: drop jemalloc (non-glibc) and robin-map, which upstream replaced with rpmalloc and unordered_dense.
Additional build fixes required by this release: - Disable FEX's internal ccache (-DENABLE_CCACHE=OFF); it collides with OE's ccache class and double-wraps the compiler. - Build fmt from the bundled External/fmt submodule instead of the system copy. FEX-2607 formats std::byte spans via fmt::join, which its pinned fmt 12.1.0 supports but oe-core's newer fmt 12.2.0 rejects. - Stop FEX from stripping binaries at link time so OE can split out debug information and the already-stripped QA check passes. Built for qemuarm64. Signed-off-by: Khem Raj <[email protected]> --- ...C-Do-not-strip-binaries-at-link-time.patch | 28 +++++++++++++++++++ .../fex/{fex_2601.bb => fex_2607.bb} | 18 ++++++++---- 2 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 meta-oe/recipes-devtools/fex/fex/0001-LinkerGC-Do-not-strip-binaries-at-link-time.patch rename meta-oe/recipes-devtools/fex/{fex_2601.bb => fex_2607.bb} (73%) diff --git a/meta-oe/recipes-devtools/fex/fex/0001-LinkerGC-Do-not-strip-binaries-at-link-time.patch b/meta-oe/recipes-devtools/fex/fex/0001-LinkerGC-Do-not-strip-binaries-at-link-time.patch new file mode 100644 index 0000000000..6c8faefdb9 --- /dev/null +++ b/meta-oe/recipes-devtools/fex/fex/0001-LinkerGC-Do-not-strip-binaries-at-link-time.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Thu, 9 Jul 2026 00:00:00 +0000 +Subject: [PATCH] LinkerGC: Do not strip binaries at link time + +FEX links Release binaries with --strip-all, which discards the symbol +table before OE gets a chance to split out debug information. This makes +the build fail the OE already-stripped QA check and prevents shipping +-dbg packages. Let OE handle stripping instead. + +Upstream-Status: Inappropriate [OE handles stripping and debug packaging] +Signed-off-by: Khem Raj <[email protected]> +--- + Data/CMake/LinkerGC.cmake | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Data/CMake/LinkerGC.cmake b/Data/CMake/LinkerGC.cmake +index 1111111..2222222 100644 +--- a/Data/CMake/LinkerGC.cmake ++++ b/Data/CMake/LinkerGC.cmake +@@ -9,7 +9,6 @@ macro(LinkerGC target) + if (CMAKE_BUILD_TYPE MATCHES "RELEASE") + target_link_options(${target} PRIVATE + "LINKER:--gc-sections" +- "LINKER:--strip-all" + "LINKER:--as-needed") + endif() + endmacro() diff --git a/meta-oe/recipes-devtools/fex/fex_2601.bb b/meta-oe/recipes-devtools/fex/fex_2607.bb similarity index 73% rename from meta-oe/recipes-devtools/fex/fex_2601.bb rename to meta-oe/recipes-devtools/fex/fex_2607.bb index 7d7824d08a..4737c9fd0e 100644 --- a/meta-oe/recipes-devtools/fex/fex_2601.bb +++ b/meta-oe/recipes-devtools/fex/fex_2607.bb @@ -13,25 +13,30 @@ SRC_URI = " \ git://github.com/Sonicadvance1/cpp-optparse.git;name=cpp-optparse;subdir=${S}/Source/Common/cpp-optparse;protocol=https;nobranch=1 \ git://github.com/FEX-Emu/drm-headers.git;name=fex-drm;subdir=${S}/External/drm-headers;protocol=https;nobranch=1 \ git://github.com/Cyan4973/xxHash.git;name=xxhash;subdir=${S}/External/xxhash;protocol=https;nobranch=1 \ - git://github.com/FEX-Emu/jemalloc.git;name=jemalloc;subdir=${S}/External/jemalloc;protocol=https;nobranch=1 \ + git://github.com/fmtlib/fmt.git;name=fmt;subdir=${S}/External/fmt;protocol=https;nobranch=1 \ git://github.com/FEX-Emu/jemalloc.git;name=jemalloc-glibc;subdir=${S}/External/jemalloc_glibc;protocol=https;nobranch=1 \ git://github.com/ericniebler/range-v3.git;name=range-v3;subdir=${S}/External/range-v3;protocol=https;nobranch=1 \ - git://github.com/FEX-Emu/robin-map.git;name=robin-map;subdir=${S}/External/robin-map;protocol=https;nobranch=1 \ + git://github.com/FEX-Emu/rpmalloc.git;name=rpmalloc;subdir=${S}/External/rpmalloc;protocol=https;nobranch=1 \ + git://github.com/martinus/unordered_dense.git;name=unordered-dense;subdir=${S}/External/unordered_dense;protocol=https;nobranch=1 \ + file://0001-LinkerGC-Do-not-strip-binaries-at-link-time.patch \ " SRCREV_FORMAT = "fex" -SRCREV_fex = "1188c90c10569ca800d7a99c11e59cfeab5e2cc9" +SRCREV_fex = "1cc4b93e7a71c883ec021b71359f136394dc1f3c" SRCREV_cpp-optparse = "9f94388a339fcbb0bc95c17768eb786c85988f6e" SRCREV_fex-drm = "3e49836995c1dcb3df709440ad2f270b569c6a5f" SRCREV_xxhash = "e626a72bc2321cd320e953a0ccf1584cad60f363" -SRCREV_jemalloc = "97d986993dc735a2022856e7e9fdfa1180e8527a" +SRCREV_fmt = "407c905e45ad75fc29bf0f9bb7c5c2fd3475976f" SRCREV_jemalloc-glibc = "8436195ad5e1bc347d9b39743af3d29abee59f06" -SRCREV_robin-map = "d5683d9f1891e5b04e3e3b2192b5349dc8d814ea" +SRCREV_rpmalloc = "1d85c246cd827ead6865f4f880d4fef53f2b1864" +SRCREV_unordered-dense = "3234af2c03549bc85656bfd3a86993bf1cd8aef1" SRCREV_range-v3 = "ca1388fb9da8e69314dda222dc7b139ca84e092f" +# fmt is built from the bundled External/fmt submodule rather than the system +# copy: FEX-2607 formats std::byte spans via fmt::join, which its pinned fmt +# 12.1.0 supports but oe-core's newer fmt (12.2.0) rejects. DEPENDS = " \ catch2 \ - fmt \ libdrm \ nasm-native \ vulkan-headers \ @@ -42,6 +47,7 @@ PACKAGECONFIG[qt] = "-DBUILD_FEXCONFIG=ON,-DBUILD_FEXCONFIG=OFF,qtbase qttools-n EXTRA_OECMAKE += " \ -DBUILD_TESTING=OFF \ + -DENABLE_CCACHE=OFF \ -DENABLE_VIXL_DISASSEMBLER=OFF \ -DENABLE_VIXL_SIMULATOR=OFF \ -DDATA_DIRECTORY=${datadir} \
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#128126): https://lists.openembedded.org/g/openembedded-devel/message/128126 Mute This Topic: https://lists.openembedded.org/mt/120192802/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
