Mark Hatle [Tue, 4 Feb 2020 21:06:28 +0000 (15:06 -0600)]
microblaze tune: Enable 64-bit
64-bit is not yet available in Linux, but some non-Linux uses exist.
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Tue, 4 Feb 2020 21:06:27 +0000 (15:06 -0600)]
microblaze tune: Allow no version to be set
We want to allow no version to be configured. This should use the GCC default
which is the latest defined version, currently 11.0.
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Tue, 4 Feb 2020 21:06:26 +0000 (15:06 -0600)]
microblaze tune: change microblazeeb to microblaze
Using microblazeeb breaks a number of autoconf recipes, including newlib
components. 'microblaze' is defined as the big-endian version, while
microblazeel is defined as the little-endian version.
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 5 Feb 2020 15:37:19 +0000 (15:37 +0000)]
tar: Fix build determinism, disable rsh
rsh is insecure and obsolete but tar will enable support if the binary is
on the host system. Some systems point it at ssh. Lets explictly disable it
for now unless someone actually needs/uses this at which point it could
become a packageconfig.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 4 Feb 2020 22:20:35 +0000 (22:20 +0000)]
patch: Extend to native/nativesdk and depend upon
There is a bug in patch 2.7.3 and earlier where index lines
in patches can change file modes when they shouldn't:
http://git.savannah.gnu.org/cgit/patch.git/patch/?id=82b800c9552a088a241457948219d25ce0a407a4
This leaks into debug sources in particular (e.g. tcp-wrappers where
source files are read-only). Add the dependency to target recipes
to avoid this problem until we can rely on 2.7.4 or later.
We could try and remove all index lines from patch files but it will be a
losing battle. We could try and identify all the recipes which change
modes on files in patches but again, its a losing battle.
Instead, compromise and have patch-native as a dependency
for target recipes. We use patch-replacement-native since patch-native
is in ASSUME_PROVIDED.
Also add nativesdk-patch to buildtools-tarball.
[YOCTO #13777]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 4 Feb 2020 18:12:15 +0000 (18:12 +0000)]
mc: Fix manpage date indeterminism
The man page date can vary depending upon the host perl, e.g. in Russian
some versions print 'июня', others 'Июнь' or Polish 'czerwca' or 'czerwiec'.
Rather than depend upon perl-native to fix this, just remove the date from
the manpages.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 3 Feb 2020 23:39:29 +0000 (23:39 +0000)]
oeqa/reproducible: Improve test output and ensure deb+ipk compared
Adding newline characters between the packages in the failure output
massively improves readability.
Also ensure to output ipk failures when there are deb failures by
calling self.fail() at the end, else sometimes only partial differences
are returned.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 3 Feb 2020 20:39:14 +0000 (20:39 +0000)]
opkg-utils: Fix reproducibility issues in opkg-build
There is a sorting problem with opkg-build where the ipk generated is depending
upon the order of files on disk. The reason is the --sort option to tar only
influences the orders of files tar reads, not those passed by the -T option.
Add in a sort call to resolve this issue. To ensure consistent sorting we
also need to force to a specific locale (C) else the results are still not
deterministic.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Trevor Gamblin [Fri, 24 Jan 2020 01:29:28 +0000 (20:29 -0500)]
logrotate.py: improve oeqa test implementation
See bug https://bugzilla.yoctoproject.org/show_bug.cgi?id=13632
Autobuilder tests occasionally fail, reporting that a new logfile
could not be created. While this failure did occur multiple times, it
could not be manually reproduced. However, there are issues with the
implementation of the logrotate.py script that can be fixed. These
changes will help make the failures clearer, should they continue to
occur.
Previously, the test_2_logrotate test would, after running the
logrotate tool, use "ls -al $HOME/logrotate_dir | wc -l" to count
the number of files in the rotation directory and determine if the
rotation was successful. The test to see if there are at least three
files is problematic, because depending on the version of ls used, it
may report the target value of 3 even when there are only hidden files
in the directory, potentially reporting a pass for the test when it
should actually fail. An example with coreutils:
root@qemux86-64:~# ls -al emptydir/
total 2
drwxr-xr-x 2 root root 1024 Jan 14 19:50 .
drwx------ 3 root root 1024 Jan 14 19:50 ..
root@qemux86-64:~#
Where "total" is the number of blocks used. Compare with busybox ls:
root@qemux86-64:~# ls -al emptydir/
drwxr-xr-x 2 root root 1024 Jan 14 19:54 .
drwx------ 3 root root 1024 Jan 14 19:54 ..
root@qemux86-64:~#
Instead of using ls to verify that a certain number of files exists
in $HOME/logrotate_dir, the tests have been changed to rotate two
specific logs: the log for wtmp and a new logrotate_testfile created
during the second test. Both tests check that the logs are correctly
rotated into $HOME/logrotate_dir by using find and grep on the
expected filename (e.g. "wtmp" when rotated becomes "wtmp.1", so we
check to see that wtmp.1 is present in $HOME/logrotate_dir). In
addition, should the test fail, the output from logrotate -vf is
included in the test log to aid debugging. It has also been seen that
in some cases, the logrotate test fails because the /var/log/wtmp file
is not yet present. Since the objective of the test is to check the
logrotate functionality and not the presence of certain log files,
test_logrotate_wtmp uses the touch command to help ensure that the
file is present before the call to logrotate is issued.
Finally, note that while the autobuilder failures that this patch
addresses were only seen during core-image-full-cmdline tests, these
changes were successfully tested on core-image-minimal and
core-image-sato with the manual addition of logrotate and openssh-sshd
to the images.
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
baremetal-helloworld: Create recipe for baremetal examples on QEMU
Create HelloWorld examples that run on several of the QEMU architectures
supported by the build system.
This recipe can be used by anyone to understand how baremetal applications
can be built using OpenEmbedded and how the wiring to set them up could be.
This should also facilitate creating/extending the OE testing infrastructure
to allow baremetal applications or RTOSs to be tested in the same way that
Linux currently is.
This can easily be extended to work on other MACHINES in the future.
To run this example:
$ source oe-init-buildenv
$ bitbake-layers add-layer ../meta-skeleton
# TCLIBC="baremetal" would work as well
$ echo "TCLIBC = \"newlib\"" >> ./conf/local.conf
Martin Jansa [Mon, 3 Feb 2020 22:44:20 +0000 (23:44 +0100)]
kernel-yocto.bbclass: export LD in the environment used by kconf_check
* resolves following exceptions in log.do_kernel_configcheck:
DEBUG: Executing python function do_kernel_configcheck
Traceback (most recent call last):
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2776, in _expand_macro
res += args[int(new_args[0])]
ValueError: invalid literal for int() with base 10: 'error-if'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/symbol_why.py", line 295, in <module>
conf = kconfiglib.Kconfig( kconf, show_errors, show_errors )
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 947, in __init__
self._init(filename, warn, warn_to_stderr, encoding)
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 1085, in _init
self._parse_block(None, self.top_node, self.top_node).next = None
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2982, in _parse_block
prev = self._parse_block(None, parent, prev)
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2907, in _parse_block
while self._next_line():
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2234, in _next_line
self._tokens = self._tokenize(line)
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2364, in _tokenize
self._parse_assignment(s)
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2604, in _parse_assignment
s, i = self._expand_macro(s, i, ())
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2780, in _expand_macro
res += self._fn_val(new_args)
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2843, in _fn_val
return py_fn(self, *args)
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 6769, in _error_if_fn
kconf.filename, kconf.linenr, msg))
kconfiglib.KconfigError: scripts/Kconfig.include:39: gold linker 'x86_64-oe-linux-ld --sysroot=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot ' not supported
Traceback (most recent call last):
File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2776, in _expand_macro
res += args[int(new_args[0])]
ValueError: invalid literal for int() with base 10: 'error-if'
* there is still 291 mismatched options in default 5.4.15 builds,
but at least the 11804 lines long log doesn't start with 9022 lines of above exceptions
DEBUG: Executing python function do_kernel_configcheck
[mismatch (291)]: /OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/.kernel-meta/cfg/mismatch.txt
There were hardware options requested that do not
have a corresponding value present in the final ".config" file.
This probably means you aren't getting the config you wanted.
WARNING: [kernel config]: specified values did not make it into the kernel's final configuration:
...
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop 0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch,
fixed in 5c0224c7bf3c ("Handle d_type == DT_UNKNOWN correctly").
Drop 0001-seccomp-more-comprehensive-protection-against-libsec.patch,
fixed in 70e8c1978a9a ("seccomp: real syscall numbers are >= 0").
Drop 0004-rules-whitelist-hd-devices.patch and
0005-rules-watch-metadata-changes-in-ide-devices.patch which cause
ide-cd to flap with tray open messages (and don't appear to be required
any more)
Commits from v243-stable:
70e8c1978a9a seccomp: real syscall numbers are >= 0 a0a1977d9a5d seccomp: more comprehensive protection against libseccomp's __NR_xyz namespace invasion 7f936c60d597 network: set ipv6 mtu after link-up or device mtu change b59d88cc62a4 man: fix typo in net-naming-scheme man page c5e5ac095821 man: fix typos (#14304) 9a2f26564d5a ipv4ll: do not reset conflict counter on restart bc9e1ebfdd3b Fix typo (duplicate "or") c6cb71b7e741 network: if /sys is rw, then udev should be around 67dcdfd95629 nspawn: do not fail if udev is not running a7938a1bc6d3 Create parent directories when creating systemd-private subdirs 53aa44f8738a network: do not return error but return UINT64_MAX if speed meter is disabled 65abf126744f core: swap priority can be negative b1cf452ff5f6 systemctl: enhance message about kexec missing kernel 07a0e5b42523 man: use mkswap@ instead of makeswap@ 57dc017c6bac journald: don't ask for the machine ID if we don't need it ac392a57c08c journalctl: pager_close() calls fflush(stdout) anyway as first thing ee7dfadc8237 journald: remove unused field 471073f1b52b journalctl: return EOPNOTSUPP if pcre is not enabled 002ededb61a0 man: drop reference to machined, add one for journald instead fd3bd4be3bff pid1: make TimeoutAbortSec settable for transient units eb2ef4d6643e pid1: fix setting of DefaultTimeoutAbortSec 1d75e29b2378 shared/ask-password-api: modify keyctl break value a16b1ee7e565 cryptsetup: reduce the chance that we will be OOM killed 4836fb010ae8 core: write out correct field name when creating transient service units 3e2c547f6d3c udevd: don't use monitor after manager_exit() d42f7d45a8e2 Revert "udevd: fix crash when workers time out after exit is signal caught" c9a287eee8fd man/systemd.link: Add missing verb *be* a67a3ae04b89 man: document all pager variables for systemctl and systemd 3a8fce3f38b6 core.timer: fix "systemd-analyze dump" and docs syntax inconsistencies wrt OnTimezoneChange= fdffd284b682 core/service: downgrade "scheduling restart" message to debug 733e7f19d3cf travis: add missing closing quote sign 0d7b7817fc34 systemd-tmpfiles: don't install timer when service isn't installed either 0e7f83cd2b31 pam_systemd: prolong method call timeout when allocating session e51d9bf9e5ac man: add entry about SpeedMeter= aa1fc791c7a1 udev: silence warning about PROGRAM+= or IMPORT+= rules b9a619bb6738 udevadm: ignore EROFS and return earlier 1ec5b9f80cb5 basic: add vmware hypervisor detection from device-tree 7fa7080248aa umount: be happy if /proc/swaps doesn't exist 71ccd774bb33 shutdown: make logging more useful if NULL swap/mount table files are specified 38453c6d42e4 man: share description of $SYSTEMD_COLORS in other tools b50ca0152681 core: do not propagate polkit error to caller 99b72a66ca55 ask-password: don't hit assert() when we query pw which the user C-d and caching is enabled 288edd686911 man: mention $RUNTIME_DIRECTORY & friends in environment list 37aeadd433d3 cryptsetup-generator: guess whether the keyfile argument is two items or one a87e8fdc72d7 verify: fix segmentation fault 3aea728cd2d2 timedated: it might be that tzinfo files are just not installed cc103c72abc1 timedated: handle UTC specially, when generating /etc/localtime f5a4caa5418b time-util: treat /etc/localtime missing as UTC 2139d58652bb bpf: fix off-by-one in class whitelisting cb7693595db9 bpf: fix device type filter 56e1ba304b00 core: constify bpf program arrays b06b7ace92c1 run: propagate return code/status from the child 5db454b8031c udevd: fix crash when workers time out after exit is signal caught b774282a855e udev: ignore error caused by device disconnection 8d88a2ecd7ce udev: fix error code in the log message c41484a2f3d7 udev: ignore ENOENT when chmod_and_chown() device node f218b65b3246 udev: do not append newline when write attributes ce4d17ddbc16 time-util: uniquify timezone list, in case UTC is listed in timezone1970.tab, too 28f0b34c57bc time-util: always accept UTC as valid timezone 8b888d236007 seccomp: add all *time64 syscalls 53d8feeb2334 libblkid: open device in nonblock mode. b9478046b03d man: describe ordering in case of Conflicts= fa3e5bd2bbb4 man: put description of Wants= above Requires= bdebd2c325fc meson: remove strange dep that causes meson to enter infinite loop 26bc77d8e5af man: fix option typo in pam_systemd man page 9c12127e3d2e man: save pull-raw example file without underscores 4c106cbcf1af man: small grammatical/word choice fixes to crypttab man page 03cc374fca74 shared/format-table: disable ellipsization when piped 0a5497d3fa4b sd-device-enumerator: do not return error when a device is removed 7b0d0331d051 bootctl: create leading dirs when "bootctl random-seed" is called if needed 5aab35aac9db core, job: fix breakage of ordering dependencies by systemctl reload command cd86ae937305 journalctl: allow running vacuum on remote journals, too fc0451bc0a3f allow an empty DefaultInstance= in configuration files 587266c24aae man/systemd.net-naming-scheme: fix typo e0e63f0f9bb9 nspawn: respect quiet on capabilities warning 37e50c05b564 nspawn: mangle slice name 4fefc493541e mkosi: Find hostname command on Arch Linux c430e8affba4 Fix mkosi on Arch Linux 1765b8d803dd Update to Fedora31 0b9a2a9a9868 sd-boot: Silence compiler warning when building with -O2 24e02f8d49b6 sd-boot: Don't loudly complain if RNG protocol isn't available 14e377ef3519 sd-boot: Only disable optimization on debug builds a39008ddecb9 meson: correct man page deps 4c1dcc06fa30 sd-event: don't invalidate source type on disconnect fb89ee34cedc analyze: fix minor memleak a449299bc087 analyze: sort list of unknown syscalls kernel implements 51ea58a04b18 seccomp: add new Linux 5.3 syscalls to syscall filter lists 819695c8b027 resolved: check for IP in certificate when using DoT with GnuTLS 37f817e21097 resolved: require at least version 3.6.0 of GnuTLS for DNS-over-TLS 32056809baa2 coverity: replace python with jq d2b4d7ee17de network-generator: Add missing help for --root f1b18c206208 modules-load: do not fail service if modules are not present 606de6626714 pid1: order .automount units after local-fs-pre.target 1366b81f2bc5 shared/install: failing with -ELOOP can be due to the use of an alias in install_error() 84d5cd699e25 shared/install: fix error codes returned by install_context_apply() 417779c58a86 man: alias names can't be used with enable command 00af6c447f25 resolved: set stream type during DnsStream creation 66dd9d7d25fd sd-device: allow sd_device_get_devtype to be called with NULL arg and do not assert 048f9da1a4b3 Remove unused plymouth_running() function 34fa67bbe732 machine-id-setup: avoid unexpected aborting 24c99fa2ef3d test-socket-util: avoid writing past the defined buffer ce82233f99b3 test: drop duplicated 's' 75a0e7209114 nspawn: fix handling of --console=help f41a282875fc Revert "sysusers: properly mark generated accounts as locked" fc2dceac6172 Remove unprintable non-ASCII char from special glyph ASCII fallback table dedf5b511e6f logind: fix emission of PropertiesChanged for users 6e3cfe2e58f5 logind: fix emission of PropertiesChanged on seats a9152084d7e9 resolved: fix connection failures with TLS 1.3 and GnuTLS 961879ed9ddb udev: tag any display devices as master-of-seat when nomodeset is used 8aa7bafa1295 systemd-fsck: fix systemd-fsck/fsck pipe bad closure 19590e289ace ceph is a network filesystem 339606ad9e99 portabled: allow to detach an image with a unit in linked-runtime state bd9692734ac5 network: ndisc: do not drop all prefixes when a prefix matches a blacklist 5e6d4f8b79e0 systemctl: fix memleak caused by wrong cleanup func 47d0e23d26af udev: fix memleak caused by wrong cleanup function a6fb0542c5ef parse_hwdb: fix compatibility with pyparsing 2.4.* cb1d892f1780 parse_hwdb: process files in order ef677436aa20 test: Pass personality test even when i686 userland runs on x86_64 kernel 3f6398c450b8 docs: fix inadvertent change in uid range 25bb377a73e7 cgroup: fix typo in BPF firewall support warning message 6d97aca0d503 fix build with compilers with default stack-protector enabled fbad077cec34 nspawn: surrender controlling terminal to PID2 when using the PID1 stub 0553c3c66889 pid1: fix DefaultTasksMax initialization f406a691a722 src/core/automount: use DirectoryMode when calling mkdir -p 20438f96c326 udevadm trigger: do not propagate EACCES and ENODEV 6480630bc397 hwdb: Correct WWWW Pattern In Documentation Comment 9d8e889810b5 nspawn: consistenly fail if parsing the environment fails 40e169b30423 nspawn: default to unified hierarchy if --as-pid2 is used b5df1037a0c0 cgroup: Mark memory protections as explicitly set in transient units f14e3e02cca7 cgroup: Respect DefaultMemoryMin when setting memory.min ea248e53bf76 cgroup: Check ancestor memory min for unified memory config de1d25a506db cgroup: docs: memory.high doc fixups 2ab45f38d8c4 cgroup: docs: Mention unbounded protection for memory.{low,min} 19a43dc38a13 Consider smb3 as remote filesystem 5c0224c7bf3c Handle d_type == DT_UNKNOWN correctly 8282bc61df10 util-lib: Don't propagate EACCES from find_binary PATH lookup to caller 9d0ae987a634 network: drop noisy log message f67f0e4ec45a Updated log message when the timesync happens for the first time (#13624) e151bf467494 units: make systemd-binfmt.service easier to work with no autofs 2b8e574d8242 Corect man page reference in systemd-nologin.conf comments a0577353f191 man: Add a missing space in machinectl(1) 693e98398869 log: Add missing "%" in "%m" log format strings ea7151b8c435 pid1: do not warn if /run/systemd/relabel-extra.d/ doesn't exist b90549290e33 man: fix typo
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Mon, 3 Feb 2020 18:11:50 +0000 (19:11 +0100)]
kernel.bbclass: set LD in KERNEL_CONFIG_COMMAND to fix 5.4+ builds when gold is enabled
* with 5.4 kernel the do_configure fails when gold is enabled (with ld-is-gold in DISTRO_FEATURES)
* bfd is already being set in KERNEL_LD:
kernel-arch.bbclass:KERNEL_LD = "${CCACHE}${HOST_PREFIX}ld.bfd ${HOST_LD_KERNEL_ARCH}"
but KERNEL_LD is currently respected only by do_compile and do_compile_kernel modules
and new kernel which contains a check for gold in Kbuild:
https://lore.kernel.org/lkml/alpine.DEB.2.21.1907161434260.1767@nanos.tec.linutronix.de/
more details:
https://lore.kernel.org/r/CAMe9rOqMqkQ0LNpm25yE_Yt0FKp05WmHOrwc0aRDb53miFKM+w@mail.gmail.com
will fail during the configuration even when gold wouldn't be used to
build it in the end, add LD setting to KERNEL_CONFIG_COMMAND to prevent
premature error when configuring
start_new_session was added to python3 subprocess in v3.2 and
is meant to take the place of the common use of preexec_fn to
call os.setsid() in the child - as done here.
Update to use the new equivalent.
Signed-off-by: André Draszik <git@andred.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
start_new_session was added to python3 subprocess in v3.2 and
is meant to take the place of the common use of preexec_fn to
call os.setsid() in the child - as done here.
Update to use the new equivalent.
Signed-off-by: André Draszik <git@andred.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Mon, 3 Feb 2020 12:32:25 +0000 (12:32 +0000)]
piglit: don't stage the test suite
The Piglit test suite is approximately 2GB and because it's installed into
$libdir is added to the sysroot archive. Nothing links against Piglit so
there's no reason for this, so remove $libdir from Piglit's sysroot.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mingli Yu [Wed, 22 Jan 2020 08:35:47 +0000 (00:35 -0800)]
gstreamer1.0-plugins-common.inc: disable orc on mips
After transiton to meson build for gstreamer series,
for gstreamer1.0-plugins-base, with below two commits
introduced: 238080ed89 gstreamer: Remove unused common files and patches 20614408dc gstreamer1.0-plugins-base: Transition to meson based builds
Henning Schild [Fri, 24 Jan 2020 13:48:47 +0000 (14:48 +0100)]
lib/oe/path: try hardlinking instead of guessing when it might fail
The comparison of the stat st_dev is not enough to judge whether
hardlinking will work. One example would be where you try and hardlink
across two bind-mounts of a directory. The st_dev will be the same and
the operation will still fail.
Instead of implementing a check to try and figure out hardlink support
just try hardlinking and fall back to a copy when running into an
exception.
Signed-off-by: Henning Schild <henning.schild@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Daniel McGregor [Thu, 23 Jan 2020 21:44:43 +0000 (15:44 -0600)]
buildhistory: Allow customising buildhistory tags
Allow setting custom buildhistory tag prefixes. This allows multiple
build directories to share one buildhistory git repository with multiple
worktrees.
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Daniel McGregor [Thu, 23 Jan 2020 21:44:42 +0000 (15:44 -0600)]
cmake: prefer CMAKE_BUILD_PARALLEL_LEVEL
cmake 3.12 introduced this environment variable. Prefer it to passing
PARALLEL_MAKE and PARALLEL_MAKEINST on the cmake command line, because
it gets passed to second stage cmake invocations while command-line
arguments do not (for example, multi-stage clang builds)
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Daniel McGregor [Thu, 23 Jan 2020 21:44:41 +0000 (15:44 -0600)]
procps: enable optional systemd support
procps includes support for listing the owning unit of a process, but
this support is disabled by default. Enable support using
a PACKAGECONFIG that depends on the systemd DISTRO_FEATURE.
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rasmus Villemoes [Mon, 20 Jan 2020 09:23:06 +0000 (09:23 +0000)]
glibc: don't ignore global LDFLAGS settings
Two things: The -Wl,-rpath-link comment is stale (due to per-recipe
staging), so we no longer need to set our own LDFLAGS to avoid
-Wl,-rpath-link being in there. Second, overriding LDFLAGS should be
done at the recipe level so "bitbake -e" can show what is going on.
Otherwise debugging why one's global LDFLAGS tweaks are being ignored
is needlessly painful.
So pull out the LDFLAGS setting from do_compile, and change it to an
append instead of assignment.
For the benefit of future git blame: the -fuse-ld=bfd setting was
added by ac64c3b96b (glibc: always use bfd linker).
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-update: copyright years Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-update: copyright years Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update: copyright years Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update: Copyright years, file lists Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Tue, 28 Jan 2020 22:14:10 +0000 (17:14 -0500)]
kernel-devsrc: update to v5.4+
To support on-target module building, we need to include syscall.tbl
for ARM64 (just like we do for other architectures).
We also copy .config with -a to ensure that we don't trigger extra
processing and regen configs.
Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Tue, 28 Jan 2020 22:14:09 +0000 (17:14 -0500)]
kern-tools: update Kconfiglib to latest (for 5.4+ kernel)
When a symbol doesn't make it into the final analysis is run
using Kconfiglib to show dependencies. v5.4 has introduced Kconfig
elements that Kconfiglib can't parse (hence we get no analysis).
Updating the Kconfiglib snapshot solves our problem.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Tue, 28 Jan 2020 22:14:08 +0000 (17:14 -0500)]
linux-yocto: introduce 5.4 recipes
This creates recipes for the v5.4/* branches of the linux-yocto
reference kernel.
preempt-rt, yaffs2, aufs5 and reference board specific patches are
part of these branches. All major architectures: x86,x86-64,ARM,
ARM64,ppc,mips and mips64 have been feature tested against this
reference.
5.4 is a LTS release, and as such will receive -stable updates
for the duration of upstream korg support.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
pod2man writes the current date into manpages, and while later
versions of it respect SOURCE_DATE_EPOCH and use that instead,
earlier versions do not. This was found to cause reproducibility
issues.
This patch replaces host version of pod2man with one from
perl-native.
[YOCTO #13755]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 28 Jan 2020 14:42:55 +0000 (14:42 +0000)]
texinfo/texinfo-dummy-native: Drop native path prefix
Now we have recipe specific sysroots we don't need this native path
prefix. It was breaking the crosssdk/cross-canadian cases and causing
bugs, removing it is the simplest solution.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Joshua Watt [Sun, 19 Jan 2020 18:59:59 +0000 (12:59 -0600)]
oeqa: reproducible: Do not strip packages
Do not strip packages when testing reproducible builds. In some cases,
stripped data differs between builds, but then gets removed. However,
the contents affect the generation of the GCC build-id, which then
differs in the resulting ELF files, even though the data that caused
this is no longer there. Inhibit stripping so that their causes can be
evaluated.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Joshua Watt [Fri, 31 Jan 2020 19:04:16 +0000 (13:04 -0600)]
classes/reproducible_build: Read SDE file later
Defers the resolution of the SOURCE_DATE_EPOCH until the variable needs
to be actually realized with a value. The previous method of loading the
value in anonymous python had issues because it could occur before other
anonymous python functions that affect the location of the epoch file,
such as when a recipe uses AUTOINC/AUTOREV or allarch.bbclass.
Also adds more logging to help diagnose issues in the future.
[YOCTO #13763]
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andrey Zhizhikin [Mon, 27 Jan 2020 10:44:44 +0000 (10:44 +0000)]
gstreamer1.0-plugins-bad: resolve opencv pkg-config in meson build
When opencv is picked in PACKAGECONFIG, plugin fails to locate data
dirs. This is due to meson.build file uses 'test' utility to verify that
the data dirs path is present and not taking sysroot into prefix.
Introduce additional patch, which picks up PKG_CONFIG_SYSROOT_DIR as
prefix for 'test' utility to verify the data dir is actually present.
Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Wed, 22 Jan 2020 00:27:02 +0000 (18:27 -0600)]
libgcc.inc: Fix an issue w/ a recursive symlink
If the OS is not Linux, the code could end up generating a recursive symlink.
This can happen because the same symlink can be created twice in a row. If this
happenes, the second symlink becomes a link to itself within the directory
pointed to by the original link.
In order to prevent this, verify that the destination does not already exist.
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Wed, 22 Jan 2020 00:27:01 +0000 (18:27 -0600)]
toaster.bbclass: Fix error when toaster is used to monitor a build
The error being corrected looks like:
File: '/home/jenkins/workspace/OEBuild/build-32/oe-core/meta/classes/toaster.bbclass', lineno: 130, function: toaster_package_dumpdata
0126: lpkgdata = {}
0127: datadir = os.path.join(pkgdatadir, 'runtime')
0128:
0129: # scan and send data for each generated package
*** 0130: for datafile in os.listdir(datadir):
0131: if not datafile.endswith('.packaged'):
0132: lpkgdata = _toaster_load_pkgdatafile(datadir, datafile)
0133: # Fire an event containing the pkg data
0134: bb.event.fire(bb.event.MetadataEvent("SinglePackageInfo", lpkgdata), d)
Exception: FileNotFoundError: [Errno 2] No such file or directory: '/home/jenkins/workspace/OEBuild/builds/build-32/tmp-glibc/work/core2-64-oe-linux/puzzles/2_0.0+gitAUTOINC+c6e0161dd4-r0/pkgdata/runtime'
There must be a small window before the data is available, but while the monitoring is on-going.
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tom Hochstein [Wed, 20 Nov 2019 19:25:51 +0000 (19:25 +0000)]
u-boot.inc: Fix devtool build u-boot for u-boot without menuconfig
For u-boot recipes without menuconfig support, running devtool results
in a do_configure error:
cp: cannot stat '/home/r60874/upstream/fsl-xwayland/tmp/work/imx8mmevk-fsl-linux/u-boot-imx/2018.03-r0/u-boot-imx-2018.03//.config': No such file or directory
The problem arises because u-boot.inc supports recipes with and without
menuconfig.
Fix the problem by properly setting DEVTOOL_DISABLE_MENUCONFIG so that devtool
can control logic that applies only for menuconfig support.
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tom Hochstein [Wed, 20 Nov 2019 19:25:44 +0000 (19:25 +0000)]
devtool/standard.py: Allow recipe to disable menuconfig logic
u-boot.inc supports u-boot recipes with or without menuconfig [1].
However, running devtool on a u-boot recipe that does not support menuconfig
results in an error:
cp: cannot stat '/home/r60874/upstream/fsl-xwayland/tmp/work/imx8mmevk-fsl-linux/u-boot-imx/2018.03-r0/u-boot-imx-2018.03//.config': No such file or directory
The problem is the devtool logic assumes that any recipe with a do_menuconfig task
will generate a .config in do_configure().
Fix the problem by removing the assumption with a flag that the recipe can control,
like this:
do_configure() {
if [ menuconfig-supported ]; then
...
else
DEVTOOL_DISABLE_MENUCONFIG=true
fi
}
Particularly, one test is disabled as it is failing everywhere,
two patches that actually cause failures are dropped and
some binaries are prevented from being stripped where that is
expected.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 24 Oct 2019 18:09:33 +0000 (13:09 -0500)]
reproducible: Allow configuration of saved debug output
If OEQA_DEBUGGING_SAVED_OUTPUT is set in the environment, use this location
to store reproducibile build failure output. This aids debugging on the
YP autobuilder in particular.
Use a date in the directory name to make it easier to find failure output.
Also clean up empty directories as they're unnecessary distracting noise.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>