libusb: ptest: don't skip debug output and fix failures processing
Current run-ptest script prints nothing, when stress tests fail.
Fix it in new implementation, discarding external dependency on sed.
Also leave in place all stress output, just add standard ptest result.
Ola x Nilsson [Thu, 4 Oct 2018 10:43:28 +0000 (12:43 +0200)]
externalsrc.bbclass: Set BB_DONT_CACHE for non-target recipes
BB_DONT_CACHE was not set for non-virtual recipes where PN != BPN, such
as quilt-native. Recipes that do not set BBCLASSEXTEND should always
have BB_DONT_CACHE set by externalsrc.
Ross Burton [Thu, 4 Oct 2018 09:20:20 +0000 (10:20 +0100)]
libxml2: refresh CVE-2017-8872
The patch associated with the CVE-2017-8872 report was never merged into
libxml2, but a slightly different patch for the same problem was. Cherry-pick
that as a backport, which also fixes the failing test suite.
Mark Hatle [Tue, 2 Oct 2018 21:08:03 +0000 (17:08 -0400)]
bitbake: gitsm: Allow relative URIs when fetching
Some repositories may specify a relative submodule path. If this happens,
it is our responsibility to use the parents URL (ud) and handle any relative
processing ourselves.
The new gitsm fetcher assumed that submodules were living directly in
the 'modules' directory, whereas they can be arbitrarily nested inside
subdirectories.
Solve it by first creating the parent of the destination directory for
the symlink and copy steps.
When creating custom image recipes, the layer add for new layers
needs missing xhrLayerUrl data. Also, code is needed to check
and inform user if the newly added layer has not been cloned yet,
and provide helpful error message instead of the current frozen
dialog.
David Reyna [Mon, 1 Oct 2018 07:45:57 +0000 (00:45 -0700)]
bitbake: toaster: disable git remote check to allow for firewalls
Toaster users behind firewalls that block "git" access usually
require developers to add remap rules in their "~/.gitconfig"
to remap GIT accesses to HTTP* access. However, there is a
"git remote" test in Toaster that is not aware of such remaps,
resulting in a false error.
For now, disable this nice-to-have check to support this release,
and re-enable when we can add remapping accommodations for this
test.
David Reyna [Mon, 1 Oct 2018 07:45:55 +0000 (00:45 -0700)]
bitbake: toaster: error logs missing for cli builds
The method 'store_log_event' in 'buildinfohelper.py' always puts log
messages from CLI builds into the backlog but never takes them out.
The "close" method now forces all backlogged CLI events to be registered.
Scott Rifenbark [Wed, 26 Sep 2018 20:19:10 +0000 (13:19 -0700)]
ref-manual: Updates to native.bbclass
Fixes [YOCTO #12924]
Naming convention does not apply to the second recipe-creation
method described in this class. I have moved the note about that
to be under the applicable method (i.e. the first bullet).
Fixed the syntax reversal of the sample name in the example.
Scott Rifenbark [Mon, 24 Sep 2018 15:40:56 +0000 (08:40 -0700)]
dev-manual: Fixed poor writing
The bullet item describing what the LAYERSERIES_COMPAT variable was
written poorly (ending in a preposition). I fixed the sentence to
read more clearly.
Scott Rifenbark [Wed, 5 Sep 2018 16:31:24 +0000 (09:31 -0700)]
bitbake: bitbake-user-manual: Added BBMULTICONFIG support
The BBMULTICONFIG variable is a variable used for BitBake and was
not documented in the BitBake Manual glossary. I added the
definition. I also added the variable to the example in the section
describing how to execute builds for multiple configurations.
Anuj Mittal [Wed, 3 Oct 2018 10:27:50 +0000 (18:27 +0800)]
qemux86-directdisk: remove mem= parameter
Remove usage of a specific amount of memory and let it be controlled by
users. This was the default behaviour before it was changed by commit 3b79d9a78 that switched the wks file to be used for qemux86.
Also fixes the bitbake parsing issues seen because of memory starvation
using build appliance images.
Ross Burton [Fri, 21 Sep 2018 09:58:26 +0000 (10:58 +0100)]
bitbake: test/fetch: use canonical GitLab URLs
GitLab returns a redirect from /foo to /foo.git which older releases of Git
don't handle when cloning. These tests don't clone so the redirect works, but
let's be consistant with the structure of these URLs and add the .git suffix.
AnÃbal Limón [Tue, 2 Oct 2018 21:43:23 +0000 (16:43 -0500)]
scripts/yocto-check-layer: Don't abort when layer fails to get signatures
When execute in multiple layers like meta-openembedded the execution is
aborted when some sublayer fails to get world signatures, so mark it as
an error and continue the execution in the remaining sublayers.
prior to that commit, musl was loading it and silently letting
subsequent TLS accesses via the miscompiled code clobber memory that
didn't belong to them
This was wrong behavior and it relied on additional space reserved by
libc in TLS space to adjust fo such broken libs, but it also fails
with glibc if the reserved space was already used up
Right fix is that mesa should be patched to remove all the
initial-exec hacks and use real TLS, and -mtls-dialect=gnu2 (TLSDESC)
should be used on archs it's supported on (i386, x86_64, and aarch64)
to make up for the lost performance, but mesa hardcodes the initial-exec,
so there must be a reason that probably is better known to mesa devs.
but we 'fixed' it for musl by adding --disable-glx-tls for mesa in OE,
which uses pthread_getspecific instead and makes is lot slower.
this caused additional problems with security flags on, it get textrels
in .text segment. Therefore this is 'second fix' to get us through this
warning.
Cause is some unknown part of mesa's x86 assembly code is broken by
readonly text segments
Ross Burton [Wed, 3 Oct 2018 11:48:51 +0000 (12:48 +0100)]
pango: don't disable debugging
By explicitly disabling debugging we get *no* safety checks: the GLib asserts
and checks are all disabled. This is fine for absolute performance but
something that should be opt-in.
This also breaks the test suite, which relies upon the asserts to work.
Ross Burton [Wed, 3 Oct 2018 11:01:36 +0000 (12:01 +0100)]
connman: neaten patches
The upstreamable include-tweaking patches contained fragments that should be in
the not-upstreamable musl-specific res_ninit replacement, so move them to the
right patch.
Currently the dnf command inside SDK does not work. We will
get error message like below:
ImportError: No module named 'dnf'
So remove it from nativesdk-packagegroup-sdk-host, otherwise,
users will get unpleasant experience if they are working inside
SDK environment on some distros like Fedora.
Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Joe Slater <joe.slater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 3 Oct 2018 11:20:04 +0000 (12:20 +0100)]
glibc: Fix glibc reproducibility issues
Currently for non-IA platforms, glibc is not reproducible as host system
paths are being injected into target binaries. These spread through
all target binaries on the system which link to the libc.
Add a patch which injects .file directives into the assembly pieces
and works around this issue until a better solution can be found.
Chin Huat Ang [Mon, 1 Oct 2018 05:09:45 +0000 (13:09 +0800)]
meta-ide-support: add cmake-native
Include cmake as part of build tree toolchain so that it is populated
into meta-ide-support's recipe-sysroot-native which is prepended to
$PATH, this ensures cmake-native is picked up first before host cmake.
Martin Jansa [Sun, 30 Sep 2018 16:27:37 +0000 (16:27 +0000)]
glibc: bump SRCREV to latest 2.28
* drop one patch already applied in upstream
* this is still only partial fix for issues with -O0 and the bigger
issue might be detected in runtime as described in:
https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F
https://sourceware.org/bugzilla/show_bug.cgi?id=19444
and tested in glibc build:
https://sourceware.org/git/?p=glibc.git;a=blob;f=include/libc-symbols.h;h=8b9273c13a19f2658105c7997267d9086adae716;hb=HEAD#l74
* restore the anonymous python to trigger fatal error when -O0 is
used (but don't restore the notes for -O, -O1, -Os
* git log --oneline 3c03baca37fdcb52c3881e653ca392bba7a99c2b..044c96f0d5595aeb0bb4e79355081c5a7f4faca5 | tee 044c96f0d5 Fix misreported errno on preadv2/pwritev2 (BZ#23579) 3a67c72c15 Fix stack overflow in tst-setcontext9 (bug 23717) 2339d6a55e i386: Use ENTRY and END in start.S [BZ #23606] 0ef2f4400c Fix strstr bug with huge needles (bug 23637) a55e109709 Fix tst-setcontext9 for optimized small stacks. 307d04334d misc: New test misc/tst-gethostid e7d22db29c Linux gethostid: Check for NULL value from gethostbyname_r [BZ #23679] 1fe2b9ca8a Fix segfault in maybe_script_execute. 0b79004569 regex: Add test tst-regcomp-truncated [BZ #23578] 58559f1443 regex: fix uninitialized memory access aa8a3e4cde pthread_cond_broadcast: Fix waiters-after-spinning case [BZ #23538] c87b5bab24 Improve ChangeLog message. 66fdfd57fe Regen RISC-V rvd ULPs b0aa03dfff RISC-V: Fix rounding save/restore bug. 2f498f3d14 nss_files: Fix file stream leak in aliases lookup [BZ #23521] bfcfa22589 nscd: Deallocate existing user names in file parser d05b05d157 error, error_at_line: Add missing va_end calls 4b25485f03 Linux: Rewrite __old_getdents64 [BZ #23497] 726e1554ce hurd: Avoid PLTs for __pthread_get/setspecific 7f11842e74 hurd: Add missing symbols for proper libc_get/setspecific
* update 0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch
based on review comments in upstream and extend it to cover PPC based
on:
http://lists.openembedded.org/pipermail/openembedded-core/2018-September/156258.html
* update 0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch
based on review comments in upstream
* add 0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch
with a fix for aarch64 build with -Os
* build tested with qemuarm, qemuarm64, qemux86, qemux86-64, qemuppc,
qemumips, qemumips64 with -O, -O1, -Os.
Ross Burton [Fri, 28 Sep 2018 13:45:41 +0000 (14:45 +0100)]
archiver: generalise task running when in configured mode
When in configured mode the archive will re-run configure itself, but that
doesn't work if there are other tasks that need to run such as cmake's
generate_toolchain_file.
Instead of hard-coding a list of classes and tasks, obtain the list of tasks
preceeding do_configure, filter out ones we don't want to re-run such as
do_patch and do_prepare_recipe_sysroot, and run those too.
Robert Yang [Sat, 29 Sep 2018 07:23:10 +0000 (15:23 +0800)]
multilib: avoid expanding grub and grub-efi to multilib
It doesn't make much sense to expand them to multilib, and there is an error on
qemuarm64 since grub-efi supports arm64, but doesn't support armv7a or armv7ve:
libsdl2: disable sndio explicitly to avoid inconsistent result
Explicitly disable sndio to avoid inconsistent result on different
hosts having or not having libsndio.
This must be done if we take into consideration of eSDK.
I built eSDK on Ubuntu 14.04 which has libsndio installed, and then
installed the eSDK on Fedora 27, which does not have libsndio. In
fact, on Fedora 27, I even cannot find libsndio in its repo.
The problem happens when trying to use `devtool runqemu'. The qemu
binary built on Ubuntu 14.04 needs to link to libsndio, and thus
the following error.
runqemu - ERROR - Failed to run qemu: /path/to/qemu-system-x86_64:
error while loading shared libraries: libsndio.so.6.1:
cannot open shared object file: No such file or directory
So explicitly disable sndio for libsdl2 to avoid the above problem.
Kai Kang [Sat, 29 Sep 2018 05:43:48 +0000 (13:43 +0800)]
bind: fix multilib install file conflicts
It adds ${libdir} to linker options in scripts bind9-config and
isc-config.sh. And then causes install file conflicts when install bind
andl ib32-bind both.
Inherit multilib_script.bbclass to fix this issue.
Kai Kang [Sat, 29 Sep 2018 05:43:50 +0000 (13:43 +0800)]
groff: fix multilib install file conflicts
Perl scripts ${bindir}/{gpinyin, groffer, grog} are ${libdir} related
and cause multilib install file conflicts:
| Error: Transaction check error:
| file /usr/bin/gpinyin conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86
| file /usr/bin/groffer conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86
| file /usr/bin/grog conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86
Inherit multilib_script.bbclass to fix the errors.
Mark Hatle [Thu, 27 Sep 2018 18:17:46 +0000 (14:17 -0400)]
sysklogd: Re-enable alternatives for syslogd.8 man page
Other recipes, such as meta-networking inetutils may also provide a man page
for syslogd.8. Use the alternatives mechanism to select the man page to
display.
The syslogd tool itself is provided by both recipes in their respective runtime
packages. In the inet case, it is inetutils-syslogd, which has an appropriate
RCONFLICTS with the syslogd version. Only one or the other will be installed.
This is the conflict resolution the original commit of
"988aad01b20c18a8850db0ad6dc547525d94116c" was referring to.
HOWEVER, both syslogd and inetutils each only have a singular 'doc' package.
(As do most packages it seems.) Since this is the case, if both syslogd and
inetutils (not syslogd part) is requested for a configuration -- AND ---
doc-pkgs are configured in, you get an error of conflicting files.
Now does the documentation match whichever package was installed, maybe not...
but this isn't a big deal as it turns out, since most syslogd share a common set
of arguments and those are the things a run-time user would query from the man
pages.
The only alternative is to start spliting up the docs into their relevant
subpackages, as we have the runtime items. But this then complicates the
doc-pkgs processing and related...
Richard Purdie [Tue, 25 Sep 2018 14:17:17 +0000 (15:17 +0100)]
layer.conf: Drop sumo from LAYERSERIES_CORENAMES
Prepare for release and drop sumo for the compatible list of layer names.
This will mean other layers need updating to continue to indicate compatibility
with master but that is intentional at this part of the release cycle, we want
layers to indicate compatibility and show they're up to date.
glibc-package.inc: correct intention for deleting /usr/lib as needed
In case the baselib is lib64 we would want to delete /usr/lib
after removing the /usr/lib/locale dir and the implementation
wanted to do that earlier as well but the fault was checking
an already removed dir (/usr/lib/locale) before trying to
remove /usr/lib as that check would always fail.
Now we simply try to delete /usr/lib after deleting
/usr/lib/locale to make sure it deletes cleanly and is empty
at the time of deletion.
Apply point release patches from upstream which includes a fix for
indefinitely spinning process and a zombie by a simple $() statement
in a long running script.
nativesdk.bbclass: set consistent staging dirs regardless of multilib
For now, the RECIPE_SYSROOT of nativesdk recipes is ${WORKDIR}/recipe-sysroot
if multilib is disabled and ${WORKDIR}/nativesdk-recipe-sysroot if multilib
is enabled. And it's causing chaos. Problems I've met include:
1) 'File Exists' error when doing extend_recipe_sysroot
2) Rebuilding failure about cmake based nativesdk recipes if toggling multilib
In nativesdk.bbclass, We've set MULTILIBS to be "", and we've changed MLPREFIX
to be 'nativesdk-', I think we should also set consistent RECIPE_SYSROOT to be
${WORKDIR}/recipe-sysroot.
Below is an example showing why previous settings will cause do_prepare_recipe_sysroot
failure.
e.g.
A -> C
B -> C
A's RECIPE_SYSROOT is .../recipe-sysroot and B's RECIPE_SYSROOT is
.../nativesdk-recipe-sysroot.
As extend_recipe_sysroot function uses shared manifest, i.e., the same
manifest of C for both A and B, then there must be one of them having
the wrong manifest. And the wrong manifest results in RECIPE_SYSROOT
not cleaned up before installing new components, thus the following error.
This happens when toggling multilib and also between nativesdk recipes and
crosssdk, cross-canadian recipes. The latter situation also explains
why choosing ${WORKDIR}/recipe-sysroot instead of ${WORKDIR}/nativesdk-recipe-sysroot.
If we use 'nativesdk-recipe-sysroot', we still need to modify the extend_recipe_sysroot
function to treat crosssdk and cross-canadian as special cases. Using
'recipe-sysroot' does not have this problem.
Andrej Valek [Thu, 27 Sep 2018 06:09:33 +0000 (08:09 +0200)]
kernel-devsrc: fix searching for non-existing manifest files
Even if the do_populate_sysroot have had set-up noexec flag, populate_sdk's
tasks were trying to find .populate_sysroot manifest file. Change noexec
flag settings to delete appreciated task.
WARNING: core-image-minimal-1.0-r0 do_sdk_depends: Manifest
build/tmp/sstate-control/manifest-x86_64_x86_64-nativesdk-kernel-devsrc.populate_sysroot
not found in qemuarm armv5te armv5e armv5t armv5 armv4t armv4 arm allarch x86_64_x86_64-nativesdk (variant '')?
WARNING: core-image-minimal-1.0-r0 do_populate_sdk_ext: Manifest
build/tmp/sstate-control/manifest-x86_64_x86_64-nativesdk-kernel-devsrc.populate_sysroot
not found in qemuarm armv5te armv5e armv5t armv5 armv4t armv4 arm allarch x86_64_x86_64-nativesdk (variant '')?
Otavio Salvador [Wed, 26 Sep 2018 13:08:52 +0000 (10:08 -0300)]
util-linux: Fix packaging of util-linux-unshare
Below commit has added the unshare to alternatives but did not fix the
packaging of the changed file.
,----[ Offending commit ]
| commit 147da8fe7458a38598845958cb358bb094eba57b
| Author: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
| Date: Thu Jul 5 11:57:19 2018 +0300
|
| util-linux.inc: add fallocate & unshare to alternatives
|
| These binaries can be provided by busybox triggering a conflict in
| do_rootfs so update-alternatives needs to know about them to properly
| create the symlinks.
|
| Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
| Signed-off-by: Ross Burton <ross.burton@intel.com>
`----
Mark Hatle [Tue, 25 Sep 2018 17:15:25 +0000 (13:15 -0400)]
bitbake: fetch2/gitsm.py: Rework the git submodule fetcher
The prior fetcher did not know how to work with MIRRORS, and did not
honor BB_NO_NETWORK and similar.
The new fetcher approach recursively calls 'gitsm' download on each
submodule detected. This ensures that it will go throug the
standard download process.
Each downloaded submodule is then 'attached' to the original download in
the 'modules' directory. This mimics the behavior of:
git submodule init
but there is no chance it will contact the network without permission.
It then corrects upstream reference URIs.
The unpack steps simply copies the items from the downloads to the destdir.
Once copied the submodules are connected and we then run:
git submodule update
According to the git documentation, git submodule init can and will modify
the project configuration and may connect to the network. Doing the
work manually prevents this. (This manual process is allowed based
on my reading of the documentation.)
The small change to the existing test is due to this new code always assuming
the code is from a remote system, and not a 'local' repository. If this
assumption proves to be incorrect -- code will need to be added to deal
with local repositories without an upstream URI.
Mark Hatle [Tue, 25 Sep 2018 15:07:08 +0000 (11:07 -0400)]
bitbake: lib/layerindexlib/tests/restapi.py: Fix test cases when BB_SKIP_NETTETS=yes
Change the way the network related tests are skipped, based on how the
fetch tests are handled. We introduce a 'skipIfNoNetwork()' function that
will report skipped tests through the standard unit test reporting system.
Mark Hatle [Tue, 25 Sep 2018 15:07:06 +0000 (11:07 -0400)]
bitbake: lib/bb/tests/parse.py: Test case was changing chdir
The test case was changing the current directory, but was never restoring it
to the original location. This causes occasional failures in later test cases.
Mark Hatle [Tue, 25 Sep 2018 15:15:52 +0000 (11:15 -0400)]
bitbake: lib/layerindexlib/tests/cooker.py: Fix topdir to use an absolute (real) path
The test case needs to access test case files. Different versions of python
may return absolute or relative locations in __file__. Use the same approach
as other test cases in determining the location of the test files.
Vernon Mauery [Tue, 25 Sep 2018 21:17:59 +0000 (14:17 -0700)]
boost: build context and coroutine for arm
When cross-compiling for arm architecture, bjam fails to properly
detect the abi, which causes a failed conditional to omit the
assembly code that supports the platform.
A nasty corner case leads to a hang when utils.lockfile is called from
oe-core's package-manager:deploy_dir_lock (in turn called from
rootfs:_create further up the call stack) with "name" owned by root
and the user running bitbake has no write access.
Because this code runs under pseudo, the UID and EUID of the bitbake
worker process are 0, so the os.access(dirname, os.W_OK) returns True
i.e. it thinks the path is writable when in fact it's not writable.
Only later when trying to open the file an Exception it thrown because
the OS prohibits writing, but the Exception is ignored and the open is
retried leading to an infinite loop.
So this fix is to not ignore the "Permission Denied" exception.
An alternative fix would be to replace the os.access() call with an
try: open() except() at the beginning of the function.
rootfs.py: Install -src packages when PACKAGE_DEBUG_SPLIT_STYLE is "debug-with-srcpkg"
When the source packages are created, they need to be included in the
debug image created when IMAGE_GEN_DEBUGFS = "1" for it to be usable for
debugging.
Ross Burton [Tue, 25 Sep 2018 15:18:43 +0000 (16:18 +0100)]
meson: respect target/native flag distinction in G-I and gtk-doc
Remove the previous attempt at this from
0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch as it wasn't quite
right, and the rest of the patch is adding the currently not upstreamable runner
option.
Add two new patches to fix both gobject-introspection and gtk-doc using native
flags for target compiles.
Ross Burton [Tue, 25 Sep 2018 13:43:46 +0000 (14:43 +0100)]
meson: stop Meson using target CFLAGS in native builds
With the goal of autoconf-compatibility Meson respects $CFLAGS et al in builds.
In cross-compiled build the cross file is the one true source of flags and the
environment isn't used, but in a native build the environment will still be
respected.
As this can lead to target flags being used in the build for native binaries
(including a single native binary inside a target recipe), export
CFLAGS=${BUILD_CFLAGS) et al.
Ross Burton [Tue, 25 Sep 2018 13:43:44 +0000 (14:43 +0100)]
meson: squash the architecture warning patches together
Instead of one patch to change a warning into an exception and another to change
the message, squash the patches together as neither of the are acceptable
upstream.
Backporting the following fixes from 4.18 to 4.14 to remove beaglebone
configuration warnings:
1fb0b0379fb5 beaglebone: Clean up the cfg file 4176e7ded8e1 beaglebone: Drop the needless unsetting of the kernel options 65c209da574d beaglebone: Drop the obsolete kernel options
Signed-off-by: Kevin Hao <kexin.hao@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The previous logic assumed that if $BUILD_IMAGES_FROM_FEEDS=1 then a
complete set of ipk feeds from which to build the image is already
present under $IPK_FEED_URIS at do_rootfs runtime.
$IPK_FEED_URIS usually contains "file://${DEPLOY_DIR_IPK}" which
renders the above assumption bad because some recipes in the current
build can contain code like do_install[nostamp] = "1" which will cause
rebuilds bumping $PR and invalidating the index.
Even when the index is manually re-created before an image build
("bitbake package-index"), the nostamp will cause failures because the
dependency gets rebuilt before do_rootfs in the "bitbake <image>" call.
So make the opkg rootfs index logic the same as for rpm/deb, to always
update the index in $DEPLOY_DIR_IPK to fix the above nostamp failure.
Feeds outside $DEPLOY_DIR_IPK added to $IPK_FEED_URIS continue to work
as usual, for eg. by using a http:// URI.
which causes pkg-config --libs to include the full absolute path
to the recipe specific sysroot. This isn't a big problem
until something like CMake projects start generating
their own .cmake modules using this absolute path and exposing
them to sysroots of other bitbake recipes thus escaping
their recipe specific sysroots.
Then the fun begins when these users of the .cmake module start
to randomly fail builds with error messages like:
/home/builder/src/base/build/tmp/work/corei7-64-linux/package/1.0-r0/recipe-sysroot-native/usr/bin/x86_64-linux/../../libexec/x86_64-linux/gcc/x86_64-linux/7.3.0/ld: cannot find /lib/libpthread.so.0
/home/builder/src/base/build/tmp/work/corei7-64-linux/package/1.0-r0/recipe-sysroot-native/usr/bin/x86_64-linux/../../libexec/x86_64-linux/gcc/x86_64-linux/7.3.0/ld: cannot find /usr/lib/libpthread_nonshared.a
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
WARNING: exit code 1 from a shell command.
As luck has it, this problem goes away by recompiling the recipes
alone but repeats with multiple recipes here and there when full
images are build.
A careful inspection of multi page linker command lines shows
that some linker paramaters point to libraries in a different
recipes sysroot than what bitbake was building when the task
failed.
So, fix is to remove this one extra slash from openssl
library path configuration option. This changes openssl
Makefile to have:
LIBDIR=lib
and all users of LIBDIR variable in the Makefile are already
adding slashes as path separators if that is needed.
With this the generated .pc files have:
libdir=${exec_prefix}/lib
and pkg-config --libs knows to strip the already default
sysroot path away.
This then fixes the generated .cmake files to not include
these absolute paths and fixes the random build failures
when building images.
Thanks to Thomas, Michael and Ross for debugging support!
Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Cc: Thomas Witt <thomas.witt@bmw.de> Cc: Michael Ho <michael.ho@bmw.de> Cc: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Sun, 23 Sep 2018 17:21:00 +0000 (17:21 +0000)]
glib-2.0: Drop allow /run/media for root patch
Upstream implemented an equivalent fix in:
c672fcc0a8d6 ("gunixmounts: Allow root to display mounts under /run/media/$username")
As a result, this change is completely broken when running as root, as
user_name is unitialised when testing strcmp(user_name, "root") so just
segfaults.
Nicolas Dechesne [Mon, 24 Sep 2018 15:07:54 +0000 (17:07 +0200)]
checklayer: avoid recursive loop in add_layer_dependencies
When Layer A and Layer B depend on each other, then we will end up in a
recursive loop in function recurse_dependencies(). To avoid such situation
before making the recursive function call we check whether or not we have
already processed this layer.
e.g. without this patch, running this script on layers with dependency loops, we are seeing: