Commit Graph

3861 Commits

Author SHA1 Message Date
Richard Purdie
9eaf51be2d gcc-cross: Avoid races with gcc_stash_builddir
Its sad we need to do this but do_install and do_populate_sysroot appear
to change the files in ${B} and this breaks if something works in parallel
like gcc_stash_builddir. We've seen a few too many race errors on the
autobuilder which appear to be from this so make things run in sequence
deterministically for now.

An example failure was this from do_populate_sysroot whilst stash_builddir was running
in parallel:

ERROR: gcc-cross-initial-arm-6.3.0-r0 do_populate_sysroot: split_and_strip_files: 'file
/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-arm-lsb/build/build/tmp/work/x86_64-linux/
gcc-cross-initial-arm/6.3.0-r0/sysroot-destdir/home/pokybuild/yocto-autobuilder/yocto-worker/
nightly-arm-lsb/build/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/recipe-sysroot-native/
usr/bin/arm-poky-linux-gnueabi.gcc-cross-initial-arm/arm-poky-linux-gnueabi-gcov' failed

Exception: subprocess.CalledProcessError: Command '('patchelf-uninative', '--set-interpreter',
'/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-arm-lsb/build/build/tmp/sysroots-uninative/
x86_64-linux/lib/ld-linux-x86-64.so.2', '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-arm-lsb/
build/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/sstate-build-populate_sysroot/
recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi.gcc-cross-initial-arm/arm-poky-linux-gnueabi-gcov')' returned non-zero exit status 1

Subprocess output:
missing section headers

(From OE-Core rev: 75b76eb08c7e344142f0326605aeb6b24e61e38e)

(From OE-Core rev: 7265e99d0b4b662ca7f23d480f2845a309ac57fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-23 12:49:49 -08:00
Robert Yang
a06e298de8 m4: 1.4.17 -> 1.4.18
Rebased remove-gets.patch.

(From OE-Core rev: d87a41d2dc611259989cb1252c34d0c6ef802971)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:43 -08:00
Robert Yang
baf1dbc198 mklibs-native: 0.1.41 -> 0.1.43
(From OE-Core rev: de4a795ea584673cb39f94e48f3430fb014628a8)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:43 -08:00
Robert Yang
247e3fcec2 strace: fix gawk's path
Fixed:
strace-4.15: /usr/lib/strace/ptest/tests/caps-abbrev.awk contained in package strace-ptest requires /bin/gawk, but no providers found in RDEPENDS_strace-ptest? [file-rdeps]

The path should be /usr/bin/gawk as other scripts use in this package.

(From OE-Core rev: e71c205d7672d33ad00a5a5c6c41452746c77e2f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:43 -08:00
Robert Yang
d832aec0b9 strace: 4.14 -> 4.15
(From OE-Core rev: e24a98f703472a3893e241601bc21a3bb0eb58e1)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:43 -08:00
Robert Yang
2c97030552 git: 2.11.0 -> 2.11.1
(From OE-Core rev: c0db9b1b3725cd07b3980314112a8d3873c38568)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:43 -08:00
Robert Yang
ae5942345c e2fsprogs: 1.43.3 -> 1.43.4
* Rebased Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch.
* The mkfs.ext4dev is gone.

(From OE-Core rev: 54a012bff9430a8e973ddef61d14ac10d9ec9ed3)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:43 -08:00
Hongxu Jia
419f7339ad elfutils: update homepage and upstream souce
In git://sourceware.org/git/elfutils.git:
----------------
commit 1700fd25e6caf26663af2bd994d1d99fab9df59f
Author: Mark Wielaard <mark@klomp.org>
Date:   Sat Dec 24 22:31:41 2016 +0100

    http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/

    fedorahosted used to be our home, but we are now hosted at sourceware.

    Change the elfutils project home to http://elfutils.org/
    Point hosted services (email, release, git, bug tracker and web pages)
    to https://sourceware.org/elfutils/

    Move design notes from README to NOTES.
    Add URLs for home, releases, bugs, git and mailinglist to README.

    Make the --version output of all tools the same by using a common
    print_version function and update the publicly shown copyright holder
    to the elfutils developers.

    Signed-off-by: Mark Wielaard <mark@klomp.org>
------------------

(From OE-Core rev: 8c25c6999c990d63dfeb35b411ae40554553f433)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:43 -08:00
Hongxu Jia
f0a300c44d elfutils: 0.166 -> 0.168
- Backport patches from debian to 0.168 and add US tags.

- Rebase 0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch to support libc musl

(From OE-Core rev: 13e5819dc4ef44d99d0f22686365fd3c988d6bce)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:42 -08:00
Hongxu Jia
0355491595 pax-utils: 1.1.6 -> 1.2.2
Export GNULIB_OVERRIDES_WINT_T to fix compile failure
---------
1099 make[4]: *** [printf-args.o] Error 1
1100 make[4]: *** Waiting for unfinished jobs....
1101 In file included from ../../../pax-utils-1.2.2/autotools/gnulib/printf-args.h:41:0,
1102                  from ../../../pax-utils-1.2.2/autotools/gnulib/printf-parse.h:29,
1103                  from ../../../pax-utils-1.2.2/autotools/gnulib/printf-parse.c:36:
1104 ./wchar.h:476:6: error: #if with no expression
1105  # if
1106       ^
1107 make[4]: *** [printf-parse.o] Error 1
---------

(From OE-Core rev: 0f6f9fb0c898fe47e95803836f73a1850ad3bc6b)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:42 -08:00
Andreas Oberritter
4dfa203a65 python: Don't use getentropy on Linux
Backport a patch from 2.7 branch to fix a regression with glibc
2.24 causing "OSError: [Errno 38] Function not implemented" when
calling urandom() with older kernels.

(From OE-Core rev: 3f2be1c857a44030478ce25b4a722667b73de446)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:41 -08:00
Joshua Lock
5ca7184552 pseudo: update to 1.8.2
Update to the newly minted 1.8.2, dropping several patches we'd
backported since the last release.

(From OE-Core rev: 6437f14c9177fd7ec7a9b6bca873362b0c94abfb)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:41 -08:00
Herve Jourdain
d9a3ebef27 smartpm: if RPM transaction fails with an empty list of problems in attempt mode, ignore it!
Since commit be0cabf816 on 2016/05/17, smartpm will retry the transaction if ts.run() returns with an empty list of problems, and we're in attempt mode.
But then, since all the packages are already installed, the transaction will fail with "package already installed" error.

In attempt mode, it's fine to not retry nor generate an error when the transaction fails for no reason linked to files/packages conflicts, so this patch fixes this behaviour.

(From OE-Core rev: 327f263be285525adcbbf472db6ac7722c84ac2f)

Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:41 -08:00
Jussi Kukkonen
d887c24d5a cve-check-tool: Use CA cert bundle in correct sysroot
Native libcurl looks for CA certs in the wrong place by
default.
* Add patch that allows overriding the default CA certificate
  location. Patch is originally from meta-security-isafw.
* Use the new --cacert to set the correct CA bundle path

(From OE-Core rev: 73bd11d5190a072064128cc13b4537154d07b129)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 09:29:56 -08:00
Jussi Kukkonen
ea616d1226 cve-check-tool: Fixes for recipe sysroots
* Use --enable-relative-plugins so cve-check-tool looks for
  loadable modules relative to binary location instead of
  hard-coding a wrong sysroot location
* do_populate_cve_db() assumes that the binary cve-check-update is in
  the sysroot. Ensure that this is true by adding a task dependency

(From OE-Core rev: 2da6b01893d0afe8750bd0b12a8d55aafa82f58c)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 09:29:56 -08:00
Richard Purdie
bfd0a39bdf classes: Drop now unneeded update_data calls
Now that the datastore works dynamically we don't need the update_data calls
so we can just remove them. They're not actually done anything at all for
a while.

(From OE-Core rev: 8de0c5d3bd01919e2bf0394f9c485936d6098cec)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 09:29:55 -08:00
Richard Purdie
48527d4ff3 gcc-cross-initial: Remove unneeded temporary sysroot
We used to need to build gcc-cross-initial against a bare sysroot to avoid
contamination. With RSS, we no longer need to do this since the recipe sysroot
is already bare. We can therefore simply point at that and drop this code.

(From OE-Core rev: f70603887f823c14030bb738c4951d7aa3f022db)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-09 10:52:03 +00:00
Richard Purdie
5e68071c6f python3-native: Remove tests to save copying uneeded files around
Removing these nearly halves the python3-native disk footprint meaning
more optimal sysroot operations. We don't need these tests for anything.

(From OE-Core rev: 5c8dda390cacef69bc7996eb26099d55e2b8427b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-09 10:52:03 +00:00
Dengke Du
c0f56dbaf3 dosfstools: upgrade to 4.1
upgrade dosfstools from 4.0 to 4.1

(From OE-Core rev: 38c9e4531bcac71b873dd3bc0b264954c9d90150)

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-07 14:50:10 +00:00
Jussi Kukkonen
f5fc727f5b qemu: Add missing 'inherit pkgconfig'
The monster configure file does call pkg-config somewhere in there.

(From OE-Core rev: 8f7eb210257318dfa630bbc39b3eb9be936fddcc)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-07 14:50:10 +00:00
Richard Purdie
4764c113f9 perl-native: Remove .packlist file
This is large and needs fixups to relocate it in each case. We can drop it, save
the work and the ~150MB disk space its various copies take up. Its not needed
for anything that I can see.

(From OE-Core rev: 9792ba51c5caf56d182f1290df41f2a89b85f744)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-07 14:50:09 +00:00
Khem Raj
c62908e6a3 gcc-6: Sync gcc stddef.h with musl stddef.h
GCC provides some of std* headers including stddef.h
and it syncs with glibc definitions via __needed* defines
to find which datatypes are expected to be defined on top
of glibc. we need same for musl.

Drop unused 0048-ARM-PR-target-71056-Don-t-use-vectorized-builtins-wh.patch

(From OE-Core rev: 7da04721a620ad741ea50adf116e6b5afd47caa5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:18 +00:00
Koen Kooi
937643eb0e gdb 7.12: fix armv8b build
Backport fix from GDB upstream to fix big-endian aarch64 build.

(From OE-Core rev: 0635a96d82f5f5dd65a2d45ddca7559dea847916)

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:17 +00:00
Aníbal Limón
8bf3f386f9 qemu: Upgrade to 2.8.0
Added patches:

- target-ppc-fix-user-mode.patch

Rebased patches:

- exclude-some-arm-EABI-obsolete-syscalls.patc

Removed patches (already in upstream):

- 0003-fix-CVE-2016-7908.patch
- 0004-fix-CVE-2016-7909.patch
- 0001-target-mips-add-24KEc-CPU-definition.patch

Changelog,

http://wiki.qemu.org/ChangeLog/2.8

(From OE-Core rev: ab7eb1c896e4ba38b6c16acae3d25534296f62b8)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:16 +00:00
Anders Darander
8243ebdbb7 python-3-manifest: split out typing
This allows us to use typing.py without having to add the whole
python3-misc package.

(From OE-Core rev: 66c282541a13f2d1224d3ba933a953c0f613fb2a)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:16 +00:00
Anders Darander
5776eea84d python-3-manifest: add ipaddress to python3-io
This allows us to use ipaddress without requiring the add the whole
python3-misc.

(From OE-Core rev: d0e9013f6c68104369de940f5dd8a6ef76cd0210)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:16 +00:00
Anders Darander
db6977f72c python-3-manifest: add _compat_pickle to python3-pickle
This allows us to depend on _compat_pickle.* wihtout having to add the whole
python3-misc.

(From OE-Core rev: 6c435672b27d1c97ce3776c98d073a92fde887cd)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:16 +00:00
Anders Darander
64ab82509d python-3-manifest: add socketserver to netserver
socketserver.* should be part of python3-netserver.

(From OE-Core rev: 8aa71c7133f996f6ed09a3c094e553bed7f33c7a)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:16 +00:00
Anders Darander
ce5661ddc1 python-3-manifest: add argparse to RDEPENDS for netclient
http/server.py requires argparse.

(From OE-Core rev: 04d3e78b31c247ee521a2d4c15286a8c030637cb)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:16 +00:00
Anders Darander
67127bec02 python3-manifest: move htlm.py to python3-html
This allows us to use html.py without importing misc.

(From OE-Core rev: d1fefcaa10b85837d18458e291a3df9093b3a6ea)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:16 +00:00
Andre McCurdy
b76161a9a8 pkgconfig: fix typo introduced during recent conversion to PACKAGECONFIG
(From OE-Core rev: 424768191b4a55823d4a212d1fc38edda966f57c)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-02 22:19:22 +00:00
Ross Burton
6b149b6dbd pkgconfig: use packageconfig
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-02 17:37:43 +00:00
Ross Burton
3aa0ae393c pkg-config: depend on pkgconfig-native for target builds
When building for the target, pkg-config uses the target glib-2.0 instead of
it's own minimal fork. To find this it needs to use pkg-config so ensure this
dependency exists in case it doesn't exist on the host already.

(From OE-Core rev: 2e55ecb93ecbbd8bfe626c07d3a032c2fe98efca)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-02 17:37:43 +00:00
Richard Purdie
ec3d83f9a9 xmlto: Don't hardcode the path to tail
We don't need to hardcode a path to tail, follow the other tools examples and
don't specify a path since PATH is good enough for us.

(From OE-Core rev: 1a1e70304932cce5ad194e0a7ebb495da7b24c2e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31 23:47:33 +00:00
Richard Purdie
9852db9d22 binutils-cross: Remove exec_prefix from the linker search path
We don't put target libs into a native/cross ${exec_prefix} but having
this in the default search path means all linker scripts have to be relocated.
This is a considerable chunk of files to create multiple copies of for no good
reason.

Instead, patch out the paths we don't need.

(From OE-Core rev: 20816eb5398512652c971a37589a2ca28ffd3d68)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31 23:47:33 +00:00
Markus Lehtonen
86310792d3 rpm: inherit pkgconfig
Rpm needs pkg-config in order to build successfully.  Recipe specific
sysroots revealed this missing dependency when trying to build on a host
without pkg-config.

(From OE-Core rev: 6ad1deb0d728b8d34589b1a42acc8fa268e95f28)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31 15:25:56 +00:00
Ross Burton
90ecdec944 python: add missing pkgconfig inherit
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31 14:43:02 +00:00
Yannick Gicquel
710a6e6bdc ccache: update to 3.3.3
Release note available at this location:
https://ccache.samba.org/releasenotes.html#_ccache_3_3_3

Moving to tarball source as git.samba.org is not used anymore.

License checksum change is due to an update in URL, now refering to "https"
protocol instead of "http", line 32:
'https://ccache.samba.org/authors.html'

(From OE-Core rev: d6b064fc19ba66b503fd7ad1fe56338f81499dc8)

Signed-off-by: Yannick Gicquel <yannick.gicquel@iot.bzh>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31 14:43:02 +00:00
Andreas Oberritter
929787c271 gptfdisk: fix support for 'large' drives
Make's switch '-e' replaced important compiler flags from the
project's Makefile, i.e. -D_FILE_OFFSET_BITS=64.

(From OE-Core rev: 93996a327d4c8652a16292824a06a163b13dc228)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31 14:43:01 +00:00
Richard Purdie
deaef6c879 gcc-cross: Ensure do_gcc_stash_builddir happens before do_build
If we don't do this, things break with rm_work which removes things
before the task completes causing task failures.

(From OE-Core rev: bfea0e6a5aee9ce15bf20bcb2781329e6281284c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-28 10:20:55 +00:00
Patrick Ohly
fdd6d5daf1 expect: support native compilation
This is needed for building the swtpm TPM simulator (recipe
in meta-security).

"nativesdk" is added just in case that someone also wants this
in an SDK.

(From OE-Core rev: 4b43aab5b2043a5b83ef1fa9a8406f8a46ccfa72)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26 10:44:28 +00:00
Ross Burton
d6fd8ff56e rsync: update SRC_URI
rsync.samba.org has disappeared from the Internet and isn't responding anymore,
so point the SRC_URI at the canonical samba.org download server instead.

(From OE-Core rev: 792368afdf61e7670bc5002e99880449098d50fb)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26 10:44:27 +00:00
Richard Purdie
4d04f4196c unfs3: Switch to using mirror tarball instead of subversion
This really is the last subversion url in OE-Core so replacing it with
a mirror tarball will save us from the subversion-native build chain.

(From OE-Core rev: 187f7c18582e76beca76c523cad6be2d5fff5786)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26 10:44:27 +00:00
Richard Purdie
7c55daec93 gcc: Clean up unnecessary variable confusion
SDKPKGSUFFIX could only really be "nativesdk" and TARGET_SYS never contains
that so the code manipulating TARGET_SYS is pointless. I suspect this once
worked against MULTIMACH_TARGET_SYS which would be a different question but
it no longer does. Its been cut and pasted everywhere.

This patch cleans up the variable references to make things a little more
readable.

(From OE-Core rev: 5599cb72d17bce2ba6e2be16ef64d9a388bcfb25)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26 10:44:27 +00:00
Richard Purdie
1d75635ac5 gcc/gcc-source: Move libcc1 manipulation into gcc-source
Currently there is a race where if you build -cross-canadian without building gcc (target)
you see QA errors about RPATHS. I've tracked this down to this manipulation where the
target gcc recipe changes libcc1 in the shared sources directory. As long as you build
things in the right order, the problem doesn't occur.

Since its changing ${S} move it to gcc-source and avoid the race, saving RP
some head scratching about why unrelated changes failed to build cleanly.

(From OE-Core rev: 626064c69b6fd1b5cead6995097f99e5fbda3f19)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26 10:44:27 +00:00
Richard Purdie
42ed1d8ac9 gcc: Split builddir saving into its own sstate task
When we stashed the gcc build directory for use in generating the various runtimes
we were being lazy and just used the staging directory. With recipe specific
sysroots this means we're copying a large chunk of data around with the cross
compiler which we don't really need in most cases.

Separate out the data into its own task and inject this into the configure
step. We have to do that here since autotools will wipe out ${B} if it thinks
we're rebuilding and we therefore have to time its recreation after that.

This also takes the opportunity to remove some pointless (as far as I can tell)
conditionals from the do_install code.

(From OE-Core rev: dcf15ccf3cc9d55e77228ba8d526f967fc9791b4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26 10:44:27 +00:00
Aníbal Limón
f9c758a2e7 qemu: Upgrade to 2.7.1
Minor upgrade contains fixes from 2.7.0.

Removed patches (already in upstream):

- 0001-pci-assign-sync-MSI-MSI-X-cap-and-table-with-PCIDevi.patch
- 0001-virtio-zero-vq-inuse-in-virtio_reset.patch
- 0002-fix-CVE-2016-7423.patch

(From OE-Core rev: 0f29bd2c267efcb0087d73c38202ba233af636fd)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-23 12:05:22 +00:00
Joe Slater
83ec24789f build-compare: derive PV from SRCPV
Currently, PV is "git" and contains no version information.

(From OE-Core rev: e1fe3f8a601ba289a2e9963ef3f1309e431704eb)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-23 12:05:22 +00:00
Richard Purdie
a0336965aa python3: Add upstream random.c fixes for recent glibc
python3 fails to work with recent glibc versions on older hosts, giving
errors like:

Fatal Python error: getentropy() failed
Aborted

This breaks buildtools-tarball and hence eSDK. This patch backports the
changes to random.c from upstream that address the problem.

(From OE-Core rev: 126b2c47b1806b53fbd9a4706bc48bc7c4efd3be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-23 12:05:21 +00:00
Richard Purdie
9107d6ca14 Switch to Recipe Specific Sysroots
This patch is comparatively large and invasive. It does only do one thing, switching the
system to build using recipe specific sysroots and where changes could be isolated from it,
that has been done.

With the current single sysroot approach, its possible for software to find things which
aren't in their dependencies. This leads to a determinism problem and is a growing issue in
several of the market segments where OE makes sense. The way to solve this problem for OE is
to have seperate sysroots for each recipe and these will only contain the dependencies for
that recipe.

Its worth noting that this is not task specific sysroots and that OE's dependencies do vary
enormously by task. This did result in some implementation challenges. There is nothing stopping
the implementation of task specific sysroots at some later point based on this work but
that as deemed a bridge too far right now.

Implementation details:

* Rather than installing the sysroot artefacts into a combined sysroots, they are now placed in
  TMPDIR/sysroot-components/PACKAGE_ARCH/PN.

* WORKDIR/recipe-sysroot and WORKDIR/recipe-sysroot-native are built by hardlinking in files
  from the sysroot-component trees. These new directories are known as RECIPE_SYSROOT and
  RECIPE_SYSROOT_NATIVE.

* This construction is primarily done by a new do_prepare_recipe_sysroot task which runs
  before do_configure and consists of a call to the extend_recipe_sysroot function.

* Other tasks need things in the sysroot before/after this, e.g. do_patch needs quilt-native
  and do_package_write_deb needs dpkg-native. The code therefore inspects the dependencies
  for each task and adds extend_recipe_sysroot as a prefunc if it has populate_sysroot
  dependencies.

* We have to do a search/replace 'fixme' operation on the files installed into the sysroot to
  change hardcoded paths into the correct ones. We create a fixmepath file in the component
  directory which lists the files which need this operation.

* Some files have "postinstall" commands which need to run against them, e.g. gdk-pixbuf each
  time a new loader is added. These are handled by adding files in bindir with the name
  prefixed by "postinst-" and are run in each sysroot as its created if they're present.
  This did mean most sstate postinstalls have to be rewritten but there shouldn't be many of them.

* Since a recipe can have multiple tasks and these tasks can run against each other at the same
  time we have to have a lock when we perform write operations against the sysroot. We also have
  to maintain manifests of what we install against a task checksum of the dependency. If the
  checksum changes, we remove its files and then add the new ones.

* The autotools logic for filtering the view of m4 files is no longer needed (and was the model
  for the way extend_recipe_sysroot works).

* For autotools, we used to build a combined m4 macros directory which had both the native and
  target m4 files. We can no longer do this so we use the target sysroot as the default and add
  the native sysroot as an extra backup include path. If we don't do this, we'd have to build
  target pkg-config before we could built anything using pkg-config for example (ditto gettext).
  Such dependencies would be painful so we haven't required that.

* PKDDATA_DIR was moved out the sysroot and works as before using sstate to build a hybrid copy
  for each machine. The paths therefore changed, the behaviour did not.

* The ccache class had to be reworked to function with rss.

* The TCBOOTSTRAP sysroot for compiler bootstrap is no longer needed but the -initial data
  does have to be filtered out from the main recipe sysroots. Putting "-initial" in a normal
  recipe name therefore remains a bad idea.

* The logic in insane needed tweaks to deal with the new path layout, as did the debug source
  file extraction code in package.bbclass.

* The logic in sstate.bbclass had to be rewritten since it previously only performed search and
  replace on extracted sstate and we now need this to happen even if the compiled path was
  "correct". This in theory could cause a mild performance issue but since the sysroot data
  was the main data that needed this and we'd have to do it there regardless with rss, I've opted
  just to change the way the class for everything. The built output used to build the sstate output
  is now retained and installed rather than deleted.

* The search and replace logic used in sstate objects also seemed weak/incorrect and didn't hold
  up against testing. This has been rewritten too. There are some assumptions made about paths, we
  save the 'proper' search and replace operations to fixmepath.cmd but then ignore this. What is
  here works but is a little hardcoded and an area for future improvement.

* In order to work with eSDK we need a way to build something that looks like the old style sysroot.
  "bitbake build-sysroots" will construct such a sysroot based on everything in the components
  directory that matches the current MACHINE. It will allow transition of external tools and can
  built target or native variants or both. It also supports a clean task. I'd suggest not relying on
  this for anything other than transitional purposes though. To see XXX in that sysroot, you'd have
  to have built that in a previous bitbake invocation.

* pseudo is run out of its components directory. This is fine as its statically linked.

* The hacks for wayland to see allarch dependencies in the multilib case are no longer needed
  and can be dropped.

* wic needed more extensive changes to work with rss and the fixes are in a separate commit series

* Various oe-selftest tweaks were needed since tests did assume the location to binaries and the
  combined sysroot in several cases.

* Most missing dependencies this work found have been sent out as separate patches as they were found
  but a few tweaks are still included here.

* A late addition is that extend_recipe_sysroot became multilib aware and able to populate multilib
  sysroots. I had hoped not to have to add that complexity but the meta-environment recipe forced my
  hand. That implementation can probably be neater but this is on the list of things to cleanup later
  at this point.

In summary, the impact people will likely see after this change:

* Recipes may fail with missing dependencies, particularly native tools like gettext-native,
  glib-2.0-native and libxml2.0-native. Some hosts have these installed and will mask these errors

* Any recipe/class using SSTATEPOSTINSTFUNCS will need that code rewriting into a postinst

* There was a separate patch series dealing with roots postinst native dependency issues. Any postinst
  which expects native tools at rootfs time will need to mark that dependency with PACKAGE_WRITE_DEPS.

There could well be other issues. This has been tested repeatedly against our autobuilders and oe-selftest
and issues found have been fixed. We believe at least OE-Core is in good shape but that doesn't mean
we've found all the issues.

Also, the logging is a bit chatty at the moment. It does help if something goes wrong and goes to the
task logfiles, not the console so I've intentionally left this like that for now. We can turn it down
easily enough in due course.

(From OE-Core rev: 809746f56df4b91af014bf6a3f28997d6698ac78)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-23 12:05:17 +00:00