Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Mon, 19 Aug 2019 16:42:58 +0000 (09:42 -0700)]
libffi: Upgrade to 3.3-rc0
libffi 3.1 release has been a bit aged and new architectures, compilers
have since been come on stage to compile it, we have been carrying
patches, but its better to use the latest 3.3 rc0 which has lot of these
issues handled and is in good shape.
Use 3.3~rc0 for PV to keep room for upgrade path without PE bump
fix the multilib header conflict
file /usr/include/ffi.h from install of libffi-dev-3.2.1+3.3+rc0-r0.core2_32 conflicts with file from package lib64-libffi-dev-3.2.1+3.3+rc0-r0.x86_64
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Fri, 16 Aug 2019 17:33:00 +0000 (10:33 -0700)]
gcc: Search in OE specific target gcclibdir
We put gcclibir to be /usr/lib/<arch>/... and not default
usr/lib/gcc/<arch>, therefore make the include search path also look
into this directory, this should help in finding gcc headers like omp.h
Hongxu Jia [Tue, 20 Aug 2019 05:45:18 +0000 (01:45 -0400)]
nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd
On systemd, it set RLIMIT_NOFILE to 512k, since do_testimage
for core-image-sato-sdk has memory limitation (256Mib) which
caused rpc.statd failed with out of memory.
[ 531.306146] Out of memory: Kill process 193 (rpc.statd) score 200 or sacrifice child
The rpc.statd and rpc.mountd allocates memory according to
RLIMIT_NOFILE, so decrease it to 4k to keep sync with sysvinit
After applying the patch, the memory cost is the same with sysvinit:
root@qemux86-64:~# systemctl status nfs-statd
* nfs-statd.service - NFS status monitor for NFSv2/3 locking.
Loaded: loaded (/lib/systemd/system/nfs-statd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-08-20 03:16:18 UTC; 3min 26s ago
Main PID: 343 (rpc.statd)
Tasks: 1 (limit: 271)
Memory: 1.0M
root@qemux86-64:~# systemctl status nfs-mountd
* nfs-mountd.service - NFS Mount Daemon
Loaded: loaded (/etc/systemd/system/nfs-mountd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-08-20 03:19:01 UTC; 1min 21s ago
Main PID: 451 (rpc.mountd)
Tasks: 1 (limit: 271)
Memory: 736.0K
Ross Burton [Wed, 21 Aug 2019 10:57:03 +0000 (11:57 +0100)]
systemd: add PACKAGECONFIG for gnu-efi
Add a PACKAGECONFIG for gnu-efi, by default the meson.build looks explicitly in
/usr/include and /usr/lib for gnu-efi, and if it is present on the host the
build will fail.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mingli Yu [Mon, 5 Aug 2019 09:38:18 +0000 (02:38 -0700)]
python3: fix the test_locale output format
Before this patch:
# python3 -m test -v test_locale
[snip]
test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9') ok
[snip]
After this patch:
# python3 -m test -v test_locale
[snip]
test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9')... ok
[snip]
Make the test ended with "... ok" is common in python
unittest world, we should make it keep consistent
with other test cases in case it may be ignored to
record in the report if we use the common filter
"... ok".
Signed-off-by: Philippe Normand <philn@igalia.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jaewon Lee [Thu, 13 Jun 2019 23:29:48 +0000 (16:29 -0700)]
devtool: build: Also run deploy for devtool build if applicable
Right now `devtool build` runs populate_sysroot and packagedata tasks.
Adding deploy to this list, if the recipe has the deploy task, so that
the newly built artifacts are available in the deploy directory.
Applicable only for packages with deploy task, such as kernel.
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jon Mason [Sun, 2 Jun 2019 18:29:13 +0000 (14:29 -0400)]
resulttool: Prevent multiple results for the same test
Currently, if a test occurs multiple times over different series, the
code will sum these. This can lead to confusion over the desired
results. Change the code to report the redundant tests and skip adding
an additional values.
Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than repeatedly calling mc_from_tid() do this in the parent,
removing around a million function calls. Takes time spent in this
function from 40s to 36s.
Richard Purdie [Fri, 16 Aug 2019 12:11:04 +0000 (13:11 +0100)]
bitbake: runqueue: Optimise holdoff task handling
We don't need to process the holdoff task list until we're executing tasks
which saves some data manipulation, at the cost of some data structures
not being correct at all times. This saves significant amounts of time
in various profile charts of larger builds.
Richard Purdie [Fri, 16 Aug 2019 14:41:32 +0000 (15:41 +0100)]
bitbake: runqueue: Small but critical fix
We've observed do_package and do_package_setscene running in parallel. The
reason is that holdoff_tasks wasn't getting updated. Looking at the code, it
would seem the reason is that the task was in pending_migrations and hence
changed wasn't set and holdoff_tasks wasn't updated.
Fix this. It only affects builds with rehashing enabled.
Richard Purdie [Wed, 14 Aug 2019 21:36:41 +0000 (22:36 +0100)]
bitbake: cookerdata: Delay the setup of the siggen slightly to allow metadata defined siggens
If we define a metadata siggen it can fail due to the early init here. Move
slightly later to avoid those failures which allows fixes in OE to the
check-layer script related to the hash equiv siggen.
Alistair Francis [Tue, 20 Aug 2019 20:59:17 +0000 (13:59 -0700)]
qemuriscv64: Specify the firmware as a bios instead of kernel
Now that we have a -bios option for the RISC-V virt machine in QEMU we
can pass OpenSBI in via -bios and the kernel in via -kernel. We no
longer need to pass the kernel in via -device loader so let's remove
that.
Jason Wessel [Fri, 16 Aug 2019 21:06:05 +0000 (14:06 -0700)]
libc-package.bbclass: Split locale hard link processing into two parts
The locale-processing in cross-localedef was proven to be unsafe to
run in parallel due to the way it tried to make hard links to files
that could disappear before the link operation was completed.
To avoid corruption of the pseudo database, and create a
deterministically generated link tree, the operation of the locale
generation and the hard link resolution have been split into two
separate parts. A side effect of this change is that the do_package()
rule for glibc-locale will be slightly smaller because some of the
hard links were missed in the past, particularly if you had a lot of
cpus free to perform the work.
Before the patch:
% du -sk locale-tree
312524 locale-tree
With the patch:
% du -sk locale-tree
290772 locale-tree
A number of comparisons were performed such as diffing the output,
cross checking the link references using tar's listing output, and
comparing against the results with out a parallel build to ensure the
locale-tree is correct in its final form.
Jason Wessel [Fri, 16 Aug 2019 21:06:04 +0000 (14:06 -0700)]
cross-localedef-native: Add hardlink resolver from util-linux
The hard link resolver that is built into localedef cannot be run in
parallel. It will search sibling directories (which are be processed
in parallel) and perform a creation of a .tmp file and remove the
original and move the .tmp file in. The problem is that if a probe
occurs a hard link can be requested to the file that is being removed.
This will lead to a stray copy or potentially, on a loaded system
cause race condition which pseudo cannot deal with, where it is left
with a hard link request to a file that no longer exists. In this
situation psuedo will inherit the permissions of what ever the target
inode had to offer.
In short, there are two problems:
1) You will be left with stray copies when using the hard link
resolution that is built in while running in parallel with
localedef.
2) When running under pseudo the possibility exists for uid/gid
leakage when the source file is removed before the hard link can
be completed.
The solution is to call localedef with --no-hard-links and separately
process the hardlinks at a later point. To do this requires the
inclusion of the hardlink utility found in modern versions of
util-linux. Most host systems do not have this, so it will be
included with the cross-localedef binary.
There are two patches here. The first imports the raw version of
hardlink.c and a couple of header files directly from util-linux. The
second patch applies the fix-ups to make it compile, along with a
change to recipe to package the new binary.
Kevin Hao [Mon, 19 Aug 2019 09:27:15 +0000 (17:27 +0800)]
psplash: Avoid mount the psplash tmpfs twice
The /etc/init.d/psplash.sh will be invoked both in boot and
shutdown/reboot. And the psplash tmpfs will be mounted twice. This
will trigger a bug in umount and let the system hang when
shutdown/reboot. I already made a patch [1] to fix the issue in
umount, but there is no reason for the psplash to do the twice mount.
So also fix it.
Richard Purdie [Thu, 15 Aug 2019 20:55:16 +0000 (21:55 +0100)]
package: Fix race between do_package and do_packagedata
do_package has PKGDESTWORK as a cleandir and do_packagedata has it as an sstate-input
dir. This means do_package wipes out the directory at both do_package and do_package_setscene.
do_package_setscene and do_packagedata_setscene can run in parallel when installing from
sstate which means they can wipe out parts of each other leading to interesting
build failures.
We therefore have to add in a hardlink copy so that the directories can work independently
of each other.
Chen Qi [Fri, 16 Aug 2019 02:06:03 +0000 (10:06 +0800)]
target-sdk-provides-dummy: extend packages for multilib case
If we have installed some lib32 package which depends on perl/bash,
then populating sdk for that image would fail with the following error.
Error:
Problem: package lib32-libxml-namespacesupport-perl-1.12-r0.corei7_32 requires lib32-perl, but none of the providers can be installed
package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with /usr/bin/perl provided by lib32-perl-5.30.0-r0.corei7_32
package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with libperl.so.5 provided by lib32-perl-5.30.0-r0.corei7_32
This could be produced by the following steps:
1. IMAGE_INSTALL_append = " lib32-valgrind"
2. bitbake core-image-minimal -c populate_sdk
We need to extend all packages in DUMMYPROVIDES to avoid such problems.
Khem Raj [Thu, 15 Aug 2019 05:56:55 +0000 (22:56 -0700)]
systemd.bbclass: Limit rm_sysvinit_initddir and rm_systemd_unitdir to target alone
These postfuncs cause native recipes to rebuild when changing system
init provider between sysvinit and systemd. Some of these native recipes
are pretty early in dependency chain ( e.g. util-linux ) which can casue
rebuild of pretty much everything including compiler.
Khem Raj [Thu, 15 Aug 2019 05:56:54 +0000 (22:56 -0700)]
util-linux: Make pam specific logic apply to target recipe alone
This helps with a case where a distro builds one image with systemd and
another with sysvinit, it ends up recompiling almost everything since
python3-native gets rebuilt and tracing dependencies with
bitbake-diffsigs shows that the chain ends at util-linux-native being
recompiled because distro features now does or does not have 'pam'
Bruce Ashfield [Thu, 15 Aug 2019 00:34:50 +0000 (20:34 -0400)]
linux-yocto/4.19: make drm-bochs feature available
The other active kernel versions have this feature available. To
consistently enable the same video output for qemu, we can cherry
pick the feature to 4.19.
Bruce Ashfield [Wed, 14 Aug 2019 15:31:33 +0000 (11:31 -0400)]
kconf_check: tweak CONFIG_ regex
As reported in https://bugzilla.yoctoproject.org/show_bug.cgi?id=12563,
the regex that matches valid CONFIG_ options was missing some of the
ones in net/netfilter/ipvs/Kconfig, and hence triggering invalid
option warnings.
By dropping the trailing space on the regex, we'll cover all the cases
for valid option.
Bruce Ashfield [Wed, 14 Aug 2019 15:31:31 +0000 (11:31 -0400)]
linux-yocto: arch/x86/boot: use prefix map to avoid embedded paths
>From the kernel patch:
[
It was observed that the kernel embeds the path in the x86 boot
artifacts.
From https://bugzilla.yoctoproject.org/show_bug.cgi?id=13458:
[
If you turn on the buildpaths QA test, or try a reproducible build, you
discover that the kernel image contains build paths.
$ strings bzImage-5.0.19-yocto-standard |grep tmp/
out of pgt_buf in
/data/poky-tmp/reproducible/tmp/work-shared/qemux86-64/kernel-source/arch/x86/boot/compressed/kaslr_64.c!?
So the __FILE__ shouldn't be using the full path. However
arch/x86/boot/compressed/Makefile has this:
KBUILD_CFLAGS := -m$(BITS) -O2
So that clears KBUILD_FLAGS, removing the -fmacro-prefix-map option.
]
Other architectures do not clear the flags, but instead prune before
adding boot or specific options. There's no obvious reason why x86 isn't
doing the same thing (pruning vs clearing) and no build or boot issues
have been observed.
So we make x86 can do the same thing, and we no longer have embedded paths.
]
This issue has been reported upstream, and a patch submission is
pending, but for now, we'll soak the proposed patch in linux-yocto to
see if any issues are found
Bruce Ashfield [Wed, 14 Aug 2019 15:31:30 +0000 (11:31 -0400)]
kern-tools: Add SPDX license headers to source files
Integrating the following commit:
Add SPDX license headers to source files
Kconfiglib/* were under ISC license before they were imported
here from https://github.com/ulfalizer/Kconfiglib
Adjusting SPDX header to reflect that fact.
tools/* all have some sort of GPLv2 headers; adding SPDX header
to make it obvious.
This address bug #13334 :
https://bugzilla.yoctoproject.org/show_bug.cgi?id=13334
Change-Id: I243f2dd266a398f982798b771e74a67be70ecb52 Signed-off-by: William Bourque <wbourque@gmail.com>
(From OE-Core rev: eb60f1544fcafcfed7baecceec4549c4e86989a3)
Signed-off-by: William Bourque <wbourque@gmail.com> Signen-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Wed, 14 Aug 2019 15:31:29 +0000 (11:31 -0400)]
kernel-devsrc: tweak for v5.3+
The 5.3 kernel has two changes that require tweaks to the minimal
kernel-devsrc package.
- 4ce97317f [x86/purgatory: Do not use __builtin_memcpy and __builtin_memset]
This change removes the need for arch/x86/purgatory/string.c and
instead reuses a copy in arch/x86/boot/compressed/, so we can't copy
the file anymore. To support older kernels, we make the copy survive
the non-existence of the file.
- b1663d7e [docs: Kbuild/Makefile: allow check for missing docs at build time]
This change adds the sourceing of Documentation/Kbuild to the top
level Kbuild file. So we now leave the copy of Documention/'s Kbuild
in the devsrc.
Richard Purdie [Thu, 15 Aug 2019 21:54:43 +0000 (22:54 +0100)]
bitbake: hashserv: Ensure we don't accumulate sockets in TIME_WAIT state
This can cause a huge backlog of closing sockets on the server and
in our case we don't really want/need the protection TCP is trying to
give us so work around it.
Robert Yang [Thu, 15 Aug 2019 11:56:51 +0000 (19:56 +0800)]
bitbake: bitbake: server/process: Handle BBHandledException to avoid unexpected exceptions
The parseBaseConfiguration() raises bb.BBHandledException(), but
BitBakeServer() didn't handle it, so we always got unexpected exceptions when
there were errors. For example:
=== Case 1:
* Add "print "hello"' in base.bbclass' def oe_import() function
def oe_import(d):
print "hello"
[snip]
$ bitbake -p
ERROR: Unable to start bitbake server (None)
ERROR: Last 60 lines of server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
File "/buildarea1/lyang1/poky/meta/classes/base.bbclass", line 21
print "hello"
^
SyntaxError: Missing parentheses in call to 'print'
<The first exception>
During handling of the above exception, another exception occurred:
<Tracebacks>
<The second exception>
During handling of the above exception, another exception occurred:
<Tracebacks>
<The third exception>
During handling of the above exception, another exception occurred:
<Tracebacks>
[snip]
Now it looks like:
$ bitbake -p
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
ERROR: Error in compiling python function in /buildarea1/lyang1/poky/meta/classes/base.bbclass, line 21:
The code lines resulting in this error were:
0001:def oe_import(d):
*** 0002: print "hello"
0003: import sys
0004:
0005: bbpath = d.getVar("BBPATH").split(":")
0006: sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath]
SyntaxError: Missing parentheses in call to 'print' (base.bbclass, line 21)
=== Case 2:
* Add 'HOSTTOOLS += "hello"' to conf/local.conf:
$ bitbake -p
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
<Tracebacks>
[snip]
During handling of the above exception, another exception occurred:
[snip]
<Tracebacks>
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
hello
The error message is printed by bb.fatal() which raises bb.BBHandledException(),
but BitBakeServer() doesn't handle it, so we got it.
Now it looks like:
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
hello
Richard Purdie [Thu, 15 Aug 2019 07:41:21 +0000 (08:41 +0100)]
bitbake: tests/runqueue: Fix tests
There were paths being accidentally included in some of the hashserv tests. Remove
that and update the hashes so the tests work independently of paths.
SRC_URI was moved from xorg-app-common.inc, since it has hardcoded file
extension (tar.bz2), but upstream stopped publishing tar.bz2 archives
for newer versions of the packages.
Will Page [Tue, 13 Aug 2019 18:37:15 +0000 (11:37 -0700)]
uboot: fixes to uboot-extlinux-config attribute values
The way this class uses overrides to support generation of multiple
sections is subject to two different issues: 1) labels that conflict
with existing override names causing the value for the conflicting label
to be set for all labels, and 2) reusing the override list through each
iteration, prepending each new label to the list of overrides makes
earlier labels' value take precedence over later labels, making later
labels virtually impossible to customize.
The first issue is resolved by removing all label names from overrides
before iterating over labels. The second issue is resolved by
generating a fresh list of overrides with only the current label added.
The current label is also appended to the list of overrides instead of
prepended, which makes it the highest priority override. This is
matches the behavior of devtool-source.bbclass, which similarly
monkey-patches overrides.