Markus Lehtonen [Tue, 22 Nov 2016 11:21:49 +0000 (13:21 +0200)]
python-pgo-image: change python3 profile target to pybench
Running test.regrtest was still taking ridiculously long, i.e. around 4
hours in qemux86 on my desktop machine. Change to pybench which "only"
takes around 55 minutes.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Mon, 5 Sep 2016 08:57:52 +0000 (11:57 +0300)]
python3: support profile optimized build
Make it possible to do profile-optimized build. The implementation is
virtually identical to how we do it in Python 2.7. Basically, you need
to define PYTHON3_PROFILE_OPT = "1" in your local.conf and have profile
data available in the location pointed to by PYTHON3_PROFILE_DIR.
Profile data can be obtainen e.g. by running bitbake python-pgo-image -c
profile3.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Wed, 16 Nov 2016 11:30:13 +0000 (13:30 +0200)]
python3: remove two setup.py cross-compile hacks
Remove two unneeded hacks. The first hack ("setup.py: no host headers
libs" patch) is not needed because we use cross-compiler (e.g.
i586-oe-linux-gcc) which has not been configured with any host system
include or library directories, and thus, we don't get any host system
directories when running "gcc -E -v".
The second hack becomes useless after the first hack has been removed
and we get the standard include and lib directories normally from gcc.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Tue, 15 Nov 2016 13:11:03 +0000 (15:11 +0200)]
python-pgo-image: profiling for python3
Add a new 'do_profile3' task for python-pgo-image that runs profiling
task for python3 and retrieves the profile data, similarly to
'do_profile' for python2. Profile data will be copied into a directory
pointed by PYTHON3_PROFILE_DIR on the host system. The profile task may
be specified with PYTHON3_PROFILE_TASK.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Mon, 14 Nov 2016 15:16:42 +0000 (17:16 +0200)]
python3: add python-profile-opt3 recipe
Similar to python-profile-opt for Python 2.7, this is a special version
of Python3 used for profile guided optimization. It is used for
generating profile data on the target device. Libpython3 is renamed to
libpython-profile-opt3 in order to prevent soname clash with "normal"
libpython3.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Fri, 25 Nov 2016 12:11:04 +0000 (14:11 +0200)]
python3-native: support profile optimized build
This feature is virtually identical to that of python-native. Profile
guided optimization is enabled by defining
PYTHON3_NATIVE_PROFILE_OPT = "1"
in local.conf. In addition, the profile task may be defined with
PYTHON3_NATIVE_PROFILE_TASK.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Wed, 26 Oct 2016 07:32:19 +0000 (10:32 +0300)]
python-pgo-image: enable sstate for do_profile
There are caveats however, basically because of the circular dependency
between python-pgo-image and python (python is a build dep of
python-pgo-image, and at the same time, depends on the profile data
generated by python-pgo-image). In practice the sstate data is only used
when no profile data is yet present. Existing profile data (i.e.
non-empty PYTHON_PROFILE_DIR) changes signature hash of python which, in
turn, changes signature of python-pgo-image and causes a sstate
signature mismatch and rebuild of python-pgo-image. Thus, in order to
utilize sstate data the user should run "bitbake python-pgo-image -c clean"
(or otherwise wipe pre-existing profile data) before running
"bitbake python-pgo-image -c profile".
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Tue, 18 Oct 2016 14:11:18 +0000 (17:11 +0300)]
python-pgo-image: exclude tests from the default profile target
Exclue tests that are segfaulting or otherwise failing (on qemux86
target), and thus, causing the profile task to fail.
Also, disable tests that are taking very long to execute. In qemux86
target on my i7-3770K:
test_lib2to3: 1908.8s
test_io: 1278.4s
test_itertools: 436.4s
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Mon, 5 Sep 2016 08:57:52 +0000 (11:57 +0300)]
python: make profile-optimized build possible
This patch makes it possible to build python with profile directed
optimization. That is, feed python build process with profile data to
guide optimization. This is the third (and the last) step in profile
directed optimization for Python.
In order to do a profile-optimized build you need to set
PYTHON_PROFILE_OPT = "1" in your local.conf. Be sure to get the profile
data for python, preferably by running
"bitbake python-pgo-image -c profile".
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Thu, 1 Sep 2016 14:18:54 +0000 (17:18 +0300)]
devtools/images: add python-pgo-image
This is a special image for profiling Python in order to utilize
profile-guided-optimization. Profile data can be obtained by by running
bitbake python-pgo-image -c profile. It will be located in the directory
pointed by ${PYTHON_PROFILE_DIR}. The profile task that is run can be
altered by specifying ${PYTHON_PROFILE_TASK}.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Tue, 18 Oct 2016 14:10:37 +0000 (17:10 +0300)]
python-profile-opt: rename libpython
The python library needs to be renamed so that the automatic dependency
generation/checking mechanism in bitbake does not get confused.
Otherwise python-profile-opt will depend on libpython from the "normal"
python package.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Fri, 16 Sep 2016 10:25:17 +0000 (13:25 +0300)]
python: remove path hack from setup.py
There should be no need to hack the library and include dirs in
setup.py. The script detects them from compiler output. We need to
remove this is because python-profile-opt recipe is built with a
non-standard prefix setting (i.e. /opt) and the hack breaks the
discovery of system libraries and headers.
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Mon, 5 Sep 2016 08:57:52 +0000 (11:57 +0300)]
python: add python-profile-opt recipe
This patch adds a new recipe that builds a special version of python
that produces profile data for profile guided optimization. It will
install under /opt in order to prevent clash with the "normal" python.
The new recipe directly includes the base python recipe so that they are
build in as similar way as possible and this hopefully decreases the
recipe maintenance burden, too.
Normally, python profile-guided-optimization is done simply by doing
"make profile-opt" which first builds python with profile
instrumentation enabled, then runs a profile task to get the profile
data, and last, re-builds python with profile data guiding the
optimization. However, in our cross-build environment this gets a lot
trickier. We need to split out the steps as building is done on the
build host but we need to run the second step (i.e. run the profile
task) on the target hardware. This patch enables the first step, i.e.
building python with profile instrumentation enabled
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Markus Lehtonen [Fri, 4 Nov 2016 10:18:24 +0000 (12:18 +0200)]
python-native: support profile optimized build
Make it possible to build python-native with profile directed
optimization enabled. The feature is enabled by setting
PYTHON_NATIVE_PROFILE_OPT = "1" in local.conf.
The profile task to run may be specified with PYTHON_NATIVE_PROFILE_TASK
variable in local.conf, e.g.
PYTHON_NATIVE_PROFILE_TASK = "${S}/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck"
[YOCTO #9338]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Ng Wei Tee [Fri, 5 May 2017 02:04:58 +0000 (19:04 -0700)]
linux-firmware: enable netronome firmware
It was previously disabled, as rpm refused to package it into noarch
package, due to the firmware being considered arch-specific. This
check is disabled in rpm now.
The netronome binaries has ELF headers which will trigger an
arch-specific error. INSANE_SKIP variable is used to skip some
package_qa check usage.
Signed-off-by: Ng Wei Tee <wei.tee.ng@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ng Wei Tee [Fri, 5 May 2017 02:04:57 +0000 (19:04 -0700)]
rpm: allow arch-dependent binaries in noarch packages
This is needed for packages like linux-firmware which have a
legitimate reason for it. Oe-core has a separate package_qa
test for this situation, so any accidental inclusions of such
binaries will still be caught.
[YOCTO #11329]
Signed-off-by: Ng Wei Tee <wei.tee.ng@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
'fontforge issue' was actually a non-issue; fontforge is required only
when building ttf fonts from sfd source. We took prebuilt ttf fonts
when using 1.04 version, and can do the same thing with 2.00.1 version,
it's just that the tarball name for prebuilt fonts has slightly changed
and no one noticed somehow.
License has changed from GPLv2 to Open Font License v.1.1
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Marc Ferland [Tue, 25 Apr 2017 14:48:34 +0000 (10:48 -0400)]
bluez5: Upgrade 5.43 -> 5.44
New feautures/fixes in this version:
* fixes to BLE
* a new midi plugin
* support for single-mode controllers w/o public address
* most of the experimental tools have been promoted and are now part of
the official tools
* 'experimental' has been renamed to 'testing' (hence the addition of
the 'testing' package config option)
* classic command line tools like hciattach and hciconfig are now enabled
by the "--enable-deprecated" configure option (enabled by default for
backward compatibility).
Signed-off-by: Marc Ferland <ferlandm@amotus.ca> Signed-off-by: Ross Burton <ross.burton@intel.com>
1) Upgrade libarchive from 3.2.2 to 3.3.1.
2) Fix an unknown-configure-option "--without-lzmadec" when do_configure.
3) Delete three patches, since they are integrated upstream.
0001-archive_write_disk_posix.c-make-_fsobj-functions-mor.patch
0002-Fix-extracting-hardlinks-over-symlinks.patch
non-recursive-extract-and-list.patch
Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ross Burton [Tue, 2 May 2017 12:42:08 +0000 (13:42 +0100)]
oeqa/selftest: add test for package manager version comparison
This test case verifies that opkg, dpkg, and rpm all have the same behaviour for
version ordering, specifically the behaviour of ~ which should be sorting
*before* nothing:
1.0 < 2.0~pre < 2.0 < 2.0-fix
Signed-off-by: Ross Burton <ross.burton@intel.com>
Split the configuration values (common and specific) so it is easier to read
what goes into the config file. Also the specific configurations are
set in every loop so these do not append on each iteration.
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
rootfs-postcommands.bbclass: Check if "/etc/fstab" exists
Using "read-only-rootfs" feature in minimal or special
purpose images (eg mounted images) makes build to fail
because ${IMAGE_ROOTFS}/etc/fstab file does not exist.
Signed-off-by: Panagiotis Tamtamis <panagiotis.tamtamis@unify.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Thu, 27 Apr 2017 08:17:33 +0000 (11:17 +0300)]
oe.lsb: add get_os_release()
Move get_os_release() from oeqa.utils.metadata to oe.lsb, merging the
code with release_dict_osr() from oe.lsb. This removes some code
duplication and makes get_os_release() more robust.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Richard Purdie [Fri, 12 May 2017 10:05:41 +0000 (12:05 +0200)]
useradd: Create lib/oe/useradd function library
The code in useradd-staticids is generally useful for user addition
functionality but is not reusable in its current form. Refactor the
code into a set of library functions.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 8 Mar 2017 14:22:30 +0000 (14:22 +0000)]
populate_sdk_ext: Avoid build failures where sstate was used
If sstate was used to populate the build and one of the universal-4.8
or universal-4.9 mirror urls was used, the sstate checks during eSDK
construction could fail as it would zero out the SSTATE_MIRRORs
variable.
Use the same mirrors variable setting as the eSDK would end up using
to perform the checks to avoid this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 9 Mar 2016 23:04:48 +0000 (23:04 +0000)]
gcc-configure/gcc-target: Move arm6/7 config to target only
We only build one gcc-cross per architecture and having target specific
flags means gcc-cross would rebuild. These flags are really for the
on target case, so they should be set in gcc-target only.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 7 Mar 2017 20:10:31 +0000 (20:10 +0000)]
glibc: Avoid errors if you accidentally create a git symlink in the glibc source dir
If you accidentally create symlinks in the glibc sources directory, it
fails in very hard to understand ways. Whilst most people don't do this,
since I debugged it, specifify the list of plugins we use to avoid
this biting anyone else.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 11 May 2016 15:29:05 +0000 (16:29 +0100)]
base: Simplify BASEDEPENDS construction
This code dates from distant times before we had class overrides.
The comments are also rather stale. Rewrite this code using class
overrides which makes it safer, more modern and more easily
understandable.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Zhixiong Chi [Thu, 20 Apr 2017 07:04:54 +0000 (15:04 +0800)]
bash: CVE-2016-0634
A vulnerability was found in a way bash expands the $HOSTNAME.
Injecting the hostname with malicious code would cause it to run
each time bash expanded \h in the prompt string.
Porting patch from <https://ftp.gnu.org/gnu/bash/bash-4.3-patches/
bash43-047> to solve CVE-2016-0634
CVE: CVE-2016-0634
Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
update SRC_URI: as of 1.7.3, repo changed. same owner
Renamed recipe to reflect PV and added Epoch
Added ptest, tests added v1.7.3
updated LICENSE to be more accurate.
Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Richard Purdie [Fri, 31 Mar 2017 14:28:07 +0000 (15:28 +0100)]
package_ipk/deb: Tweak functions for better cleanup and layout
This uses more modern formatting to handle the lockfiles and control
file cleanup with try/finally, taking advantage of the previous
extra indentation.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 31 Mar 2017 12:34:24 +0000 (13:34 +0100)]
package_deb: Split do_package_write_deb into two functions
This prepares the way to parallelise deb generation and splits the iteration
over packages and the package generation into separate functions. Whitespace
indentation is unchanged deliberately and is fixed in a followup patch. There
should be no functional change.
Some checks on variables are removed as they were pointless when you looked
at the code.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 30 Mar 2017 21:02:08 +0000 (22:02 +0100)]
package_ipk: Split into two functions
This prepares the way to parallelise ipk generation and splits the iteration
over packages and the package generation into separate functions. Whitespace
indentation is unchanged deliberately and is fixed in a followup patch. There
should be no functional change.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 8 May 2017 10:56:22 +0000 (11:56 +0100)]
staging: Allow BB_LIMITEDDEPS to avoid BB_TASKDEPDATA
In the limited dependency case we don't use any of the data from
BB_TASKDEPDATA. Restructure the code so this variable doesn't have
to be set. This allows the function to be called from other contexts
without creating artificial constructs. There should be no functional
change, behaviour remains unchanged.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 4 May 2017 10:59:14 +0000 (11:59 +0100)]
sstate: Ensure native/cross recipes have relocation of HOSTTOOLS_DIR
The previous change to relocate HOSTTOOLS wasn't complete as some files,
particularly in gcc stashed build directories were not being correctly
relocated. This patch addresses the issue.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently the file encodes full paths to various host tools in the
HOSTTOOLS directory which is bad in native and target cases. We can
simply use the versions from PATH quite safely in OE.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
tcf-agent: enable default target debugging features
A number of features were disabled in OE due to historic problems
on ARM. In tcf-agent 1.4, they compile cleanly on all architectures
besides mips and libc-musl. These features are required for target
debugging with Eclipse Neon, CDT and TCF plugins - for example used
by Xilinx Vivado SDK 2016.4.
For MIPS and libc-musl, at least re-enable SERVICE_Symbols and
SERVICE_LineNumbers which compile cleanly.
Signed-off-by: Gernot Hillier <gernot.hillier@siemens.com> Signed-off-by: Tim Offermann <tim.offermann@siemens.com> Acked-by: Eugene Tarassov <eugene.tarassov@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
tcf-agent uses "a64", not "aarch64", see agent/Makefile.inc. This fix
allows to re-enable features like SERVICE_Breakpoints and SERVICE_
MemoryMap on arm64.