If we are only tracking stdout and are not using self.readsock we end
up throwing an exception blocking further action from the thread. Fix
this by checking self.readsock is not None first.
While we are at it split even into fd, event to make things clearer
and handle the fail path of stringify_event by echoing the hex value
of the unknown flag.
(From OE-Core rev: 5e58737c66090fe009ec49296f3e7d687eb05766)
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Mikko Rapeli <mikko.rapeli@linaro.org>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Qemu wants to use a supported python version and a specific meson version
to "help" users and uses pip and creates a venv to do this. This is a nightmare
for us. Our versions stay up to date and should be supported so we don't
really need/want this wrapping. Tweak things to disable it.
There was breakage from the wrapper shown by:
bitbake qemu-system-native
<add DISTRO_FEATURES:remove = "opengl" to local.conf>
bitbake qemu-system-native -c configure
which would crash. The issue is the change in configuration removes pieces
from the sysroot but pyc files remainm as do pieces of pip which causes
problems.
(From OE-Core rev: aceef7785e637a0223ecf288e2f367b6bee4a505)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Move the common dependencies to qemu.inc for cleaner entries in the
various recipes. Remove an unneeded inherit.
(From OE-Core rev: 6e7c2ae575b8f04fd117cc56980bb25113f343a8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The PGO (Profile-guided Optimization) collect data about the typical execution of a program
and then use this data to inform optimizations such as inlining, machine-code layout,
register allocation, etc.
This optimization is by default disabled in rust sources but enabled in Yocto and causing
the reproducibility issue in rustdoc binary. To fix the issue this optimization is set to
it's default 'false'.
More about the optimization: https://doc.rust-lang.org/rustc/profile-guided-optimization.html
With the reproducibility issue fixed, we can enable the reproducibility tests again.
(From OE-Core rev: 189c266378c8c4a918cb205b3888577c7ce76856)
Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The assembler sections in OpenSSL were not marked as valid call targets,
so branch protection could not be enabled for libcrypto.so.
(From OE-Core rev: 4bf06bc5487da05e6b4a4895e5ca2da65cdc25d8)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add packageconfig to control if tests are installed or not. Doing this
allows the libcheck dependency to be optional. The packageconfig
defaults to having tests enabled when PTEST_ENABLED == 1 to match the
previous behavior
(From OE-Core rev: d15b482a5858612c8c88c739b51de579945d7cb2)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since switch from Makefile to meson based build,
the version is no longer hardcoded but queried from git tag.
This works only if git history is available.
When shallow tarballs are used, tag is not available.
Example error for trusted-firmware-a from meta-arm:
dtc version too old (039a994), you need at least version 1.4.4
Backport also patch to fix version in meson file.
(From OE-Core rev: 319f5d8a32d1f4a71ac997ce4522249b08f84945)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
E2FSPROGS_FAKE_TIME: sets fixed times for the inodes in the file system.
hash_seed: creates reproducible directory indexes in the file system.
Reference commit in e2fsprogs: e1f7100643a46456be107b33098f6034b0835e6d
(From OE-Core rev: bb822ab75de0020572058090439b93cc56bbf7e0)
Signed-off-by: venkata pyla <venkata.pyla@toshiba-tsip.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I couldn't find any evidence of it actually being
required at build or run time.
(From OE-Core rev: a28cd31784592f7cd460320a5c2cf41a86829255)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The only consumer in oe-core was dnf, and latest dnf releases no longer
use it. There are no consumers in meta-oe.
gpgme's python support is generally a pain to support, and lags
behind upstream python versions. It was enabled in
commit fc6c81da79
Author: Mark Hatle <mark.hatle@windriver.com>
Date: Tue Mar 7 12:54:33 2017 -0600
gpgme: Fix issue building for the target
which wasn't prompted by any consumer requiring python,
but rather to correct build errors in absence of specific
configuration passed in.
(From OE-Core rev: 6d82ce8c16e724d5bba088b3a3d05c1690e47862)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream has made the needed fixes (not easy to backport), but
hasn't released a new version with them. Distutils has been
removed from the core python library in 3.12.0.
(From OE-Core rev: 234a02419bce1f46deb202ce0a3bbe38835e0997)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
g-i still uses distutils in various places, and upstream MRs and tickets
aren't getting a lot of traction. As distutils is gone from the core
library in python 3.12, rely on setuptools copy.
(From OE-Core rev: 2872aa59d24505b1088d570453e4ec6c83974cc9)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was accidentally disabled in the 3.7.2 upgrade in 2019[1] where PGO
was made target-only. Change the wrapper script generation so that it
happens in all environments but class-native.
[1] oe-core 02714c105426b0d687620913c1a7401b386428b6
(From OE-Core rev: 96a9964d6071dc614cec06a4f0712e257de2bc8b)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As per the Arm ARM section A2.3.2, FEAT_CRC32 is mandatory in Armv8.1
onwards, so there's no need to have an explicit optional tune for it.
SVE (which was a choice here) and SVE2 (which was not) are both optional
with v9.0, but GCC's -march=armv9-a defaults to enabling both SVE and
SVE2 on the grounds that there are no implementations of Armv9 that
don't support SVE2. This means there's no point having an explicit sve
feature as it's enabled out of the box.
(From OE-Core rev: 28fabebf812cdf8e76eb508115a4b76944f1e729)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This gets into a quessing mode if not specified and it it probelamactic
for native version since it maybe built on a machine having pipewire
installed and used on another where pipewire is not installed (
minimal CI builder ) it ends up with
runqemu - ERROR - Failed to run qemu: /mnt/b/yoe/master/build/tmp/work/x86_64-linux/qemu-helper-native/1.0/recipe-sysroot-native/usr/bin/qemu-system-x86_64: error while loading shared libraries: libpipewire-0.3.so.0: cannot open shared object file: No such file or directory
(From OE-Core rev: 0d63cadd4523e60d4959284a81fbe47da88834fa)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a minimal initramfs image recipe that just contains enough initramfs
to find the real root filesystem and pivot to it.
BSPs can use MACHINE_EXTRA_RRECOMMENDS to pull in any kernel module
packages that are required to bring up the hardware so that the rootfs
can be found.
(From OE-Core rev: 3e862cddf28e58957b7c6d9c983fdb40eb5442fb)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Verify that an existing layer path was given when adding a new
layer.
Manually using the shell for globbing is unnecessary, use the glob
function instead for cleaner code.
(Bitbake rev: fe0881615896de844141393b21a121f7c3fa9d16)
Signed-off-by: Marta Rybczynska <marta.rybczynska@syslinbit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The errors causing faileds on functional_basic are dû to the delay between actions,
increase between driver actions.
(Bitbake rev: e8f8f6203b63c46249673e80872fea40475f6875)
Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The target_dumper code is basically broken. It has been reading binary files
over the text base serial communication and runs at every command failure which
makes no sense. Each run might overwrite files from the previous run and the
output appears corrupted due to confusion from the binary data.
For now, remove the commands and the target dumper code as the command
and execution point are problematic. Also remove the same pieces of the monitor
code but leave the command list since in theory this can be moved to a more
useful place in the code.
(From OE-Core rev: a24d787987dccc95fdd95b7e85bf525a1c55b285)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Whilst debugging an autobuilder failure, I wondered why it was rebuilding qemu-system-native
instead of reusing from sstate. The reason was it was overwriting DISTRO_FEATURES,
in this case removing opengl which caused much to rebuild.
The test doesn't need that so don't do it.
(From OE-Core rev: fdcc011608fd9558a081d0ace3eaf7192d9fcaef)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Similar to stdout in the previous commit, we need to ensure serial output
if written is read and put somewhere, else qemu might block on writes to
the serial port leading to hangs in the kernel. Use our existing logging
thread to log data when run_serial is not in use.
(From OE-Core rev: 05761282ba31e4ba3594f7321e2162d01fe12a5f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need to ensure we read from and log the output from qemu stdout
as otherwise the buffers can fill and block, leading qemu to hang.
Use our existing logging thread to do this.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
(From OE-Core rev: a9c46ee014ef1e6436b39fdd4fd15d15388ea795)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wtmp is filled with binary data which the run_serial command can't cope with.
Catting this results in confusion of the serial interface and potentially large
backlogs of data in the buffers which can hang qemu.
Exclude the problematic files from the command.
(From OE-Core rev: 599ac08a6f6fb3f6a89a897c8e06367c63c2f979)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After systemtap commit 2e67b053e3796ee7cf29a39f9698729b52078406
"configury: rework debuginfod searches" automatic detection of
libdebuginfod is broken. Let's handle it explicitly with debuginfod
package feature. It is good to have such feature anyway.
(From OE-Core rev: ba5098fcf2fc771da8790cb2ac4ea8fef4816413)
Signed-off-by: Victor Kamensky <victor.kamensky7@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The state directory must be correctly specified as under /run because
RequiresMountsFor doesn't follow symbolic links which means the unit may
run before /run is mounted if the default of /var/run/rpcbind is kept
(From OE-Core rev: 561e853e97e2cfa325ed310233577a5e124d9049)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adds the path to the runtime state directory (/run). In particular,
systemd units need to have the correct path to the runtime directory
because RequiresMountsFor doesn't follow symbolic links. This means that
if a unit calls out a directory in /var/run (a symbolic link to /run),
it may actually start before /run is mounted. The fix is to have the
unit specify a directory in /run instead.
(From OE-Core rev: 90bc18108230f6d41a50cebc8348444e119e95bf)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These test suites are full of timing-sensitive test cases, so skip
them too.
[ YOCTO #15321 ]
(From OE-Core rev: dd06c3668dbe9ec1cf9a0a84d7a6bc9851f9c662)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
pkgdatadir is a versioned directory by default now so we don't need to
pass it to EXTRA_OEMAKE.
6e4a8df5cb
(From OE-Core rev: 3a58f8055374f89d9c91faa328093394aecfe2a4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix regex to not match release candidates.
(From OE-Core rev: 1423a69a1ddc54c62ca3431f062b35d2fef68ac2)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>