Commit Graph

4680 Commits

Author SHA1 Message Date
Richard Purdie
45f3bdce44 bitbake/conf: Default to zstd compressed image output
Switch our default qemu images to use .zst compressed images by default
since this is the output format we release during the release process
and is the one that users would prefer to download. This makes the release
process use the actual generated output from the system and avoids post
processing.

(From OE-Core rev: aa5f60d1fcb716a2b2174dffcaf35442bff1f1fb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-06 22:32:42 +01:00
Michael Halstead
d4b949b178 yocto-uninative: Update to 4.9 for glibc 2.42
(From OE-Core rev: 3bf918491375db55de00e8fe9c501f63759eedd9)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-06 22:30:36 +01:00
Khem Raj
531cce6878 glibc: Upgrade to 2.42 release
* GCC 12.1 or later is now required to build the GNU C Library.
* GNU Binutils 2.39 or later is now required to build the GNU C Library.
* Support for lightweight stack guard pages via madvise and the
  MADV_GUARD_INSTALL flag has been added to pthread_create.
* This is major release, changelog [1]

[1] https://sourceware.org/pipermail/libc-announce/2025/000048.html

(From OE-Core rev: 7c55e2da96f40ee0e40f6fd534573ce64013145c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-06 17:01:23 +01:00
Ross Burton
844e2ebbfc clang: split lld into a separate lld recipe
The lld linker is a standalone project under the LLVM umbrella that just
depends on libLLVM and nothing else, such as clang.

To reduce the build time of clang if lld is not being used, split it out
into a separate recipe.

To ensure that lld is present if needed, the clang-cross recipe will
depend on lld-native if ld-is-lld is enable.

(From OE-Core rev: 5212b69f892af8c9b080fee2c21533a2bbdd2755)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-04 18:04:04 +01:00
Khem Raj
754345d606 feature-arm-crypto: Add +nocrypto to -mcpu when crypto not in features
When crypto is not in tune features then add +nocryto to
-mcpu explicitly. This makes the behavior between clang
and gcc match. Currently -mcpu=cortex-a72 has different
behavior in clang and gcc in terms of what features are
considered default. Clang enables different set of common
features than gcc on other hand. For example clang
enables crypto with default set but gcc
does not, gcc recommends to disable unavailable extensions
in -mcpu [1] explicitly. crypto is optional on cortex-a53
and cortex-a72. This is not as common but Broadcom
SOCs in raspberrypi3/4 have dropped crypto for cost
reasons [2]. This results in illegal instruction
traps [3] [4] when building components e.g. chromium,
qtwebengine, weston etc. with clang using -mcpu=cortex-a72
for rpi4 target.

Adding +nocrypto makes clang behave like gcc does today. We
do have separate tune if crypto enabled cortex-a72 cores
are to be targeted (cortexa72-cryto) as DEFAULTTUNE

They are added to default feature file since crypto extension
is available in multiple arm architecture versions e.g. armv8,
armv9. It is optional extension as per spec [5]

Extensions can be enabled and disabled with -mcpu using the same
syntax as with -march, and have same effect thats why it is
intrumented via TUNE_CCARGS_MARCH_OPTS

[1] https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-mcpu-2
[2] https://forums.raspberrypi.com/viewtopic.php?f=63&t=207888#p1332960
[3] https://github.com/llvm/llvm-project/issues/85699
[4] https://github.com/llvm/llvm-project/issues/90365
[5] https://developer.arm.com/documentation/109697/2025_06/Feature-descriptions/The-Armv9-0-architecture-extension

(From OE-Core rev: db1b355b2b15ba57bd89c2dfb88c2c667551863e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Quentin Schulz <quentin.schulz@cherry.de>
Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-04 18:04:03 +01:00
Robert Yang
c31d01e013 bitbake.conf: Add xz to HOSTTOOLS
The uninative tarball requires xz to decompress:
WARNING: Disabling uninative as unable to install uninative tarball:
WARNING: tar (child): xz: Cannot exec: No such file or directory

(From OE-Core rev: 9c0bc6edf5e6706597563924f62bbab6fdd38ac2)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-31 10:48:35 +01:00
Khem Raj
1d7c3515ca tune-octeonx2: Do not use -mcpu=octeontx2 with clang
-mcpu=octeontx2 is not implemented in clang, therefore
replace it with -march option denoting underlying
armv8 architecture revision.

 Fixes:

    |   error: unsupported argument 'octeontx2+crypto' to option '-mcpu='
    |   error: unknown target CPU 'octeontx2'

(From OE-Core rev: 64df77a396923a119544cc6842eb7b9ba955126c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-31 10:48:35 +01:00
Fabio Estevam
cfa0c48ca3 maintainers: Use my personal e-mail address
Switch to my personal e-mail address for OE related work.

(From OE-Core rev: f30d945ea0983b71d84bf45c7da8603686088a5e)

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-31 10:48:35 +01:00
Jayasurya Maganuru
006da82356 rust: Upgrade 1.87.0 -> 1.88.0
Rust stable version updated to 1.88.0.
https://blog.rust-lang.org/2025/06/26/Rust-1.88.0/

* Rebase existing patches with v1.88.0

* Exclude tidy and coverage-dump from OE self-tests due to test failures
  Although the build completes successfully, OE self-tests fail:
  tools/coverage-dump panics during test execution.
  tools/tidy fails due to a mismatched GCC submodule commit.
  These tests are excluded to allow successful OE self-test runs.

* Two tests from the`codegen` modules now fail only on riscv64.
  Enable them on arm32/64 and x86-32/64 targets, while restricting
  them on riscv64 via `only-<target_arch>` tags.

  Bugzilla link - https://bugzilla.yoctoproject.org/show_bug.cgi?id=15944

  Test Results Summary:
  +-----------+--------+---------+
  | Machine   | Passed | Ignored |
  +-----------+--------+---------+
  | arm-32    | 28,664 | 1,451   |
  | arm-64    | 28,748 | 1,396   |
  | x86-32    | 28,657 | 1,432   |
  | x86-64    | 28,904 | 1,213   |
  | riscv-64  | 28,722 | 1,421   |
  +-----------+--------+---------+

(From OE-Core rev: 5afc9bdbabfdbcb784ceb637926111e6c7648f41)

Signed-off-by: Jayasurya Maganuru <Maganuru.Jayasurya@windriver.com>
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-31 10:48:35 +01:00
Robert P. J. Day
13d6d57e43 documentation.conf: drop reference to tar IMAGE_PKGTYPE
tar packaging was removed some time ago.

(From OE-Core rev: 137f75d7289169f835a9f522530d8abf050e060a)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-28 17:37:02 +01:00
Ross Burton
ddb29ce831 ccache: move environment variables to the configuration file
Move some environment variables to the configuration file, so there's
less happening in the class.

Max_size was removed so that the per-recipe caches don't grown without
limit. The default cache is 5GB.

(From OE-Core rev: 8c1c38a6b3073d2dd34514f5a90805c12c0f42dd)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-28 17:37:02 +01:00
Ross Burton
56e1ae0ccf libclc: split out of clang
Split the libclc subproject out of the clang recipe and into a dedicated
libclc recipe.

This is useful because libclc is the OpenCL runtime library and as such
isn't target-specific and needs a native clang to build, not a target
libllvm.

Verified that nothing is dropped by adding clang and libclc to an image
and verifying that the file list is the same before and after this
change.

We need to patch the libclc CMakeLists to allow it to use an out-of-tree
prepare_builtins binary, discussion is ongoing with upstream to resolve
this properly.

(From OE-Core rev: 33a8742a1280b4c6779a7aa487c2dd4a713babe6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-21 23:00:18 +01:00
Gyorgy Sarvari
fe4e74cbe9 tunes: set valid clang tune for big.LITTLE Arm SoCs
clang doesn't have Arm big.LITTLE specific tune options - when such an option is used,
the compilation fails with an error like this:

aarch64-poky-linux-clang: error: unsupported argument 'cortex-a72.cortex-a53+crc+crypto' to option '-mcpu='

To avoid this, in case a big.LITTLE SoC is the target and the toolchain is clang, select
the tune corresponding to the LITTLE core.

(From OE-Core rev: 12c820f624730a04a17ae2cdbecc4e6987c45cf7)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-21 23:00:18 +01:00
Daisuke Yamane
4b83fe5745 icu: Add ptest support
Add following patches.
  - 0001-test-Add-support-ptest.patch
    - Some default paths in test code are invalid at runtime and cause
    - test failures. So add a patch to adjust path to test data for ptest
    - environment.
  - 0001-ICU-23120-Mask-UnicodeStringTest-TestLargeMemory-on-.patch
    - Since ICU-77.1, a test case (TestLargeMemory) that fails to build
    - in a 32-bit environment. So add a patch to skip this test case.
    - This bug has been reported to upstream. See https://unicode-org.atlassian.net/browse/ICU-23120.
Install icu test-suite to run it as a ptest.
Add icu to PTESTS_FAST because it takes 27sec (less than 30sec) to complete on
qemux86-64 with kvm enabled.

root@qemux86-64:~# ptest-runner icu
START: ptest-runner
2025-07-06T00:46
BEGIN: /usr/lib/icu/ptest
___(snip)___
--------------------------------------
Elapsed Time: 00:00:23.070
PASS: ./intltest
DURATION: 27
END: /usr/lib/icu/ptest
2025-07-06T00:47
STOP: ptest-runner
TOTAL: 1 FAIL: 0

(From OE-Core rev: 4a729a529067a5ba7036a224cf330e31b8a5f838)

Signed-off-by: Daisuke Yamane <yamane07ynct@gmail.com>
CC: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-21 23:00:18 +01:00
Khem Raj
ac5f388cc8 clang: Upgrade to 20.1.8 release
Brings following fixes

* 87f0227cb601 [InstCombine] Avoid folding `select(umin(X, Y), X)` with min/max values in false arm (#143020)
* df43f93388b7 [PhaseOrdering] Add test for #139050 (NFC)
* 25bcf1145fd7 [RISCV] Fix assertion failure when using -fstack-clash-protection (#135248)
* 6fb913d3e2ec [RelLookupTableConverter] Drop unnamed_addr for GVs in entries to avoid generating GOTPCREL relocations (#146068)
* 0c9f909b7976 [AArch64][SME] Fix restoring callee-saves from FP with hazard padding (#143371)
* fa792cd4c630 [AsmPrinter] Always emit global equivalents if there is non-global uses (#145648)
* ce455b382c08 [objcopy][MachO] Revert special handling of encryptable binaries (#144058)
* 0de59a293f7a [X86] Ignore NSW when DstSVT is i32 (#131755)
* 9af763f038f7 [gtest] Fix building on OpenBSD/sparc64 (#145225)
* 1daceb20611f [LoongArch] Pass OptLevel to LoongArchDAGToDAGISel correctly
* b21155f97a0a [LoongArch] Precommit test case to show bug in LoongArchISelDagToDag
* da18fb9f04ce [LoongArch] Fix xvshuf instructions lowering (#145868)
* 65ce78f338cf [LoongArch] Pre-commit test for fixing xvshuf instructions. NFC
* 5532d5b745e4 [AArch64] Ensure the LR is preserved if we must call __arm_get_current_vg (#145760)
* 5ac3ce819688 [WebAssembly] Fix inline assembly with vector types (#146574)
* b83658b7e2c8 Bump version to 20.1.8

(From OE-Core rev: 4c6e132d6e5e49426c911d0fa9215957eb43f186)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-17 10:41:18 +01:00
Ricardo Simoes
9a0cd394a0 dosfstools: Add ptests
(From OE-Core rev: 875b8961221875e6a809d15b7d3b83ea00da0c0e)

Signed-off-by: Ricardo Simoes <ricardo.simoes@pt.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-17 10:41:18 +01:00
Michal Sieron
f3da837ad2 bitbake.conf: Remove PR glob part from STAMPCLEAN
Since OE-Core rev: cc83e45484656a6b577ff84817131735023daad4
the STAMP value and STAMPCLEAN glob have been mismatched. The
issue is present since the PR part was removed from the STAMP variable
in that comit.

An example use case that I found was broken due to this:

1. Have recipes foo_A.bb and foo_B.bb
2. Build foo-native with PREFERRED_VERSION_foo-native = "A"
3. ${COMPONENTS_DIR}/x86_64-linux/foo-native has version A
4. Build foo-native with PREFERRED_VERSION_foo-native = "B"
5. ${COMPONENTS_DIR}/x86_64-linux/foo-native has version B
6. Build foo-native with PREFERRED_VERSION_foo-native = "A"
7. ${COMPONENTS_DIR}/x86_64-linux/foo-native still has version B

In my case the PREFERRED_VERSION comes from different machines.
The issue showed itself when a bar-native compiled against foo-native
version A was pulled from sstate-cache and foo-native in version B was
kept in ${COMPONENTS_DIR} after previous build for a different machine.

The two variables should be in sync and this patch corrects that.

[RP: Tweak commit message]
(From OE-Core rev: 932be19f48735d72a72de2771911119433956f4f)

Signed-off-by: Michal Sieron <michalwsieron@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-14 17:51:42 +01:00
Ross Burton
322fc2fc75 lldb: add new recipe, split out of clang
LLDB takes a reasonable amount of time to compile, but also isn't an
essential component of the LLVM suite.

Instead of always building it when we build clang, split it out into a
separate recipe.

On my build machine where clang takes 21 minutes to build with lldb, it
takes 19 minutes without lldb.

(From OE-Core rev: 9da4900aa5a37718bd42f277d5a1805ec897b1b4)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-14 17:49:48 +01:00
Ross Burton
bd3792a7ad llvm-tblgen-native: add new recipe
Building the LLVM projects often means using the TableGen tools
(llvm-tblgen etc).

We currently build them as part of clang-native, but I am teasing the
clang recipe into its component parts and having to build llvm-native
or lldb-native simply for one tool isn't ideal.

Instead, add a native recipe that simply builds the tablegen binaries
for llvm, clang, and lldb

(From OE-Core rev: fbf63e03fe09ca74022c9d06442b4f1021b71d57)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-14 17:49:48 +01:00
Adrian Freihofer
1ee1b5fee4 bitbake.conf: fix pseudo for devtool deploy-target --strip
Without this fix:

devtool deploy-target cmake-example qemu1 --strip
...
cp: failed to preserve ownership for '.../cmake-example/1.0/devtool-deploy-target-stripped/usr/lib/libcmake-example-lib.so.1.0.0': Operation not permitted
cp: failed to preserve ownership for ...cmake-example/1.0/devtool-deploy-target-stripped/usr/lib/libcmake-example-lib.so.1: Operation not permitted
cp: failed to preserve ownership for ...cmake-example/1.0/devtool-deploy-target-stripped/usr/lib/libcmake-example-lib.so: Operation not permitted
cp: failed to preserve ownership for '.../cmake-example/1.0/devtool-deploy-target-stripped/usr/lib': Operation not permitted
cp: failed to preserve ownership for '.../cmake-example/1.0/devtool-deploy-target-stripped/usr/bin/cmake-example': Operation not permitted
cp: failed to preserve ownership for '.../cmake-example/1.0/devtool-deploy-target-stripped/usr/bin/test-cmake-example': Operation not permitted
cp: failed to preserve ownership for '.../cmake-example/1.0/devtool-deploy-target-stripped/usr/bin': Operation not permitted
cp: failed to preserve ownership for '.../cmake-example/1.0/devtool-deploy-target-stripped/usr': Operation not permitted
cp: failed to preserve ownership for '.../cmake-example/1.0/devtool-deploy-target-stripped': Operation not permitted
tar: ./usr/lib/libcmake-example-lib.so.1.0.0: time stamp 2025-07-06 16:46:06 is 0.527890738 s in the future
tar: ./usr/lib/libcmake-example-lib.so.1: time stamp 2025-07-06 16:46:06 is 0.527462566 s in the future
tar: ./usr/lib/libcmake-example-lib.so: time stamp 2025-07-06 16:46:06 is 0.526732779 s in the future
tar: ./usr/lib: time stamp 2025-07-06 16:46:06 is 0.526415655 s in the future
tar: ./usr/bin/cmake-example: time stamp 2025-07-06 16:46:06 is 0.52568721 s in the future
tar: ./usr/bin/test-cmake-example: time stamp 2025-07-06 16:46:06 is 0.525054415 s in the future
tar: ./usr/bin: time stamp 2025-07-06 16:46:06 is 0.524821739 s in the future
INFO: Successfully deployed .../cmake-example/1.0/devtool-deploy-target-stripped

With this fix:

devtool deploy-target cmake-example qemu1 --strip
...
INFO: Successfully deployed .../cmake-example/1.0/devtool-deploy-target-stripped

This is most probably related to the commit:
  2502da81709f25de499277b28d33c915638c45f6
  bitbake.conf/pseudo: Switch from exclusion list to inclusion list

(From OE-Core rev: 8b42b698ea13e1951f7bac4ddd89e13c9b0cb3a6)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-10 10:47:31 +01:00
Joshua Watt
860aedadc9 spdx30: Allow VEX Justification to be configurable
Instead of hard coding the VEX justifications for "Ignored" CVE status,
add a map that configures what justification should be used for each
status.

This allows other justifications to be easily added, and also ensures
that status fields added externally (by downstream) can set an
appropriate justification if necessary.

(From OE-Core rev: c0fa3d92cefa74fa57c6c48c94acc64aa454e781)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-03 10:40:17 +01:00
Khem Raj
4263516a5b clang: Upgrade to 20.1.7
Brings following fixes

* 6146a88f6049 [LoongArch] Fix '-mno-lsx' option not disabling LASX feature (#143821)
* 9ba132be8eea [clan-reply] Backport PTU error recovery to 20.x
* 199e02a36433 Disable clangd/test/module_dependencies.test on Windows
* 02aec86e4d0d [clangd] [Modules] Fix to correctly handle module dependencies (#142828)
* c4f257cb74b5 [llvm-rc] Allow ALT on non-virtkey accelerators (#143374)
* 6fa0cdf3720b release/20.x: [clang] Don't evaluate the initializer of constexpr-unknown parameters. (#142498)
* 337beb73abfe [libc++] Add _LIBCPP_NO_UNIQUE_ADDRESS to flat_{,multi}map::value_compare (#137594)
* b8e10ca59b6a [libc++] Fix check for _LIBCPP_HAS_NO_WIDE_CHARACTERS in features.py (#131675)
* 2da24c36c7df [libcxx] Provide locale conversions to tests through lit substitution (#105651)
* 253e9321c8b6 [release/20.x] Update release notes for SystemZ changes (#140060)
* acf86c5c4dbe [CVP] Keep `ReachableCaseCount` in sync with range of condition (#142302)
* 2481e590eec7 [AArch64][SME] Fix accessing the emergency spill slot with hazard padding (#142190)
* 22a3e6b19409 release/20.x: [AArch64] Handle XAR with v1i64 operand types (#141754)
* e5dd4f129454 [clangd] Guard against trivial FunctionProtoTypeLoc when creating inlay hints (#143087)
* f6532710ace8 [clang-format] Correctly annotate token-pasted function decl names (#142337)
* e0586e278f96 [RelLookupTableConverter] Drop unnamed_addr to avoid generating GOTPCREL relocations (#142304)
* 7759bb57c243 (origin/users/mizvekov/GH139019) [clang] Serialization: support hashing null template arguments
* 7cf14539b644 Bump version to 20.1.7

(From OE-Core rev: 293a471e0ee8c7f487b138d858c9b87a0e61c063)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-03 10:40:16 +01:00
Richard Purdie
243d54fd46 sanity: Require minimum of bitbake 2.15.1
This is needed for tinfoil and umask helper function changes.

(From OE-Core rev: d1c39b29f21719b349072c51a761fa19770a49ea)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:51:50 +01:00
Richard Purdie
6c8292de85 bitbake.conf/sstate: Introduce OE_SHARED_UMASK to standarise shared area umask
Currently, the "shared" directory permissions of sstate are hardcoded. Since
multiple areas of the code reference this, separate it out to a variable to
allow the behaviour to be configurable. Initially this applies to SSTATE_DIR.

(From OE-Core rev: ce32daa9843bcb5f6daf3560c64ca9e5144adcb0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Tim Orling
99d0842f16 python3-wheel: upgrade 0.45.1 -> 0.46.1; add ptest
* Add python3-packaging to RDEPENDS
* Enable ptest:
  - Add to ptest-packagelists.inc PTESTS_FAST
  - inherit ptest-python-pytest
  - Add python3-setuptools to ptest RDEPENDS
  - One test is skipped, but it requires the "full" python3-flit,
    not just python3-flit-core.

Comparing changes since 0.45.1:
https://github.com/pypa/wheel/compare/0.45.1...0.46.1

Release notes [1]:

0.46.1 (2025-04-08)
* Temporarily restored the wheel.macosx_libfile module (#659)

0.46.0 (2025-04-03)
* Dropped support for Python 3.8
* Removed the bdist_wheel setuptools command implementation and entry
  point. The wheel.bdist_wheel module is now just an alias to
  setuptools.command.bdist_wheel, emitting a deprecation warning on import.
* Removed vendored packaging in favor of a run-time dependency on it
* Made the wheel.metadata module private (with a deprecation warning if
  it’s imported
* Made the wheel.cli package private (no deprecation warning)
* Fixed an exception when calling the convert command with an empty
  description field

[1] https://wheel.readthedocs.io/en/stable/news.html

(From OE-Core rev: 610ca66283b6a440a1cde4c26945392ed15ac3e0)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Antonin Godard
d63c1d406f python3-sphinx-copybutton: add recipe
The sphinx-copybutton extension can be used to add a copy button to code
blocks in the documentation.

(From OE-Core rev: ebf14a6dc1a5fd041f4df4fd8c6f28da9d15c8f6)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Antonin Godard
8a2e01564b python3-sphinx-argparse: add recipe
This Sphinx extension can be used to autogenerate documentation for any
python module returning an argument parser from argparse. It can used in
places of the documentation where the --help output is currently
hardcoded, and generate formatted documentation instead.

(From OE-Core rev: 84d1a347195a3cd702468b01a71e787c3e007488)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Michael Halstead
9d336521db yocto-uninative: Update to 4.8 for GCC 15.1
(From OE-Core rev: f3bff45196bb8228d0133b6cd4444e5ddc68dbc2)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-26 11:02:34 +01:00
Yash Shinde
6c529c908c rust: Upgrade 1.86.0 -> 1.87.0
Rust stable version updated to 1.87.0.
https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/

* Update LLVM data-layout for arm64.
  LLVM requires matching data layouts and
  the aarch64 llvm data-layout was updated to to allow using
  32-bit signed/unsigned pointers when building 64-bit targets
  using 270, 271 and 272 address spaces.

  e985396145
  c9f27275c1

* Rebase existing patches with v1.87.0.

* Two tests from the `ui` and `codegen` modules now fail only on riscv64.
  Enable them on arm32/64 and x86-32/64 targets, while restricting
  them on riscv64 via `only-<target_arch>` tags.

  Test Results Summary:

  +-----------+--------+---------+
  | Machine   | Passed | Ignored |
  +-----------+--------+---------+
  | arm-32    | 28,320 | 901     |
  | arm-64    | 28,400 | 849     |
  | x86-32    | 28,285 | 885     |
  | x86-64    | 28,518 | 676     |
  | riscv-64  | 27,845 | 868     |
  +-----------+--------+---------+

* Backport triagebot.patch to skip tidy linkcheck when triagebot.toml
  is not present. Distribution tarballs won't include triagebot.toml,
  which causes tidy checks to fail.
  This backport ensures tidy checks can still run successfully
  even when the file is missing.

  https://github.com/rust-lang/rust/pull/142666/commits

* During rust installation, some binaries were installed from
  'stage2-tools' built path to '${D}${bindir}'. However, from
  v1.87 the stage2-tools are no longer built by default.
  Update logic to install from `stage1-tools` instead.

(From OE-Core rev: 16ce25e6970b4a50f6433606a0c87d22ec74ea5a)

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-26 11:02:34 +01:00
Dmitry Baryshkov
0d201a6fd7 default-providers: handle GLVND-related providers
If GLVND is enabled, then libglvnd is providing all OpenGL / ES
libraries. Tune default-providers.inc to select a correct package in
this case.

(From OE-Core rev: 28bc66ade84241f3f9b680d5c1fd8d261da4b413)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-24 13:51:31 +01:00
Dmitry Baryshkov
e9d69043cf libglvnd: migrate from meta-oe
libglvnd is a vendor-neutral approach to handling OpenGL / OpenGL ES /
EGL / GLX libraries. It has been proposed and initially implemented by
NVIDIA in order to simplify coinstallation of GL drivers provided by
different vendors. Major Linux distributions (Debian, Ubuntu, Fedora,
etc.) have already switched to libglvnd.

Having libglvnd in OE-Core simplifies integration of this ABI into
distro and BSP layers (e.g. it will help meta-tegra, which currently
provides its own version of the recipe).

Import recipe for libglvnd from the meta-oe layer (changes: fix virtual
package names, add add the SUMMARY data, drop git@ from SRC_URI, require
glvnd DISTRO_FEATURE).

(From OE-Core rev: 621e9be9663e448dde3f6b6a02b413fd65983e6c)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-24 13:51:31 +01:00
Dmitry Baryshkov
9941e6f292 qemux86-64: drop duplicates with default-providers.inc
default-providers.inc already includes PREFERRED_PROVIDER values for
xserver and GL libraries. Drop the same values being set in the machine
config.

(From OE-Core rev: 973875c79476b70edbef8976446de1be29d50910)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-24 13:51:31 +01:00
Dmitry Baryshkov
fa7c6cb96b qemux86: drop duplicates with default-providers.inc
default-providers.inc already includes PREFERRED_PROVIDER values for
xserver and GL libraries. Drop the same values being set in the machine
config.

(From OE-Core rev: 589a49c7bd68465163a86e71a67f518849860804)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-24 13:51:31 +01:00
Dmitry Baryshkov
6f014d1a53 qemu.inc: drop duplicates with default-providers.inc
default-providers.inc already includes PREFERRED_PROVIDER values for
xserver and GL libraries. Drop the same values being set in the machine
config.

(From OE-Core rev: 882e8c3cf28b33cdd6cb26ec412e63a0da8a3199)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-24 13:51:31 +01:00
Dmitry Baryshkov
67bc6419f0 default-providers: fix GLVND providers to be selected at runtime
The virtual-{libegl,libglx}-icd names are RPROVIDES, not PROVIDES,
because they are a runtime dependency of libglvnd. Make
default-providers follow that and specify PREFERRED_RPROVIDER instead of
PREFERRED_PROVIDER for those names.

Fixes: 9d3b4c9bc403 ("mesa: sort out PROVIDES for the glvnd case")
(From OE-Core rev: c2b4971e79ece23c43639865a617ee4c248fa981)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-24 13:51:31 +01:00
Richard Purdie
ec157ae344 layer.conf: Update to whinlatter release series
Since there are currently multiple breaking changes, update to a new
release series for the next release so layers can show compatibility
correctly.

(From OE-Core rev: 75eb26e71dba4096d5632b7f6b13db4f13aa6d7f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 13:07:15 +01:00
Alexander Kanavin
dc9faa3cdc meta: remove consecutive blank lines
Some of them were introduced by mass-removal of S = WORKDIR/git assignments;
rather than try to fix up (or redo) just these, I've run this sed command over
the whole tree:

sed -i -z -E 's/([ \t\f\v\r]*\n){3,}/\n\n/g' `find . -name *.bb -o -name *.inc`

The rationale is that more than one empty line is wasting vertical screen space, and
does nothing for readability.

(From OE-Core rev: cedc4ff7c9bcfb22a20e43e47f9759f4007a4f1a)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:07:27 +01:00
Alexander Kanavin
fc0f1b61c6 bitbake.conf: set S to be in UNPACKDIR rather than WORKDIR
This transitions most of the recipes to have their sources
in UNPACKDIR, which over time will allow more simple and logical
source code handling in various pieces of the Yocto project.

(From OE-Core rev: 50439f56b2d94769de928c70eebdfd4b47794fb4)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:07:26 +01:00
Alexander Kanavin
92dfe6e2f5 bitbake.conf: set UNPACKDIR to just 'sources' and not 'sources-unpack'
This is shorter and doesn't include the unnecessary task name, just the
result of it: source trees and files.

(From OE-Core rev: f19ea21c8ebf8ce211b14e69b27c82faf080185a)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:07:26 +01:00
Alexander Kanavin
f59a7df3fe meta: remove S in recipes that fetch from git via setting BB_GIT_DEFAULT_DESTSUFFIX
Removing all the S = ${WORKDIR}/git assignments works because BB_GIT_DEFAULT_DESTSUFFIX
is set to match S from bitbake.conf (which itself is set to match typical tarball
releases).

A few recipes are setting S to a sub-directory of the git tree and need
to be adjusted accordingly.

bzip2 recipe is fetching a tarball and separately cloning tests;
adjust the recipe to put the latter into 'bzip2-tests', instead of 'git'.

devupstream.bbclass no longer needs to rewrite S, and is adjusted accordingly.

Adjust scripts/lib/recipetool/append.py to not hardcode 'git' as unpack
destination.

Adjust kernel-yocto.bbclass to use the git unpack variable instead
of hardcoding 'git' (there's also removal of repetition of
string constants and a correction of workdir/unpackdir mismatch in
one of the if-else branches).

Ensure build-appliance-image recipe does not use 'git' as checkout directory for
poky repo, but rather explicitly name it 'poky'.

Ensure reproducible.py code that looks for git repositories does not
hardcode 'git' but uses the destination set by BB_GIT_DEFAULT_DESTSUFFIX.

Ensure recipetool does not write out unneeded S settings into newly
created recipes that fetch from git.

Adjust selftest to not hardcode 'git' as unpack directory.

(From OE-Core rev: f80c07019ddadaf9c5fb890faabfda7920ecd15e)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:07:26 +01:00
Alexander Kanavin
41de71e062 bitbake.conf: enable built-in fragments for MACHINE and DISTRO
Please see the patch for bitbake for rationale. With this
setting in place, it's possible to set

OE_FRAGMENTS += "distro/poky machine/qemuarm"

and bitbake will interpret that as

DISTRO = "poky"
MACHINE = "qemuarm"

(From OE-Core rev: e959f916b4d2bb8af2e6a04116de9430bbde0c9f)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:03:37 +01:00
Mark Hatle
3c5c4cfa6b riscv tunes: ISA Implementation of RISC-V tune features
This implements the following base ISAs:

* rv32i, rv64i
* rv32e, rv64i

The following ABIs:
* ilp32, ilp32e, ilp32f, ilp32d
* lp64, lp64e, lp64f, lp64d

The following ISA extension are also implemented:
* M - Integer Multiplication and Division Extension
* A - Atomic Memory Extension
* F - Single-Precision Floating-Point Extension
* D - Double-Precision Floating-Point Extension
* C - Compressed Extension
* B - Bit Manipulation Extension (implies Zba, Zbb, Zbs)
* V - Vector Operations Extension
* Zicsr - Control and Status Register Access Extension
* Zifencei - Instruction-Fetch Fence Extension
* Zba - Address bit manipulation extension
* Zbb - Basic bit manipulation extension
* Zbc - Carry-less multiplication extension
* Zbs - Single-bit manipulation extension
* Zicbom - Cache-block management extension

The existing processors tunes are preserved:
* riscv64 (rv64gc)
* riscv32 (rv32gc)
* riscv64nf (rv64imac_zicsr_zifencei)
* riscv32nf (rv32imac_zicsr_zifencei)
* riscv64nc (rv64imafd_zicsr_zifencei)

Previously defined feature 'big-endian' has been removed as it was not used.

(From OE-Core rev: bcaf298a146dfd10e4c8f44223ea083bc4baf45c)

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 09:52:28 +01:00
Trevor Gamblin
e7c2d33df4 maintainers.inc: sort Python recipes alphabetically
There are a small number of these that are out of place, so re-sort the
entire list to clean it up.

(From OE-Core rev: 76d681c4b17c9169238c571bae7e25df2040960c)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-19 21:54:44 +01:00
Trevor Gamblin
474ffe5684 python3-colorama: add recipe
Add existing recipe from meta-python, since pytest lists it as a
dependency. This also puts it in maintainers.inc with myself as
maintainer.

[RP: Switch to use hatching directly]
(From OE-Core rev: 8c06239fdcf983dac759c7d80d6326807c993622)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-19 21:54:44 +01:00
Poonam Jadhav
eb9b83d6c9 libpng: Add ptest
Install libpng test-suite to run it as a ptest.
As the test-suite takes more than 30 seconds to run,
add libpng-ptest to PTESTS_SLOW in ptest-packagelists.inc

(From OE-Core rev: 8dca5305c950e6a06b3f344ffdbbb7386d802095)

Signed-off-by: Poonam Jadhav <poonam.jadhav@kpit.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-19 21:54:43 +01:00
Richard Purdie
98797b59d8 cross/crosssdk: Allow deferring of these classes too
(From OE-Core rev: 2e568ba8607a6f65caea891df9bc9341988aaf37)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-16 22:26:38 +01:00
Richard Purdie
5d2e514373 bitbake.conf: Automatically defer native and nativesdk inherits
(From OE-Core rev: ede97945ccabc7ace79a380be400357bbb8df80d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-16 22:26:38 +01:00
Richard Purdie
5317a214c5 toolchain: Provide abstraction for recipe specific toolchain selection
This change implements a toolchain selection mechanism. Selection is
made using a set of variables, primarily PREFERRED_TOOLCHAIN_TARGET which
defaults to gcc.

It uses the familiar name for toolchain e.g. "gcc" which selects GNU
compiler + binutils as default C/C++ toolchain or "clang" which will
use LLVM/Clang Compiler. Layers an add their own toolchain definitions
too.

There are also PREFERRED_TOOLCHAIN_NATIVE and PREFERRED_TOOLCHAIN_SDK
which will ulitmately allow selection of the toolchain used for the
native/cross and nativesdk/crosssdk compilers. This currently isn't
functional but is essential to the patch to ensure things are set
to the existing gcc support in those cases.

Users would most commonly want to set:

PREFERRED_TOOLCHAIN_TARGET ?= "clang"

in local.conf or other distro specific global configuration metadata.

It is also selectable at recipe scope, since not all packages are
buildable with either clang or gcc, a recipe can explicitly require
a given toolchain using the TOOLCAHIN variable, e.g. glibc can not
be built with clang therefore glibc recipe sets:

TOOLCHAIN = "gcc"

The TOOLCHAIN variable is distinct from the user preference so recipes
with specific requirements can be identified. This also allows different
polcies to be be specified for native/SDK cases in the future.

(From OE-Core rev: 45bdedd213aff8df3214b95ef2a8551c0abd93a0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-16 22:26:38 +01:00
Richard Purdie
bb4dd2e54d sanity.conf: Bump bitbake requirement to 2.15.0
This brings in the features we need to toolchain selection.

(From OE-Core rev: 78c1061dc3916677bd9c2825820a1bab7e75f28a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-16 22:26:38 +01:00
Ross Burton
19953c90ce default-distrovars: set an empty default for LICENSE_PATH
This variable is a list of paths that contain extra license texts. It
doesn't have a default so can be unset.

(From OE-Core rev: 9c8e180d8d2637307cd7deeec5b2df7dbc946221)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-16 17:57:30 +01:00