Richard Purdie [Thu, 5 Dec 2013 00:49:12 +0000 (00:49 +0000)]
bitbake.conf/native.bbclass: Use FC instead of F77 for fortran
gcc tooling appears to be standardising around the FC variable naming.
This patch changes the F77 namespace to FC instead and use the default
gfortran compiler. If anyone needs the F77 variables or tools, those
can still be made on a case by case basis.
Also updates local.conf.sample.extended accordingly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 5 Dec 2013 00:48:30 +0000 (00:48 +0000)]
gcc: Allow fortran to build successfully in 4.8
gcc 4.8 fortran presents some challenges:
* libquadmath headers need to be in the libexec include dir. It turns out
to be easiest just to manually do this.
* libgfortran configure needs libquadmath to be compiled. This means
a separate recipe is needed (the alternative is gross hacks)
* the libtool uses to link libgfortran doesn't have our improved rpath
handling and puts bogus RPATHS into the libraries. We can avoid this
by tweaking libtool with sed.
This patch resolves those issues. Any user of fortran does need to DEPEND
on libgfortran in order to trigger it to build but this shouldn't be a major
issue.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Wed, 4 Dec 2013 13:13:52 +0000 (15:13 +0200)]
lib/oeqa/selftest: buildoptions: small fixes for some tests
While harmless, we should overwrite the config not append to it,
and use m4 as target, otherwise the WARN check will
build an entire image and we are not interested in that.
Also add an output check for the WARN_QA test.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 4 Dec 2013 13:07:25 +0000 (13:07 +0000)]
eglibc-options: Rewrite so it benefits from bitbake's contains handling
Having eglibc rebuild every time DISTRO_FEATURES changes is suboptimal.
This rewrite takes advantage of bitbake's understanding of the contains
function so this doesn't happen. The code is marginally uglier but is
worth the benefit in fewer libc rebuilds.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Wed, 4 Dec 2013 11:42:58 +0000 (13:42 +0200)]
lib/oeqa/selftest/base, scripts/oe-selftest: fix wrong remove path and do a complete cleanup at the end
The script should clean-up all the .inc files that might
have been created by tests regardless of the outcome or if
the script is interrupted. (currently the
last test will leave a conf/selftest.inc around, even
if it's not included anywhere)
Also fix delete_recipeinc to actually delete what's supposed to.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
yzhu1 [Tue, 26 Nov 2013 08:38:28 +0000 (08:38 +0000)]
populate_sdk: verify executable or dynamically linked library
When toolchain directory is changed to execute mode, some non-executable
files or empty files are sorted. This will result in some errors. Thus when
sorting executable files or dynamically linked library, additional conditions
are to exclude non-executable files or empty files.
Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using make -j with the 'install' target, it's possible for altbininstall
(which normally creates BINDIR) and libainstall (which doesn't, though it
installs python-config there) to race, resulting in a failure due to
attempting to install python-config into a nonexistent BINDIR. Ensure it also
exists in the libainstall target.
Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Tue, 26 Nov 2013 09:18:21 +0000 (11:18 +0200)]
lib/oeqa: targetcontrol.py: add abstraction for running tests on different targets
Add a new module which abstracts the target object used by testimage.bbclass
The purpose of this module is to move the deployment of a target from testimage.bbclass,
basically abstracting different implementations of how we setup a target and how it runs commands.
It allows to select one implementation or another by setting TEST_TARGET (currently to: "qemu" and "simpleremote").
QemuTarget is used to start a qemu instance (as it's currently done in testimage.bbclass)
SimpleRemoteTarget is meant for a remote machine (by setting TEST_TARGET_IP) that's already up and running
with network and ssh.
Simply put, it opens the door for running the tests on different types of targets by adding new classes
(maybe qemu-nfsroot or remote-special etc.). One could also override BaseTarget which currently uses
the existing SSHControl module and add a serial implementation.
[ YOCTO #5554 ]
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Tue, 26 Nov 2013 09:18:22 +0000 (11:18 +0200)]
testimage: use the new targetcontrol.py module for running tests
This patch makes the necessary changes for using the targetcontrol.py module
so that one can run the same tests on a qemu instance or a remote machine
based on the value of TEST_TARGET variable: "qemu" or "simpleremote".
The default value is "qemu" which starts a qemu instance and it's the
with what we currently have.
With "simpleremote", the remote machine must be up with network and ssh
and you need to set TEST_TARGET_IP with the IP address of the remote machine
(it can still be a qemu instance that was manually started).
Basically testimage.bbclass now does something along the lines of:
- load tests -> deploy (prepare) / start target -> run tests.
There were a couple of changes necessary for tests and
also some cleanups/renames that were needed to adjust this change. (use
ip everywhere when refering to target and server_ip when refering to host/build machine)
Also two unnecessary and unsed methods were dropped from sshcontrol.
[ YOCTO #5554 ]
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tudor Florea [Thu, 28 Nov 2013 12:48:05 +0000 (13:48 +0100)]
kmod: avoid parallel-tests
buildtest-TESTS and runtest-TESTS targets are required by ptest.
In order to have those targets in automake 1.13.4, serial-tests
should be specified since parallel test is assumed by default
and serial-tests is optional.
Signed-off-by: Tudor Florea <tudor.florea@enea.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yue Tao [Thu, 28 Nov 2013 08:34:48 +0000 (16:34 +0800)]
python: do not replace ccache in the middle of a path
Python recipe did a sed s/ccache/$(CCACHE) on the Makefile, which
replaces all "ccache" including ones that consist of a full path.
This leads to build error when building in a project path with
"ccache" in its name. Fix it by only replacing "ccache " with
"$(CCACHE) ".
Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Thu, 28 Nov 2013 13:27:00 +0000 (15:27 +0200)]
lib/oeqa: use the new manifest file for determining if a package is installed
Use the new manifest file instead of ${WORKDIR}/installed_pkgs.txt for determining
if an image has a certain package, because installed_pkgs.txt goes away with rm_work
enabled.
We can't use the IMAGE_MANIFEST var for the file path because that relies on IMAGE_NAME which
changes at every run (because of date), so we use the link which points to the last
one built.
[ YOCTO #5072 ]
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Build images and tests different build options like RM_OLD_IMAGE
and for WARN_QA/ERROR_QA behaviour.
Signed-off-by: Alexandru Palalau <alexandrux.palalau@intel.com> Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta-selftest: create a new test layer to be used by oe-selftest script
Everything in this layer is meant to be used by tests called by
scripts/oe-selftest. These are helper recipes/appends to test various bitbake
options or scripts.
Currently most of these files here only have "include test_recipe.inc" which
is the file tests will actually use.
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com> Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Wed, 27 Nov 2013 17:08:50 +0000 (19:08 +0200)]
scripts/oe-selftest: script to run builds as unittest against bitbake or various scripts
The purpose of oe-selftest is to run unittest modules added from meta/lib/oeqa/selftest,
which are tests against bitbake tools.
Right now the script it's useful for simple tests like:
- "bitbake --someoption, change some metadata, bitbake X, check something" type scenarios (PR service, error output, etc)
- or "bitbake-layers <...>" type scripts and yocto-bsp tools.
This commit also adds some helper modules that the tests will use and a base class.
Also, most of the tests will have a dependency on a meta-selftest layer
which contains specially modified recipes/bbappends/include files for the purpose of the tests.
The tests themselves will usually write to ".inc" files from the layer or in conf/selftest.inc
(which is added as an include in local.conf at the start and removed at the end)
It's a simple matter or sourcing the enviroment, adding the meta-selftest layer to bblayers.conf
and running: oe-selftest to get some results. It would finish faster if at least a core-image-minimal
was built before.
[ YOCTO #4740 ]
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 2 Dec 2013 18:50:51 +0000 (18:50 +0000)]
classes/buildhistory: do git garbage collection after committing
We don't normally perform any operations (such as "git pull") that
trigger "git gc --auto", thus garbage collection never happens which
means performance of accessing the repository degrades noticeably over
time. Add an explicit "git gc --auto" to clean things up when needed.
Thanks to Elijah Newren and Ross Burton for suggesting this.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 2 Dec 2013 18:50:50 +0000 (18:50 +0000)]
classes/buildhistory: reduce parsing time
Disable several python functions if not parsing within the worker
context. This avoids executing expensive operations while parsing
recipes (which is unnecessary).
(Thanks to Richard Purdie for pointing out the issue and suggesting the
workaround.)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 2 Dec 2013 18:50:49 +0000 (18:50 +0000)]
classes/buildhistory: improve collection of package info
Use a function added to SSTATEPOSTINSTFUNCS and read the necessary
information out of pkgdata, instead of using a function executed
during do_package that reads the data directly. This has two benefits:
* The package info collection will now work when the package content is
restored from shared state
* Adding/removing the inherit of buildhistory will no longer change the
do_package signatures and force re-execution of that function for
every recipe.
Fixes [YOCTO #5358]
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 2 Dec 2013 18:50:47 +0000 (18:50 +0000)]
classes/buildhistory: drop cruft from old SRCREV tracking implementation
This should have been removed when the implementation was rewritten in
OE-Core commit 2179db89436d719635f858c87d1e098696bead2a. The collected
values weren't being used anywhere since then.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 2 Dec 2013 18:50:45 +0000 (18:50 +0000)]
classes/package: record PKGSIZE as total file size in pkgdata
We were using "du -sk" to collect the total size of all files in each
package for writing out to PKGSIZE in each pkgdata file; however this
reports the total space used on disk not the total size of all files,
which means it is dependent on the block size and filesystem being used
for TMPDIR on the build host. Instead, take the total of the size
reported by lstat() for each packaged file, which we are already
collecting for FILES_INFO in any case.
Note: this changes PKGSIZE to be reported in bytes instead of kilobytes
since this is what lstat reports, but this is really what we should be
storing anyway so that we have the precision if we need it.
Fixes [YOCTO #5334]
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 2 Dec 2013 18:50:44 +0000 (18:50 +0000)]
classes/package: fix FILES_INFO serialisation in pkgdata
The FILES_INFO entry in each pkgdata file stores the list of files for
each package. Make the following improvements to how this is stored:
* Store paths as they would be seen on the target rather than
erroneously including the full path to PKGDEST (which is specific to
the build host the package was built on)
* For simplicity when loading the data, store complete paths for each
entry instead of trying to break off the first part and use it as the
dict key
* Record sizes for each file (as needed by Toaster)
* Serialise the value explicitly using json rather than just passing it
through str().
Fixes [YOCTO #5443].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Koen Kooi [Mon, 2 Dec 2013 12:04:37 +0000 (13:04 +0100)]
linux-dummy: catch up with image.bbclass changes
image.bbclass now depends on virtual/kernel:do_deploy, so add a task for that.
This fixes errors like this:
ERROR: Task do_build in /build/linaro/build/meta-linaro/meta-linaro/recipes-linaro/images/linaro-image-lng.bb depends upon non-existent task do_deploy in /build/linaro/build/openembedded-core/meta/recipes-kernel/linux/linux-dummy.bb
Signed-off-by: Koen Kooi <koen.kooi@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jason Wessel [Mon, 25 Nov 2013 21:21:28 +0000 (15:21 -0600)]
oe-init-build-env: Allow startup with and without memres
Use the bitbake --status-only and the fact that bitbake.lock will
contain the host name and port to determine when to activate or
shutdown the stay resident bitbake server.
This allows a end developer to cleanly switch between the two ways to
use bitbake as well as enter the memres bitbake server from multiple
shells without starting the server if it is already running.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Fri, 29 Nov 2013 13:51:05 +0000 (13:51 +0000)]
qt4-x11-free: depend on ICU
ICU presence is auto-detected at configure time and until recently (e68850 and
d61230) was pulled into most builds through harfbuzz and beecrypt. Now it's
floating and this leads to build failures.
As in all likelihood the majority of people were building this with ICU enabled,
add an explicit dependency.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Tue, 26 Nov 2013 17:33:45 +0000 (12:33 -0500)]
linux-yocto/3.10: -rt, ebtables and e1000 fixes
Updating the 3.10 SRCREVs for the following fixes:
f47ea28 bridge: enable EBTABLES a9ec82e e1000: prevent oops when adapter is being closed and reset simultaneously a4e1bd7 Revert "arm: add dummy swizzle for versatile with qemu"
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Roy Li [Fri, 29 Nov 2013 06:11:00 +0000 (14:11 +0800)]
webkit/midori: block to build webkit on mips64 with libn32 ABI
To mips64 libn32, The HOST_SYS is mips64-*-linux-gnun32, the COMPATIBLE_HOST
is mips64.*-linux, the regular expression matching both will return true. so
append the ending position word into COMPATIBLE_HOST to make match failure
Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Fri, 29 Nov 2013 12:15:45 +0000 (20:15 +0800)]
busybox: add busybox_git.bb recipe
Add busybox_git.bb recipe so that it would be easier to hack with
busybox. Set DEFAULT_PREFERENCE to "-1" in the git recipe so that we
still use the busybox_1.21.1.bb recipe by default.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The gem and xbios options exist but their helptext is wrong and there
is no "video" in the name. This patch removes the now obsolete options
and corrects the names of the others to match reality.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 29 Nov 2013 14:36:42 +0000 (14:36 +0000)]
image.bbclass: Depend on virtual/kernel:do_deploy
Now that none of the packagegroups depend on virtual/kernel, we have the problem
that MACHINE=qemumips bitbake core-image-minimal doesn't put a kernel
into the deploy directory. This breaks many common usecases and
user expectations.
To avoid this, add a dependency on the kernel deploy to image do_build tasks.
This should avoid any circular dependency issues but equally ensure users
have their expectations met.
[YOCTO #5581]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 29 Nov 2013 11:22:56 +0000 (11:22 +0000)]
base/gcc-common: Ensure umask setting is consistent for shared workdir
gcc has cross and target components with a shared workdir. The unpack umask
settings need to match for all of these. We need to use strings in each
case to ensure the sstate code matches them correctly.
This patch tweaks various things to ensure the change adding the unpack umask
change doesn't break the compiler builds.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 27 Nov 2013 15:32:13 +0000 (15:32 +0000)]
sstatesig.py: Fix image regeneration issue
With the "ABI safe" recipes, we've been excluding those from signatures. This
is fine in the general case but in the specific case of image recipes it breaks.
A good test case is the interfaces file. Editting this causes init-ifupdown
to rebuild but not an image containing it (e.g. core-image-minimal).
We need to ensure the checksums are added to the image recipes and this change
does that.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Fri, 22 Nov 2013 21:19:03 +0000 (22:19 +0100)]
base.bbclass: Set umask 022 also for do_unpack task
* when git checkouts files from fetched clone it respects system umask
and creates files with different permissions, if such files are copied
to packages, resulting target images have also different permissions
on them.
* we need reproducible builds across different builders with different
system umask, so set 022 umask
[YOCTO #5590]
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The module class already ensures the scripts are rebuilt correctly. Running
this at sstate installation time is problematic since it can require the
cross compiler. Adding such a dependency would cause issues of its own.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Zhangle Yang [Wed, 27 Nov 2013 14:00:21 +0000 (22:00 +0800)]
rpcbind: Fix rpcbind restart failure when rpcbind is not running
"rpcbind restart" executes stop and then start function. However, if
rpcbind is not started, "exit 0" shall be run in stop function, so start
function will not be run at all. This patch changes "exit 0" to "return 0".
Signed-off-by: Zhangle Yang <zhangle.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Nick D'Ademo [Tue, 26 Nov 2013 06:26:46 +0000 (17:26 +1100)]
libav: install libraries to right directory when multilib is enabled
Explicitly set libdir and shlibdir to ${libdir} in EXTRA_OECONF. Otherwise, default library path of ${prefix}/lib is used which is incorrect in a multilib build.
Signed-off-by: Nick D'Ademo <nickdademo@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 26 Nov 2013 22:14:47 +0000 (22:14 +0000)]
chrpath: Improve crazy code
The current code is a little bit overcomplicated, deficient and also
possibly broken.
Issues include:
a) Not maximally optisming rpaths (e.g. a lib in usr/lib might get an
rpath of $ORIGIN/../../usr/lib)
b) The return in the middle of the for loop look suspiciously like
it might break on some binaries
c) The depth function, loops of "../" prepending and so on can
be replaced with a call to os.path.relpath
This patch cleans up the above issues.
Running binaries should result in less "../" resolutions which can't
hurt performance either.
[YOCTO #3989]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Wed, 27 Nov 2013 01:53:39 +0000 (02:53 +0100)]
icecc: Disable icecc for allarch recipes
* Fix icecc.bbclass failing with:
ERROR: recipe-name NULL prefix
when it's used with empty TARGET_PREFIX.
* Allarch recipes cannot use compiler at all (even the local one)
so there is no point of using icecc for them.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Nick D'Ademo [Wed, 27 Nov 2013 10:20:01 +0000 (21:20 +1100)]
tcl: fix version string and make recipe multilib build compatible
Explicitly set libdir in EXTRA_OECONF so that the correct library folder is generated in a multilib build.
The version string (VER) has been changed to 8.6.1 and the library paths have been updated accordingly so that the related tk recipe can correctly detect tcl (this search is done using the tclConfig.sh script which contains the tcl version number).
Signed-off-by: Nick D'Ademo <nickdademo@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>