BUILD_LDFLAGS is used by other recipes to emit native LDFLAGS
into their cmake toolchain files especially in QT layers. it
will usually be inherited by recipes wanting clang provide
BUILD_* variables so this is more appropriate than LDFLAGS to
pass these options.
(From OE-Core rev: f258d6e437a68bfd8a46f185cbeb17bfcccf940b)
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>
The pep517 class no longer called the "build" module directly, so we
can't play games with PYTHONPATH here.
However, the flit_core class has a bootstrap method so this recipe can
use that instead.
(From OE-Core rev: ae85c85b28fd01591ace2f48159cdc7fbc05a26a)
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>
The build package installs an entry point now, so we run that instead of
calling the module directly.
(From OE-Core rev: e064e71b4003666de1644f8e3c08ed6844d710e5)
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>
The tarball includes the relevant M4 macros, so autoconf-archive is not
needed to reconfigure.
(From OE-Core rev: 82c96be0ccda5077d279c1182875d14f16bb6e7b)
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>
The tarball includes the relevant M4 macros, so autoconf-archive is not
needed to reconfigure.
(From OE-Core rev: fedce59511b41d772a394dba5a5abf27e0a0ac05)
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>
The tarball includes the relevant M4 macros, so autoconf-archive is not
needed to reconfigure.
(From OE-Core rev: 587c42e7f61a0bda04add1e8252f049a8ddf4087)
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>
The canonical git repository is on GitHub now, 01.org doesn't exist, and
one of the patches has been upstreamed.
(From OE-Core rev: cf9c56d772443ee79cf9ad6e40061b6399ceccdf)
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>
The optimization viewer is a web-based tool that helps developers visualize
and analyze LLVM's optimization passes. It generates reports showing
Which optimizations were applied to specific functions.
Why certain optimizations were or weren't performed.
Performance remarks and missed optimization opportunities
Interactive views of the optimization pipeline.
Its a nice add-on, keep it disabled by default.
(From OE-Core rev: 70c43e35fb7ce0b71f28a91a1864f02338545522)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The environment has variables like LDFLAGS set which CMake will try and
use, so until our cmake class is comprehensive enough to nuke those in
the native toolchain file (if that is possible) do a build inside a
clean (apart from PATH) environment to avoid cross-contamination.
As noticed by Khem Raj, this can fail in nativesdk builds as the target
flags will be passed to the native link resulting in failures like:
Requesting program interpreter: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-yoesdk-linux/lib/ld-linux-x86-64.so.2
(From OE-Core rev: 0013f501d1de01606b812d930ef6ca842633f551)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We want to release compressed images since these are much easier for
users to download. Change the default generated output to match this
and build the output we want to release directly.
One test needs tweaking to since it uses an uncompressed image.
(From meta-yocto rev: 506379cb241e6a865139307e06216a07f737b602)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
We don't need to preserve changes to these images so use snapshot mode
so we don't save writes to them.
(From OE-Core rev: da939d122fc77c86f13a087a387edaa8d39d9dbb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update the interal list of types within runqemu with the newly added
compression formats it supports.
This fixes autodetection of qemuboot file locations.
(From OE-Core rev: 46b9a1c74df00f76f7c19b5ed27e6a569aaabb5e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add compressed image types that are now supported to the supported
fstypes list.
(From OE-Core rev: 2e2406213347ad294e301de45ff5be59292bdc3b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With snapshot enabled, no change on rootfs will be saved after qemu
shutdown. Since this is not what a user might expect, print the snapshot
mode state and its consequence in console at runqemu start.
(From OE-Core rev: 57fe8538a87ff1f69f274d9692f038caed6cb5cd)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using a .wic.zst image, its fstype is detected by default as
".zst" which prevent booting correctly.
Fix this by adding wictypes (and vmtypes while at it) to the list of
known fstypes. After this fix, the initial fstype is correctly ".wic.zst".
(From OE-Core rev: 26b0922977d1bfcf47bbccf624be86e9e2b8815a)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a simple tests booting a compressed image given to runqemu as path
and as image recipe name.
(From OE-Core rev: b5f8c3e02980df0e8e44de32ed8b3b869a1fcd83)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Enhance runqemu to detect and decompress .zst-compressed rootfs images
(e.g. ext4.zst, wic.zst) automatically. If a decompressed image already
exists in the original directory, it will be reused to avoid overwriting
build artifacts. Otherwise, the image is decompressed and removed after
the QEMU session ends.
This allows runqemu to be used seamlessly with compressed image formats
generated by the build system or during releases.
Note: support for .zst images is only available when snapshot mode is
enabled
IMPORTANT:
This patch assumes that the original directory of the .zst-compressed
image is writable. If, for some reason, the path passed from CI or
another system to the script is read-only, the decompression step will
fail when trying to write the uncompressed image to the same directory.
(From OE-Core rev: e069fe2480c871c649b83f6278564a553cc3dd58)
Signed-off-by: Lamine REHAHLIA <lamine.rehahlia@smile.fr>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* 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>
'cross' dependencies are hard, the code currently handles adding MLPREFIX
in these cases but may not in future depending upon implementation.
Add the correct value explictly.
(From OE-Core rev: 8393be1792cee0fbe76d75fd20a97dda41134880)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
Prior to commits:
* 11277efd057685558a744e98082b5709e849dd2a
* d0e8b83d05957b1f22d08582e364afa4b522801e
the tests were skipped if package was not available.
Now the code calls function ensure_host_package which says
"try to sdk-install missing dependencies", however in fact for sdkext it
causes a failure if the installation is not available.
Since maturin is not installed in any image, it cannot be installed
unless it's downloaded from sstate-cache mirror populated by a world
build. These builds are however now not done for powerpc and mips.
IT also does not work in local builds without sstate-cache mirror.
Fix this by skipping the test if the package cannot be installed to
match the original behavior before those commits.
(From OE-Core rev: bd2096c89a4a00927a52d07145aad528dc86b81c)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Cc: Ross Burton <ross.burton@arm.com>
Cc: 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>
Per documentation, subprocess.CalledProcessError exception has stderr
filled out only for run method, it's None for check_output method.
So serialize it only if it's not None.
Avoids:
File "<poky-dir>/meta/lib/oeqa/utils/subprocesstweak.py", line 15, in __str__
s = s + "\nStandard Error: " + strify(self.stderr)
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str
(From OE-Core rev: d13f444468b4b10f913b3cf01d7d13ef9d42838e)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The removal of the Red Hat initscript has been redundant since 2017[1].
The test directory is not installed, so there's no need to remove it.
(From OE-Core rev: 904b6967ad4730ae32aad785d6b53ca3f5af2cd4)
Signed-off-by: Ross Burton <ross.burton@arm.com>
[1] dbus: 708a44d0 ("Remove distribution-specific init-scripts")
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is actually only used in a single test that we don't build, so
explicitly disable DBus instead of offering a PACKAGECONFIG that doesn't
do what you might expect (enable some systemd/dbus integration).
This doesn't change behaviour as this option wasn't enabled by default.
(From OE-Core rev: bed605e7cd095f210e24f1e07dab6f814d0bbb59)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Removed c11 flag, as it seems to build fine now with default flags.
ptests passed:
All 38 tests were successful.
DURATION: 11
END: /usr/lib/gdbm/ptest
2025-08-01T18:37
STOP: ptest-runner
TOTAL: 1 FAIL: 0
Changelog:
1.26:
- Fixed build with musl libc
- Fixed build on MacOS
- Improved testsuite
1.25:
- New function: gdbm_open_ext
This function provides a general-purpose interface for opening and
creating GDBM files. It combines the possibilities of gdbm_open and
gdbm_fd_open and provides detailed control over database file locking.
- New gdbmtool command: collisions
The command prints the collision chains for the current bucket, or for
buckets identified by its arguments.
- Pipelines in gdbmtool
The output of a gdbmtool command can be connected to the input of a
shell command using the traditional pipeline syntax.
- Fix a bug in block coalescing code
(From OE-Core rev: 5f4c806ba9fe2385891b46098b313a858daf8103)
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This started to fail with rust 1.88, due to rust libc
upgrade
(From OE-Core rev: f9145bc8bec77e1f454f80c4e5576567daa99ac8)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLDB Uses SWIG to generate python bindings, however
LLDB is no longer part of clang anymore, its a
separate recipe.
(From OE-Core rev: deda1e227dbdcb04c7bfb0ad0afef6ff05674c4f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
None of these recipes need a native build of Python as they don't depend
on native Python modules, nor build Python modules against the target.
(From OE-Core rev: e0da53fca5ec30d883216bfb0be7d96ad597aa69)
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>
Now that lldb has been split out of the clang recipe, there's no need
for the clang recipe to have Python integration beyond the current
Python major version for installing the libclang bindings, which can be
done by simply inheriting python3-dir.
The installation of six.py was done by lldb, and was removed in LLVM 16.
(From OE-Core rev: 5cbe58c604233a0d367e1bb1e3fce0492ae0e836)
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>
Specifically, c-index-test is a 35MB binary which isn't needed if we're
not running the tests.
(From OE-Core rev: a61c3ab08039d382ec2216b8a5deaf256d7bf9c5)
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>
This was added by a certain Mr Burton back in 2016[1] to avoid needing
to depend on perl-native or python3-native, and use the host perl and
python.
However, perl is no longer needed and python3-native is depended on
because the Python bindings are build, so this is now redundant.
[1] meta-clang: 2e003cc ("clang: don't depend on native perl or python")
(From OE-Core rev: 540b02e0fb168fade2afc1d657463c7e0248ae94)
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>
As a single clang-native build is a cross-compiler for all targets, this
recipe should simply create target-prefixed symlinks.
As such, it doesn't need to pull in the common clang include files, or
set TOOLCHAIN.
Unsetting PACKAGES isn't needed as cross inherits nopackages.
The sysroot preprocessing is used to stage bindir, but cross recipes
already stage this directory.
There doesn't appear to be a need to copy clang, so these are now linked
too.
SSTATE_SCAN_FILES only works on actual files not symlinks, so setting it
is pointless.
(From OE-Core rev: 5d96ed55acf7b9a908241222097ad809355de7cf)
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>
This file can be used for nativesdk builds, which if they are using the
clang toolchain will also need compiler-rt and libcxx.
(From OE-Core rev: 24c32edb1b29a0746bb4470fea11e87b8027d9f9)
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>
At the moment we don't allow ccache for native recipes to avoid the
dependency loop of native recipes needing ccache-native which then
depends on itself.
One way to avoid this dependency loop is to just provide a host ccache,
so enable ccache globally if ccache is in HOSTTOOLS. This isn't set
out of the box, but does work.
(From OE-Core rev: cc91a0f6500e88dd96a56307226fcfd16c60c342)
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>
License-Update: the code that was ZPL-licensed has been removed[1].
Explicitly set a non-GPLv3 LICENSE on the output package as we don't
actually ship the GPLv3 file.
This fixes the incorrect hashbangs, so we can remove the manual seds.
(From OE-Core rev: b2a105d753310eda94ccf22ec89c276fd2b30dd9)
Signed-off-by: Ross Burton <ross.burton@arm.com>
[1] https://sourceforge.net/p/docutils/code/9977/
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of using the setuptoools class but not using setuptools, use the
new python_pdm class.
(From OE-Core rev: 8f8e4c3e49254853e90080494f2a77b7bdb14921)
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>
Instead of using the setuptoools class but not using setuptools, use the
new python_pdm class.
(From OE-Core rev: bfd94bb972e5a1a4054891694c1b4e674eeb2bb8)
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>