From patchwork Mon Sep 22 17:20:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 70701 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79A25CA100F for ; Mon, 22 Sep 2025 17:20:41 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.58439.1758561636238087309 for ; Mon, 22 Sep 2025 10:20:36 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 504BD1424 for ; Mon, 22 Sep 2025 10:20:27 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 295643F5A1 for ; Mon, 22 Sep 2025 10:20:35 -0700 (PDT) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 1/3] vte: skip gobject-introspection with clang on armv7 Date: Mon, 22 Sep 2025 18:20:22 +0100 Message-ID: <20250922172025.184116-1-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:20:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223833 For some as yet unknown reason, vte on armv7 (specifically, the qemuarm and beaglebone-yocto machines at least) will fail during G-I code generation (which runs the target binaries inside qemu-user): Bail out! VTE:ERROR:../sources/vte-0.80.3/src/vtegtk.cc:158:void style_provider_parsing_error_cb(GtkCssProvider *, void *, GError *): assertion failed (error == NULL): Expected an identifier (gtk-css-parser-error-quark, 1) qemu: uncaught target signal 6 (Aborted) - core dumped Until this can be root-caused, we can disable G-I for this edge case. Signed-off-by: Ross Burton --- meta/recipes-support/vte/vte_0.80.3.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta/recipes-support/vte/vte_0.80.3.bb b/meta/recipes-support/vte/vte_0.80.3.bb index 1eb95dd8274..17c4eb6c7e0 100644 --- a/meta/recipes-support/vte/vte_0.80.3.bb +++ b/meta/recipes-support/vte/vte_0.80.3.bb @@ -55,3 +55,8 @@ FILES:${PN}-prompt = " \ " FILES:${PN}-dev += "${datadir}/glade/" + +# Causes failures at build time on eg qemuarm; +# Bail out! VTE:ERROR:../sources/vte-0.80.3/src/vtegtk.cc:158:void style_provider_parsing_error_cb(GtkCssProvider *, void *, GError *): assertion failed (error == NULL): Expected an identifier (gtk-css-parser-error-quark, 1) +# qemu: uncaught target signal 6 (Aborted) - core dumped +GI_DATA_ENABLED:toolchain-clang:armv7ve = "False" From patchwork Mon Sep 22 17:20:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 70703 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78024CAC5AA for ; Mon, 22 Sep 2025 17:20:41 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.58440.1758561636577309384 for ; Mon, 22 Sep 2025 10:20:36 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 02D8F236D for ; Mon, 22 Sep 2025 10:20:28 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id C548D3F5A1 for ; Mon, 22 Sep 2025 10:20:35 -0700 (PDT) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 2/3] linux-firmware: skip ldflags sanity check Date: Mon, 22 Sep 2025 18:20:23 +0100 Message-ID: <20250922172025.184116-2-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922172025.184116-1-ross.burton@arm.com> References: <20250922172025.184116-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:20:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223834 Some of the firmware blobs, for example qcom/apq8016/modem.mbn, are actually ELF files. We don't want to hold these to our exacting standard for link flags because we're not building them and they don't run on the target directly. Signed-off-by: Ross Burton --- .../recipes-kernel/linux-firmware/linux-firmware_20250808.bb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20250808.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20250808.bb index be38a8edf35..d5e45e6ed8d 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_20250808.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20250808.bb @@ -2342,7 +2342,10 @@ python populate_packages:prepend () { # Firmware files are generally not ran on the CPU, so they can be # allarch despite being architecture specific -INSANE_SKIP = "arch" +INSANE_SKIP += "arch" + +# They can also be ELF files, but obviously won't have the linkage we expect +INSANE_SKIP += "ldflags" # Don't warn about already stripped files INSANE_SKIP:${PN} = "already-stripped" From patchwork Mon Sep 22 17:20:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 70702 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77067CAC592 for ; Mon, 22 Sep 2025 17:20:41 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.58375.1758561637272336389 for ; Mon, 22 Sep 2025 10:20:37 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9EB591424 for ; Mon, 22 Sep 2025 10:20:28 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 75B1F3F5A1 for ; Mon, 22 Sep 2025 10:20:36 -0700 (PDT) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 3/3] lame: don't use -march=native when building with clang Date: Mon, 22 Sep 2025 18:20:24 +0100 Message-ID: <20250922172025.184116-3-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922172025.184116-1-ross.burton@arm.com> References: <20250922172025.184116-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:20:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223835 Because of a logic error, lame's configure always passes -march=native when building with clang. This is a terrible idea in general as it's not often your build machine and target hardware aligns, and leads to some amusing errors: unknown target CPU 'neoverse-n1' note: valid target CPU values are: i386, i486, ... Move the HAVE_CLANG block up into the FULL_OPTIMIZATION case, alongside HAVE_GCC. This option is never enabled (as it's basically "use native") so resolves the build failure. Signed-off-by: Ross Burton --- meta/recipes-multimedia/lame/lame/clang.patch | 99 +++++++++++++++++++ meta/recipes-multimedia/lame/lame_3.100.bb | 1 + 2 files changed, 100 insertions(+) create mode 100644 meta/recipes-multimedia/lame/lame/clang.patch diff --git a/meta/recipes-multimedia/lame/lame/clang.patch b/meta/recipes-multimedia/lame/lame/clang.patch new file mode 100644 index 00000000000..116000c577b --- /dev/null +++ b/meta/recipes-multimedia/lame/lame/clang.patch @@ -0,0 +1,99 @@ +Don't use -march=native when building with clang + +Because of a logic error, lame's configure always passes -march=native +when building with clang. + +This is a terrible idea in general as it's not often your build machine +and target hardware aligns, and leads to some amusing errors: + + unknown target CPU 'neoverse-n1' + note: valid target CPU values are: i386, i486, ... + +Move the HAVE_CLANG block up into the FULL_OPTIMIZATION case, alongside +HAVE_GCC. This option is never enabled (as it's basically "use native") +so resolves the build failure. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git i/configure.in w/configure.in +index 5e43179..d51b017 100644 +--- i/configure.in ++++ w/configure.in +@@ -960,45 +960,43 @@ if test "x$HAVE_GCC" = "xyes" -o "x$HAVE_CLANG" = "xyes"; then + ;; + esac + fi ++ ++ if test "x${HAVE_CLANG}" = "xyes"; then ++ case "${CLANG_VERSION}" in ++ 3.[89]*|[45].*) ++ OPTIMIZATION="-Ofast" ++ ;; ++ *) ++ OPTIMIZATION="-O3" ++ ;; ++ esac ++ ++ # generic CPU specific options ++ case ${host_cpu} in ++ *486) ++ OPTIMIZATION="${OPTIMIZATION} -march=i486" ++ ;; ++ *586) ++ OPTIMIZATION="${OPTIMIZATION} -march=i586 \ ++ -mtune=native" ++ ;; ++ *686) ++ OPTIMIZATION="${OPTIMIZATION} -march=i686 \ ++ -mtune=native" ++ ;; ++ *86) ++ OPTIMIZATION="${OPTIMIZATION} -march=native \ ++ -mtune=native" ++ ;; ++ esac ++ ++ fi + ;; + *) + AC_MSG_ERROR(bad value �${CONFIG_EXPOPT}� for expopt option) + ;; + esac + +- +- if test "x${HAVE_CLANG}" = "xyes"; then +- case "${CLANG_VERSION}" in +- 3.[89]*|[45].*) +- OPTIMIZATION="-Ofast" +- ;; +- *) +- OPTIMIZATION="-O3" +- ;; +- esac +- +- # generic CPU specific options +- case ${host_cpu} in +- *486) +- OPTIMIZATION="${OPTIMIZATION} -march=i486" +- ;; +- *586) +- OPTIMIZATION="${OPTIMIZATION} -march=i586 \ +- -mtune=native" +- ;; +- *686) +- OPTIMIZATION="${OPTIMIZATION} -march=i686 \ +- -mtune=native" +- ;; +- *86) +- OPTIMIZATION="${OPTIMIZATION} -march=native \ +- -mtune=native" +- ;; +- esac +- +- fi +- +- + if test "${expopt_msg_result_printed}" = "no" ; then + AC_MSG_RESULT(${CONFIG_EXPOPT}) + fi diff --git a/meta/recipes-multimedia/lame/lame_3.100.bb b/meta/recipes-multimedia/lame/lame_3.100.bb index efaf3b9817a..42689df3511 100644 --- a/meta/recipes-multimedia/lame/lame_3.100.bb +++ b/meta/recipes-multimedia/lame/lame_3.100.bb @@ -12,6 +12,7 @@ DEPENDS = "ncurses gettext-native" SRC_URI = "${SOURCEFORGE_MIRROR}/lame/lame-${PV}.tar.gz \ file://no-gtk1.patch \ + file://clang.patch \ " SRC_URI[sha256sum] = "ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e"