78293 Commits

Author SHA1 Message Date
Mikko Rapeli
612ffd8632 poky-altcfg.conf: enable "efi" in DISTRO_FEATURES
oe-core machines like genericarm64 already enable "efi" in
MACHINE_FEATURES but this does not enable systemd side
"efi" support and thus systemd does not mount ESP
partition for example.

Enabling "efi" in systemd PACKAGECONFIG got negative comments
in review. Also enabling systemd "efi" support via MACHINE_FEATURES
was rejected. Thus enabling this as distro feature for "poky-altcfg".

Many HW targets come with UEFI compatible firmware by default.
For example u-boot enables UEFI support by default on all targets.

This enables seeing UEFI firmware interfaces and data
in userspace since "efivars" is now mounted by systemd
to /sys/firmware/efi/efivars. Things like UEFI bootloader
(grub, systemd-boot etc) selections and secure boot status
can be queried from there.

(From meta-yocto rev: f8ad95758cc7e4a8f7f41f90fed75e0ab0af26db)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Chen Qi
01b7291e7c busybox: fix CVE-2023-39810
Backport patch to fix CVE-2023-39810.

Note that the patch adds a config option which is disabled by
default. So users wanting this feature needs to enable that option.

(From OE-Core rev: 44e080f4dd56bda1d6e361c2cb6d07aae0dd0c75)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Yi Zhao
7cbc7a7b12 python3-pygobject: RDEPENDS on gobject-introspection
Since 3.51.0, python3-pygobject depends on libgirepository 2.0 provided
by glib-2.0 instead of libgirepository 1.0 provided by
gobject-introspection[1]. It still needs the typelib files from
libgirepository-1.0 package. Add gobject-introspection as a runtime
dependency.

Fixes:
$ python3
Python 3.13.2 (main, Feb  4 2025, 14:51:09) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> from gi.repository import Gtk
Traceback (most recent call last):
  File "/usr/lib64/python3.13/site-packages/gi/importer.py", line 139, in create_module
    introspection_module = get_introspection_module(namespace)
  File "/usr/lib64/python3.13/site-packages/gi/module.py", line 243, in get_introspection_module
    module = IntrospectionModule(namespace, version)
  File "/usr/lib64/python3.13/site-packages/gi/module.py", line 111, in __init__
    repository.require(namespace, version)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
gi.RepositoryError: Typelib file for namespace 'xlib', version '2.0' not found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<python-input-1>", line 1, in <module>
    from gi.repository import Gtk
  File "/usr/lib64/python3.13/site-packages/gi/importer.py", line 141, in create_module
    raise ImportError(e) from e
ImportError: Typelib file for namespace 'xlib', version '2.0' not found

[1] https://gitlab.gnome.org/GNOME/pygobject/-/merge_requests/320

(From OE-Core rev: edeef8893d5cdd8bddba93a05f95b79591074cfb)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Trevor Woerner
424b73d1b2 systemd: disable linker GCS warning on aarch64
openssl has some assembler code that has PAC and BTI hints but not GCS. The
systemd recipe then links to libcrypto from openssl with GCS enabled (as
that is a distro-wide setting) and it - correctly - warns that it is being
told to use GCS but one of the inputs does not have GCS. This would not
be a problem but systemd also links with —fatal-warnings, so the build
explodes.

	libcrypto.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.
	| collect2: error: ld returned 1 exit status

(From OE-Core rev: d596ce591eae049b089e24519251d48931aa2668)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
7b037b9311 clang: Build limited targets for target clang recipe
On target its sufficient to build what mesa needs + one host target
It should speed up the build.

Fix bug in function mapping target architecture to LLVM backend

Reduces size of libLLVM

Before - 131M May  6 20:42 ./clang-libllvm/usr/lib/libLLVM.so.20.1
After  - 93M May  6 18:47 ./clang-libllvm/usr/lib/libLLVM.so.20.1

(From OE-Core rev: 0f14141b8cb99c1d11a73b3f22e0f338fa0c9bc3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
8fa4fcf164 clang: Space optimize clang recipes
They can consume quite a bit of build space, we don't debug them as often

(From OE-Core rev: fb8d2984a8e52a3a317148e957c0295f69eda48c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
9fa7dbe4ee arch-powerpc: Use -maltivec in compiler flags if altivec is in tune features
(From OE-Core rev: 674555b6464274667a56faeb70c2feb7b264412c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Alexander Kanavin
02ffc64455 clang: fix upstream version check
(From OE-Core rev: eebc372d8398c903565266b060a04c81f8bef1de)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
d80918720f compiler-rt: Always use clang for compiler
This makes it build for all architectures e.g. riscv/mips/ppc etc.

Using clang-native to build all variants of recipe makes it easier to
handle compiling with various distros choosing different runtimes

(From OE-Core rev: f1c29537f04218ec372222ea2bf993f1a764feaf)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Alon Bar-Lev
6eb404bab1 module.bbclass: add KBUILD_EXTRA_SYMBOLS to install
Symbols are used during install as well, adding KBUILD_EXTRA_SYMBOLS enables
successful installation.

    | DEBUG: Executing shell function do_install
    | NOTE: make -j 22 KERNEL_SRC=xxx/kernel-source -C xxx/drivers
    KDIR=xxx/kernel-source DEPMOD=echo
    MODLIB=xxx/image/lib/modules/6.6.75-yocto-standard-00189-g530c419bc9db
    INSTALL_FW_PATH=xxx/image/lib/firmware CC=aarch64-poky-linux-gcc
    -fuse-ld=bfd -fcanon-prefix-map  LD=aarch64-poky-linux-ld.bfd
    OBJCOPY=aarch64-poky-linux-objcopy  STRIP=aarch64-poky-linux-strip
    O=xxx/kernel-build-artifacts modules_install
    | make: Entering directory 'xxx/drivers'
    | make -C xxx/kernel-source M=xxx/drivers modules
    | make[1]: Entering directory 'xxx/kernel-source'
    | make[2]: Entering directory 'xxx/kernel-build-artifacts'
    |   MODPOST xxx/drivers/Module.symvers
    | ERROR: modpost: "xxx" [xxx/xxx.ko] undefined!

(From OE-Core rev: 579f14a46b0ce35f8f55879ecd37824d2878de0e)

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Deepesh Varatharajan
063d95d060 glibc: stable 2.41 branch update
Below commits on glibc-2.41 stable branch are updated.
5cb575ca9a elf: tst-audit10: split AVX512F code into dedicated functions [BZ #32882]
046b33800c x86: Detect Intel Diamond Rapids
a53e764657 x86: Handle unknown Intel processor with default tuning
aca31d2712 x86: Add ARL/PTL/CWF model detection support
f68b407d4b x86: Optimize xstate size calculation
d6d56af6e7 elf: Fix arm-linux-gnueabihf build break from b861755a84
b861755a84 elf: Extend glibc.rtld.execstack tunable to force executable stack (BZ 32653)
200d20123c x86: Link tst-gnu2-tls2-x86-noxsave{,c,xsavec} with libpthread
80cd656649 x86: Use separate variable for TLSDESC XSAVE/XSAVEC state size (bug 32810)
a282e2c0ae x86: Skip XSAVE state size reset if ISA level requires XSAVE
bcd4cf9d5f x86_64: Add atanh with FMA
7e72fa7577 x86_64: Add sinh with FMA
6a3a4a5e58 x86_64: Add tanh with FMA
ce9b765522 nptl: Check if thread is already terminated in sigcancel_handler (BZ 32782)
98c712855d nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786)
e22c132484 nptl: clear the whole rseq area before registration
33bfd9020f Linux: Remove attribute access from sched_getattr (bug 32781)
66fc3bd758 math: Remove an extra semicolon in math function declarations
1a3083b999 posix: Move environ helper variables next to environ definition (bug 32541)
91f8cff2c4 configure: Fix spelling of -Wl,--no-error-execstack option
fd202462c5 elf: Check if __attribute__ ((aligned (65536))) is supported
746ef8e939 static-pie: Skip the empty PT_LOAD segment at offset 0 [BZ #32763]
56609f8df1 Pass -Wl,--no-error-execstack for tests where -Wl,-z,execstack is used [PR32717]
89be78704e AArch64: Use prefer_sve_ifuncs for SVE memset
c47c3890f1 AArch64: Add SVE memset
e0bc5f64ea math: Improve layout of exp/exp10 data
009c5a2dca aarch64: Add GCS test with signal handler
8d98ee8d70 aarch64: Add GCS tests for dlopen
61ba3cdfa9 aarch64: Add GCS tests for transitive dependencies
fda5730898 aarch64: Add tests for Guarded Control Stack
6d1f97bb06 aarch64: Add configure checks for GCS support
7774a9d07a AArch64: Improve codegen for SVE powf
2025e27a81 AArch64: Improve codegen for SVE pow
f3d9c116cb AArch64: Improve codegen for SVE erfcf
94859e8680 Aarch64: Improve codegen in SVE exp and users, and update expf_inline
7c9a086807 Aarch64: Improve codegen in SVE asinh
30992cb5e9 RISC-V: Fix IFUNC resolver cannot access gp pointer
07288c7445 math: Add optimization barrier to ensure a1 + u.d is not reused [BZ #30664]
2cb04444b9 math: Fix `unknown type name '__float128'` for clang 3.4 to 3.8.1 (bug 32694)
a900dbaf70 x86 (__HAVE_FLOAT128): Defined to 0 for Intel SYCL compiler [BZ #32723]
1e0e33e1b1 Fix tst-aarch64-pkey to handle ENOSPC as not supported
69fda28279 assert: Add test for CVE-2025-0395
cf88351b68 math: Fix tanf for some inputs (BZ 32630)
cb7f206537 nptl: Correct stack size attribute when stack grows up [BZ #32574]
d85a771953 math: Fix sinhf for some inputs (BZ 32627)
bdccbfbc52 math: Fix log10p1f internal table value (BZ 32626)

Testresults:
Before update	|After update	 |Difference
PASS:  5816	|PASS:  5826	 |PASS: +10
FAIL:  239	|FAIL:  239	 |FAIL:  0
XPASS: 4	|XPASS: 4	 |XPASS: 0
XFAIL: 16	|XFAIL: 16	 |XFAIL: 0
UNSUPPORTED: 164|UNSUPPORTED: 164|UNSUPPORTED: 0

(From OE-Core rev: 5eca9f2e69540730a4208923918fe3a461f2cb07)

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Changqing Li
2d52e32e8d send-error-report: make output align with original design when debug disabled
First, it is better to output the error report web link by default when
the report is uploaded successfully like before. This is useful, user
can find the detail the log info from the return link. Yocto Autobuilder
also benifit from this return link.

Second, why don't set level to logging.INFO to make the error report web
link outputed? Because "-j" option want to "Return the result in json
format, silences all other output", So "INFO:" added by logging system
is not wanted, so use print directly.

Example output:
Without "-j":
Preparing to send errors to: http://x.x.x.x:8000
Your entry can be found here: http://x.x.x.x:8000/Errors/Build/25/

With "-j":
{"build_id": 27, "build_url": "http://x.x.x.x:8000/Errors/Build/27/", "failures": [{"id": 26, "url": "http://x.x.x.x:8000/Errors/Details/26/"}], "num_similar_errors": 20, "similar_errors_url": "http://x.x.x.x:8000/Errors/SimilarTo/26/"}

(From OE-Core rev: 4082001349837729409e8a108be936bedabf5742)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Etienne Cordonnier
cb18cca65e coreutils: remove outdated comment
The comment about hostname not being included in base_bindir_progs is wrong after https://git.yoctoproject.org/poky/commit/?id=b9bf37ec6792f82753fe265fdcfc19db7dd51ab6 ,
so remove it to avoid confusion.

Also improve comment about bindir_progs.

(From OE-Core rev: e3f332b212ae2da0d1379d6b06b2b8d810470c44)

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
6ec56fd93e musl: Enable riscv32
Musl recipe points to recent tip of trunk (1.2.5+) where we now have riscv32
port merged [1], Enable riscv32 as supported arch for musl systems.

[1] https://git.musl-libc.org/cgit/musl/commit/?id=377c363fb5519a224682692004ecd3703c19df93

(From OE-Core rev: 0ff26daf7ef933f08fbc77caecc031c6b12f58ff)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
8f6a5bddb0 arch-mips.inc: Use -EB/-EL for denoting endianness
While -meb/-mel works it is not documented as supported and using -EL/-EB
also makes clang work without tweaking TUNE_CCARGS

Fixes
 mips-poky-linux-musl-clang: error: unknown argument: '-meb'

(From OE-Core rev: c9286e74739c71ad0c77191de11df89e3740fe27)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
66c3a25232 compiler-rt-sanitizers: Omit the musl architecture restrictions
sanitizers are working fine on arm/aarch64 as well. Remove the
compatible host restriction

(From OE-Core rev: 6aa78b3769af97ff04f81816766d71a8c05ad849)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Khem Raj
9f7378f6e8 mesa: Do not use envvar BINDGEN_EXTRA_CLANG_ARGS
Its now set in meson bbclass for native, nativesdk and target recipes
correctly.

(From OE-Core rev: e99ab9947c22ac5bac83b66956a546bd6c2fdfc2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Dmitry Baryshkov
402c3048eb meson: correct bindgen_clang_argments
Follow the changes in Clang search paths and specify sysroot via the
TOOLCHAIN_OPTIONS, otherwise clang will fail to find system headers when
executed by bindgen.

For SDK packages TOOLCHAIN_OPTIONS don't contain full sysroot path, so
specify the correct directory explicitly.

(From OE-Core rev: 9249450419686e4a0cfdafb8f101e3491f6740ba)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Dmitry Baryshkov
5bda9e6a26 clang: split SPIRV-LLVM-Translator to its own recipe
The translator is not a part of the same source tree. As such it has
tendency to break on clang upgrades. Split it to its own recipe in order
to ease handling of clang.

This also makes it use SPIR-V headers provided by the spirv-headers
recipe instead of vendoring them in.

(From OE-Core rev: d48bfa8311bf53044de9a2fb5b52d99f8b9eb545)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Peter Marko
dfc5b8e91f vex: fix rootfs manifest
Rootfs VEX file is created by gathering files from CVE_CHECK_DIR
(deploy directory), however recipes generate the files only in
CVE_CHECK_DIR (log directory).
This make the rootfs VEX be always empty without any message.

The code is copied from cve_check class, which writes to both, so let
keep them aligned and make also vex write both files.

Also add a warning for case that a cve file would be still missing.

(From OE-Core rev: 6127bc8b1e2cb437961c80a9f7c604dd20315e73)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Dario Binacchi
cec7506c40 mmc-utils: upgrade to latest revision
(From OE-Core rev: 8611ef888b4dfde886f59a0700d2e67c20891db2)

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Michal Sieron
e022c51dca kernel-module-split: Allow for external conf files
Some recipes might provide conf files produced during build phase or
simply tracked in the VCS instead of generating them with Yocto.
In such cases those conf files wouldn't be assigned to correct packages.
With this change, if user wants to generate a conf file they still can,
but not generating them won't prevent assigning the file to proper
package given the file exists.

(From OE-Core rev: 8560a8a90e552e098f02db6ef2692ebb66b63baa)

Signed-off-by: Michal Sieron <michalwsieron@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Hongxu Jia
f9a89a0a83 spdx30: Provide software_packageUrl field in SPDX 3.0 SBOM
Define var-SPDX_PACKAGE_URL to provide software_packageUrl field [1][2]
in SPDX 3.0 SBOM, support to override with package name
SPDX_PACKAGE_URL:<pkgname>

Currently, the format of purl is not defined in Yocto, set empty for now
until we have a comprehensive plan for what Yocto purls look like.
But users could customize their own purl by setting var-SPDX_PACKAGE_URL

[1] https://spdx.github.io/spdx-spec/v3.0.1/model/Software/Properties/packageUrl/
[2] https://spdx.github.io/spdx-spec/v3.0.1/annexes/pkg-url-specification/

(From OE-Core rev: 5dbc1f3bfe40ef28d1eb4274a8d460e2b0c933c2)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:49:00 +02:00
Yi Zhao
f5004e35d3 sassc: fix runtime version
The sassc_version.h should be generated from sassc_version.h.in. But
there is already a sassc_version.h file in source directory. When ${S}
!= ${B}, the sassc_version.h is generated in build directory, and the
original sassc_version.h in source directory is not overwritten.
However, the latter is used during the build, resulting in a missing
runtime version. Remove sassc_version.h from source directory to ensure
that the one in build directory is used during the build.

Before the fix:
$ sassc --version
sassc: [NA]
libsass: [NA]
sass2scss: 1.1.1
sass: 3.5

After the fix:
$ sassc  --version
sassc: 3.6.2
libsass: 3.6.6
sass2scss: 1.1.1
sass: 3.5

(From OE-Core rev: 4b97be714bda961e36362d0525af5797e13d9a27)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Yi Zhao
1169d69904 libsass: fix runtime version
The version.h should be generated from version.h.in. But there is
already a version.h file in source directory. When ${S} != ${B}, the
version.h is generated in build directory, and the original version.h in
source directory is not overwritten. However, the latter is used during
the build, resulting in a missing runtime version. Remove version.h from
source directory to ensure that the one in build directory is used
during the build.

Before the fix:
$ sassc --version
sassc: [NA]
libsass: [NA]
sass2scss: 1.1.1
sass: 3.5

After the fix:
$ sassc  --version
sassc: 3.6.2
libsass: 3.6.6
sass2scss: 1.1.1
sass: 3.5

(From OE-Core rev: 7fdfecb780acf6d74df7810bc8d63b0e115efe19)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Mikko Rapeli
d29a3a0d0f oeqa selftest: read qemu options from TEST_RUNQEMUPARAMS
To support "slirp" userspace networking which works more easily
on various build machines, also without root and sudo rights
to setup loop interfaces.

(From OE-Core rev: 9ff18d7b02ffb0f5c9e97dfcc69a22b7565603a9)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
tom.hochstein@oss.nxp.com
00ecd5353b oeqa/sdk/meson: Drop unreliable compiler test
The SDK Meson compiler test does not work in certain scenarios like
meta-ide-support or NATIVELSBSTRING = "debian-11":
```
Traceback (most recent call last):
   File "/srv/pokybuild/yocto-worker/qemux86/build/meta/lib/oeqa/sdk/cases/meson.py", line 47, in test_epoxy
     self.assertNotEqual(data["build"]["c"]["exelist"], data["host"]["c"]["exelist"])
                         ~~~~~~~~~~~~~^^^^^
KeyError: 'c'
```

The root cause is elusive. The contents of `meson introspect --compilers`
is no different from the working case of the standalone SDK with
NATIVELSBSTRING = "universal". Notably, the "build" field is in fact
empty, so it's almost as if the failures are correct and the success is
wrong.

The benefits of this part of the test are marginal, so fix it by
removing it.

(From OE-Core rev: 230eaf199ad7bb3792a8afd0208b6dbe670213b8)

Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Tom Hochstein
a1c55b9bad oeqa/sdk/meson: Skip test when SDK arch != build machine arch
The SDK Meson test fails when the SDK is not for the build machine. Skip
the test in this case.

(From OE-Core rev: 12c147690df6561b0a4570a52c26a95a6bbbe740)

Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Ross Burton
5c71a6ac84 oeqa/sdk/meson: improve test to validate host/build target assignments
Use 'meson introspect' to dump JSON describing the build configuration
and validate that the build and host architectures are correctly set in
the meson.cross file.

Also instead of calling ninja directly, call the relevant meson commands.

Fixes: [YOCTO #15485]
(From OE-Core rev: 44247530e0c5cf28eec0c5178e8ffa87dbe2cd59)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Tom Hochstein
a7bfb7c3ea meson: Fix host_machine setting for native cross-file
For native and nativesdk, the meson cross-file settings for
`host_machine` are incorrectly set for the build machine, not the
"machine on which the compiled binary will run". See
https://mesonbuild.com/Cross-compilation.html.

Fixes: [YOCTO #15485]
(From OE-Core rev: 799f63c483b56560602eec12856eaae1ba16025b)

Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Tom Hochstein
0f68eb4987 toolchain-scripts: Export meson settings for SDK builds
Create a new set of exports for the Meson `host_machine` cross settings.
This allows the target cross file to be created correctly from
meson.cross.template and aligns with meson.bbclass.

Note, one might think that HOST_OS and HOST_ARCH would be appropriate as
inputs here, aligning nicely with the Meson naming. That turns out to be
incorrect since the script is generated in a native/nativesdk build with
HOST_OS and HOST_ARCH set for the "build machine", not the "host
machine", using the Meson terminology. See
https://mesonbuild.com/Cross-compilation.html.

Fixes: [YOCTO #15485]
(From OE-Core rev: d7bbbd38180d79378c7018fc01cd61129f7a7187)

Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Tom Hochstein
b39fab99a8 toolchain-scripts: Add Meson settings for Yocto build SDK
The Meson settings for the standalone SDK also need to be available for
the Yocto build SDK, a.k.a. meta-ide-support.

(From OE-Core rev: 8b8ab8a5f006675713275a673117c2f7bc5bffc1)

Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Alexander Kanavin
bdf2e9e6e5 fragments/qemu: add support for enabling sdl in qemu
This has been the default in poky's local.conf template for
a long time, but it's not enabled directly in poky distro.
To allow better sstate reuse and a better user experience
on a typical laptop (qemu will pop up a graphical window directly),
let's add this fragment and enable it in official bitbake-setup
configurations.

(From OE-Core rev: 99dd48fac4af09dbd81d30a4c50ed604453afc62)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Alexander Kanavin
366ccdcabc conf/fragments: add a fragment for CDN sstate mirror
This will be used in bitbake-setup official configurations and
it will be awesome.

(From OE-Core rev: b2b4142938792d082a1e61ab1ac11a56320c2f35)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Alexander Kanavin
5350e2198f conf/fragments: add fragments for qemux86-64 and qemuarm64
These will be used by official bitbake-setup configurations,
and so let's start with them :) Plenty more fragments can
be added over time.

(From OE-Core rev: 6e634761ddd1e88ebd48d4d61157014fe632d6ce)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Alexander Kanavin
859f9bf377 meta/conf/templates: add a blank template
The default oe-core/poky templates have a number of settings
(such as distro and machine) and are thus unsuitable for
building up configurations from fragments. This adds a template
with an empty local.conf, so that it can be used as the starting
point for fragment-driven configuration.

There will also be a blank template in poky; the difference is
that this one includes only oe-core and the poky one
adds poky layers.

(From OE-Core rev: 85aa83f8850358072bf2de000c8015737f99e993)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Alex Kiernan
0ca5521bc6 packagegroup-base: Add option to set zeroconf provider
avahi, systemd-resolved and mDNSResponder (in meta-networking) can all
provide Zeroconf services. Add a `ZEROCONF_DAEMON` option to select
which of these will provide service via packagegroup-base-zeroconf.

(From OE-Core rev: 0805de044c721df22b8b81cdea6832602d3fd90c)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Pedro Ferreira
4710dc7cfd buildhistory.bbclass: restore BUILDHISTORY_PRESERVE files
On each build using sstate-cache, buildhistory will move
content to a temporary folder named `old`.
When buildhistory looks for the main dir, it wont find it
and ends up creating it.
As a consequence how code is structured wont restore any
preserved file.

Code block moved to ensure if old dir exists, it will
attempt to restore those files marked to preserve.

(From OE-Core rev: 278bf707316b649df94fa586e2bbd0ada03adeb1)

Signed-off-by: Pedro Silva Ferreira <Pedro.Silva.Ferreira@criticaltechworks.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Philip Lorenz
6cc683cd34 bitbake: tests/fetch: Test gitsm with LFS
Add a test case to verify that the gitsm fetcher properly handles
repositories storing objects with LFS.

The test case verifies that LFS objects are fetched on the initial clone
but also ensures that consecutive updates extend the original clone with
any newly referenced LFS objects.

(Bitbake rev: 7bd5d5e99ea245e976c89ad7e5335dac1639bfa5)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Philip Lorenz
e9a8730b1c bitbake: fetch2: Fix LFS object checkout in submodules
Skipping smudging prevents the LFS objects from replacing their
placeholder files when `git submodule update` actually checks out the
target revision in the submodule. Smudging cannot happen earlier as the
clone stored in `.git/modules` is bare.

This should be fine as long as all LFS objects are available in the
download cache (which they are after the other fixes are applied).

(Bitbake rev: cef8f2dd9288982ebf316728bc72a9f3e235f1a8)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Philip Lorenz
8017e94012 bitbake: fetch2: Fix incorrect lfs parametrization for submodules
The existing code would pass `True` or `False` to the git fetcher. As
the fetcher expects `lfs` to be set to `1` this always lead to LFS
fetching being disabled.

(Bitbake rev: b00d55b186c4ab510d53e28672797b37e240e6b3)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Philip Lorenz
5aeebc3fa6 bitbake: fetch2: Use git-lfs fetch to download objects
Its not clear which exact git-lfs versions failed to work with bare
repositories, however git-lfs 2.13.2 which is shipped by Debian 10 (i.e.
the oldest supported distribution by scarthgap) shows no issue when
fetching into a bare repository. Switch to git-lfs fetch which in turn
eliminates issues seen when using the gitsm fetcher with submodules
utilizing lfs.

In these scenarios, fetching of LFS objects did not actually happen as
the gitsm fetcher parametrizes the to be fetched repositories with
`bareclone=1` which in turn means that the target revision was never
checked out (and therefore no LFS objects were fetched).

(Bitbake rev: 0dedf13496d62b6365baa9c4b62edd7ee8a1846b)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Philip Lorenz
91272e3cfb bitbake: fetch2: Simplify git LFS detection
Its unclear why this function does not operate on the desired source
revision to begin with (which really should be the decider on whether a
particular source revision uses LFS or not). Simplify the decision logic
by always checking the `.gitattributes` file of the target revision.

(Bitbake rev: eb220afdec51948e2cc55274eaa665157a2ddbcb)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Philip Lorenz
58a2afe9ad bitbake: fetch2: Check for git-lfs existence before using it
So far, existence of `git-lfs` was only checked during unpacking. As the
binary is also used in earlier steps also check for its existence there.

Additionally, factor out the LFS existence check into a dedicated
function and call it wherever git-lfs is used for the first time.

(Bitbake rev: 95baf55170365364bdc51598782133f736ad8e15)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Chris Laplante
297f97ca38 bitbake: knotty: report cache validity checking progress
(Bitbake rev: fb5f0faee6055f8145cb2386f4cae21fd90cd9e1)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Chris Laplante
a4c38f6e87 bitbake: cooker/event: add cache validity checking events
There's a "dead zone" between the "Loading cache" phase and the "Parsing
recipes" phase during which bitbake checks whether cache entries are actually
valid. Even at the highest (-DDD) debug level, bitbake produces no output.

On my relatively powerful baremetal Yocto build PC, this phase takes 6 seconds
in the presence of 4 multiconfigs (including 'default') and 40 layers.

This patch provides events to track the progress of cache validity
checking, so we can give the user some visual feedback.

(Bitbake rev: fd247cabe819d9c4f2777c51697f074133100b11)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Stefan Herbrechtsmeier
778621cb54 bitbake: fetch2: use localpath instead of localfile
Use localpath variable instead of localfile and DL_DIR variable.

(Bitbake rev: bb95604c1d4c289422d28bb7c5bd343d8fa53c45)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Stefan Herbrechtsmeier
c751ecc762 bitbake: fetch2: remove basepath from FetchData
Remove the basepath variable from the FetchData class. The variable is
never used in the class because the only user of the variable also sets
the needdonestamp variable to false. The basepath variable is useless
because it contains the content of the path variable.

(Bitbake rev: 278d88efe9ee79604f835e2a572cacebb002e589)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Benjamin Szőke
7bafcce984 bitbake: bitbake: cooker: Fix performance issue in EventWriter() class
Reopen eventfile is a very time consuming call in every send() calling. It was
fixed by -> open its file descriptor in __init__() and close it in __del__().
Remove unused self.event_queue = [].

(Bitbake rev: 1170006a386ef18659d67fc43427ba7e6677bc51)

Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00
Benjamin Szőke
9ec95e7068 bitbake: bitbake: knotty: print() was eliminated from all loops for better performance.
Refactoring prints, print() functions were eliminated from all loops and it uses
"\n".join(...) in a single print() call for better performance.

(Bitbake rev: a4e462812bbcc9175633e8ca26e871cb90d5d73b)

Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
2025-05-08 08:48:59 +02:00