From 0a9668e192e04ddccb29d6ba271213c708d01066 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 8 Jul 2025 22:34:02 +0100 Subject: sanity: Add sanity test for 'bad' gcc installs on ubuntu 24.04 Installing emacs on Ubuntu 24.04 pulls in emacs-gtk which leads to libgcc-14-dev despite gcc being 13. This breaks libcxx-native and compiler-rt-native builds. We've tried various ways of addressing this buit they don't work. Instead, detect this situation and tell the user to either install or remove a package. (From OE-Core rev: 087b2730bb2446ad5ea98c233e349d2787c17ff1) Signed-off-by: Richard Purdie --- meta/classes-global/sanity.bbclass | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass index 1044ed9cc6..d875a022db 100644 --- a/meta/classes-global/sanity.bbclass +++ b/meta/classes-global/sanity.bbclass @@ -672,6 +672,8 @@ def check_sanity_sstate_dir_change(sstate_dir, data): return testmsg def check_sanity_version_change(status, d): + import glob + # Sanity checks to be done when SANITY_VERSION or NATIVELSBSTRING changes # In other words, these tests run once in a given build directory and then # never again until the sanity version or host distribution id/version changes. @@ -703,6 +705,11 @@ def check_sanity_version_change(status, d): if not check_app_exists('g++', d): missing = missing + "C++ Compiler (g++)," + # installing emacs on Ubuntu 24.04 pulls in emacs-gtk -> libgcc-14-dev despite gcc being 13 + # this breaks libcxx-native and compiler-rt-native builds so tell the user to fix things + if glob.glob("/usr/lib/gcc/*/14/libgcc_s.so") and not glob.glob("/usr/lib/gcc/*/14/libstdc++.so"): + status.addresult('libgcc-14-dev is installed and not libstdc++-14-dev which will break clang native compiles. Please remove one or install the other.') + required_utilities = d.getVar('SANITY_REQUIRED_UTILITIES') for util in required_utilities.split(): -- cgit v1.2.3-54-g00ecf