summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
* binconfig.bbclass: fix get_binconfig_mangle()Robert Yang2017-02-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | The command was: s += " -e 's:-L${libdir}:-LOELIBDIR:;'" s += " -e 's:-I${includedir}:-IOEINCDIR:;'" s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'" s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'" s += " -e 's:-I${WORKDIR}:-I${STAGING_INCDIR}:'" s += " -e 's:-L${WORKDIR}:-L${STAGING_LIBDIR}:'" The STAGING_LIBDIR and STAGING_INCDIR now contains WORKDIR, so the result would be incorrect like: TCL_INCLUDE_SPEC='-IFIXMESTAGINGDIRTARGET/usr/include/recipe-sysroot/usr/include/tcl8.6' Note, the "/usr/include/recipe-sysroot" is not needed. Move the last two sed commands ahead will fix the problem. (From OE-Core rev: 42e4e36de37b8e06a2ff56172d04d3ffeccfbfae) 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>
* native.bbclass: populate native recipe with it's filesSaul Wold2017-02-231-0/+5
| | | | | | | | | | | | | | This allows a native package's recipe-sysroot-native to be populated with that packages native image files. This in turns allows it to be used by scripts or other tools without creating un-necessary DEPENDS. An example of this is systemtap-native and the crosstap script. (From OE-Core rev: 7f6b4359e1f2d9d748d23305a2af73c0efba5928) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: do_deploy requires depmodwrapperRobert Yang2017-02-231-0/+2
| | | | | | | | | | | Fixed: run.do_deploy.27809: line 155: depmodwrapper: command not found (From OE-Core rev: 96b7eceefb3e99848d1c16d7c5da123056dcdc24) 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>
* terminal.bbclass: export configure varsRobert Yang2017-02-231-1/+1
| | | | | | | | | | | | | | So that we can easily reproduce configure by: $ $CACHED_CONFIGUREVARS ./configure $CONFIGUREOPTS $EXTRA_OECONF [YOCTO #9423] (From OE-Core rev: a851f57de63fe527e04f2296245e9720c40f9c2e) 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>
* useradd-staticids: fix typo for '--expiredate'Peter Bergin2017-02-231-1/+1
| | | | | | | | | | | | | | | | | | | There is a typo in the useradd-staticids.bbclass that causes error during do_install. If build was configured to use usedadd-staticids and the recipe included (for example): USERADD_PARAM_${PN} = "--expiredate '' testUser" Due to the typo this added the wrong option '--expiredata ' that caused an error. (From OE-Core rev: 9d26a2f9f52ae9df6aa5e0ee20683ada35c32af1) Signed-off-by: Peter Bergin <peter@berginkonsult.se> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/context.py: Fix use of getTarget() with testexportMariano Lopez2017-02-231-1/+5
| | | | | | | | | | | | | | | | The idea on getTarget is to use kwargs to send custom variables to different targets, instead of this, a new variable was added (just used for custom targets) and this broke testexport. So in order to fix it, just add the custom variable to kwargs. This fixes the use of getTarget() in testexport class that was introduced in 1dc8010afd71fe46fb28bb86fb7c07a5fbd3d7cf. (From OE-Core rev: cf138029a1f18f991fc7a28c81d85884942e9d56) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types_wic: fix expansion errorEd Bartosh2017-02-231-1/+1
| | | | | | | | | | | | | | | | | | | Variable WKS_SEARCH_PATH was not fully expanded when used directly in this expression: WKS_FULL_PATH = "${@wks_search('${WKS_FILES}'.split(), '${WKS_SEARCH_PATH}') or ''}" This caused expansion error: bb.data_smart.ExpansionError: Failure expanding variable WKS_FULL_PATH, .... which triggered exception SyntaxError: invalid syntax (WKS_FULL_PATH, line 1) Calling d.getVar instead of directly referencing variables should fix the issue. (From OE-Core rev: 20f8fddd28fe46d7e694804de3d894cdf9f7c636) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-container.bbclass: Error if not using linux-dummyRandy Witt2017-02-191-0/+18
| | | | | | | | | | | | | | | | | | | In the typical case of a container, the user doesn't particularly care about the kernel version used. Since using linux-dummy prevents building a kernel in the most common case, alert the user if they choose a container image, but don't also specify linux-dummy. In the cases the user actually does want to build against particular kernel headers, etc, they can override by setting IMAGE_CONTAINER_NO_DUMMY = "1". [YOCTO #9502] (From OE-Core rev: f0645e172bb839803d616f19307e1e81e0d204c0) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-container.bbclass: Add the "container" IMAGE_FSTYPESRandy Witt2017-02-193-0/+7
| | | | | | | | | | | | | The "container" fstype does very little other than pick tar.bz2 as the actual image type and disable installation of ROOTFS_BOOTSTRAP_INSTALL. [YOCTO #9502] (From OE-Core rev: e45f074b792a43aa2fd84a5a3f0e20bf1d88ad7e) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: trivial: remove extra } from bsp_definitionBruce Ashfield2017-02-191-1/+1
| | | | | | | | | | A typo introduced an extra } in the logging of the bsp_definition. While this won't cause problems .. it needs to be fixed! (From OE-Core rev: 9b95f3fca2a94ca922e05321096e07a11e98f9bb) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto.bbclass: ensure repatching when HEAD is checked outAwais Belal2017-02-191-0/+4
| | | | | | | | | | | | | | | | | | | | In some cases it is seen that kernel_checkout and validate_branches are run again in simultaneous builds. During do_patch the kgit-s2q mechanism looks for a sentinel file inside the .git directory, finds a fence post and starts picking up patches after that. This can create trouble as validate_branches checks out the HEAD of the branch and so the patches should be reapplied rather than skipped due to finding of the fence post. We can call kgit-s2q --clean to remove the sentinel file when the branches are checked out. (From OE-Core rev: d57aeafdd2b49010a9fa6d1cd9d10f3cfd5754a5) Signed-off-by: Awais Belal <awais_belal@mentor.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/license: Respect beginline and endlineJoshua Watt2017-02-151-11/+23
| | | | | | | | | | | | | Recipes have the option of specifying a 'beginline' and 'endline' options in LIC_FILES_CHKSUM which will cause the license bbclass to only extract those specific lines from the license file when generating the license database. (From OE-Core rev: 515f4c129ad27e9502621738d0bf7f5552627f19) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane.bbclass: print QA message correctlyStephano Cetola2017-02-151-1/+1
| | | | | | | | | | | | | | | Replace call to non-existent method "messages" with call to correct QA logging method. Fixes [YOCTO #11014] introduced in OE-core revision 1dcb38ca9d6 (From OE-Core rev: 7f3e6d7ce94659447e1b1cdcb2440305581c8cbb) Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_deb.bbclass: Ignore file paths in RPROVIDESAmarnath Valluri2017-02-151-0/+4
| | | | | | | | | | | | Unlike rpm, debian packaging does not allow file paths in 'Provides:' field. When 'usrmerge' distro feature enabled bash/busybox packages adds '/bin/sh' to it's RPROVIDES to satisfy build dependencies, this entry should be filtered out. (From OE-Core rev: a36165ea8bf8c7a061a0173076c83ae6806d65b6) Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage.bbclass: Add check for empty test suiteMariano Lopez2017-02-151-0/+4
| | | | | | | | | | | | | | | If for some reason (most likely incorrect TEST_SUITES var) you end with an empty test suite, testimage will start the target (qemu by default) and will run an empty suite, so better have a check before starting the target. [YOCTO #10979] (From OE-Core rev: 8345f834a080737f03bee3f0c615dd9654401d93) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: Use 'populate_sdk_base' for non-linux targetsNathan Rossi2017-02-151-2/+2
| | | | | | | | | | | | | | | | | | | | | When 'populate_sdk_ext' was first introduced in commit bf81d6bb7f6 it replaced the inheriting of 'populate_sdk_base'. For non-linux targets building the extensible SDK caused build errors, and the image class was changed to inherit 'populate_sdk' when targeting a non-linux SDK_OS (in commmit e471ce3464d). However inheriting 'populate_sdk' instead of 'populate_sdk_base' causes the SDK to always be built, this is not expected for the image class. This change makes the image class inherit 'populate_sdk_base' in the non-linux SDK_OS case so that it behaves the same as it is expected to behave where 'bitbake <image> -c populate_sdk' must be executed to generate the SDK deployables. (From OE-Core rev: b7d6bb07fd37c55d07903a1e8921f17e39afde0a) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: Add which to SANITY_REQUIRED_UTILITIES.Philip Balister2017-02-151-1/+1
| | | | | | | | | | | | | | Using docker with the Fedora 23 container exposed an issue with the rpm-native configure step. If which is not present the configure script fork bombs. After much pain, I tracked this to which not being present in the default container. Add a check for which so others do not have to have this experience. (From OE-Core rev: 096c07900250db157bb0c38785b9d8efc6301cab) Signed-off-by: Philip Balister <philip@balister.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uboot-extlinux-config.bbclass: add support for timeout & defaultDalon Westergreen2017-02-151-0/+18
| | | | | | | | | | | | When multible targets are defined it is useful to allow for a default target along with a timeout. After timeout, the default target will be selected. (From OE-Core rev: 1e01c2e32c168805a9b71c1dba4b487916955813) Signed-off-by: Dalon Westergreen <dwesterg@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/copyleft_filter: include AGPL in default included listPaul Eggleton2017-02-151-1/+1
| | | | | | | | | | | | | | | | If we're including all GPL licenses then we should include AGPL in the default COPYLEFT_LICENSE_INCLUDE since it has similar terms (and currently we do have one AGPL-licensed recipe in OE-Core, namely db). (Note that the default list isn't meant to be a guaranteed complete safe list - seek legal advice based on what you're distributing if unsure.) (From OE-Core rev: a16fbf6970056a79cac8b70ce54e55e61ef63a8d) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: Make symbol to vmlinuz.bin in boot directoryAndrea Adami2017-02-151-0/+3
| | | | | | | | | | | | | The changes committed with 6e58f54be103814b6b8a85b236510633c49e6832 did only consider the vmlinuz ELF kernel but some devices do reqire a raw vmlinuz.bin (as for example gcw0 in meta-handheld booted by ubiboot). Expand the above mentioned patch to consider this case. (From OE-Core rev: 413a5faf99280f4e083358e4134aebbcfa47bb4c) Signed-off-by: Andrea Adami <andrea.adami@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check.bbclass: Fix dependenciesJussi Kukkonen2017-02-151-1/+1
| | | | | | | | | | | | | | With recipe-specific sysroots the cve_check task must depend on cve-check-tool-native:do_populate_sysroot to get the cve-check-tool binary into the recipe sysroot. A normal DEPENDS isn't used to avoid cyclic dependencies. (From OE-Core rev: bd60b1018bc0304bc928701e6d1090c8b1223616) 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>
* testimage: Implement custom target loadingJuro Bystricky2017-02-151-1/+1
| | | | | | | | | | | | | | This patch implements custom target loading for testimage, currently missing due to major changes to the test framework. Custom targets can be defined in various meta-layers, so we need an extra path information in order to find them. Any other additional info is retrieved as usual via the variables TEST_TARGET and TEST_SUITES (From OE-Core rev: 1dc8010afd71fe46fb28bb86fb7c07a5fbd3d7cf) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Drop now unneeded update_data callsRichard Purdie2017-02-1521-42/+0
| | | | | | | | | | 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>
* sstate: Make absolute symlinks an errorRichard Purdie2017-02-091-30/+12
| | | | | | | | | | | | The current relocation code is broken, at least in the native case. Fixing it would mean trying pass in new data on sstate tasks about the relative positioning of symlinks compared to the sstate relocation paths. Whilst we could do this, right now I'm favouring making this an error and fixing the small number of problematic recipes we have in OE-Core (3). (From OE-Core rev: cf94de4ddee3e5072da8608c9151301fcec02cd0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* openssl/fontconfig/bzip2: Use relative symlinks instead of absolute ones ↵Richard Purdie2017-02-091-0/+5
| | | | | | | | | | | | | | | | | | | | | (using a new class) Absolute path symlinks are a bit of a pain for sstate and the native versions of these recipes currently contain broken symlinks as a result. There are only a small number of problematic recipes, at least in OE-Core, namely the three here. Rather than trying to make sstate handle this magically, which turns out to be a harder problem than you'd first realise, simply make the symlinks relative early in the process and avoid all the problems. The alternative is adding new complexity to sstate which we could really do without as without the complexity, you can't always tell where the absolute symlink is relative to (due to prefixes used for native sstate). (From OE-Core rev: e478550c8cd889f12e336e268e9e3b30827bf840) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types.bbclass: fix image dependency chain collectionAndre McCurdy2017-02-071-1/+1
| | | | | | | | | | | If image type "foo" depends on image type "bar.xz", then dependencies should be collected from the base image type (ie "IMAGE_DEPENDS_bar") not from "IMAGE_DEPENDS_bar.xz". (From OE-Core rev: 8a9f249a9166347cc0468191ce130003e3d306e1) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-module-split: Allow custom suffix for package namesAndreas Oberritter2017-02-071-1/+3
| | | | | | | | | | This makes it possible to restore the behaviour changed by commit 78cde87 "kernel-module-split: Append KERNEL_VERSION string to kernel module name". (From OE-Core rev: 4aabdddf67859cd8518e5cb672fb391c859817e0) Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/npm: set HOME during do_installPaul Eggleton2017-02-071-0/+3
| | | | | | | | | | | In do_compile we set HOME so that ~/.npm* only get created in the work directory; we need to do the same in do_install as well or they'll go into the user's home directory which we do not want. (From OE-Core rev: a667cb9ed2dceb804b85d1a024e2619bc34d2681) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/populate_sdk_ext: account for custom image tasksPaul Eggleton2017-02-071-2/+6
| | | | | | | | | | | Any custom tasks that were added on the image between do_image_complete and do_build were not being taken into account. Use the newly added bb.build.tasksbetween() function to take care of that. (From OE-Core rev: c966dee6208d3b7a9fa3c1b8aa1266058dcb65ff) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/patch: switch to new bb.build.tasksbetween() functionPaul Eggleton2017-02-071-19/+1
| | | | | | | | | | | A generic version of the code to work out the tasks between two tasks (based on the code here) has been added to bb.build, so use that instead. (From OE-Core rev: 1226e2eb2678407c315befd5700e653602e616a0) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/populate_sdk_ext: remove unnecessary dependencies breaking SDK_TARGETSPaul Eggleton2017-02-071-2/+0
| | | | | | | | | | | | | | | | | | Up until recently it was possible to set SDK_TARGETS to include a native recipe you wanted installed into the sysroot when installing the eSDK. I'm not sure what happened but now when you try to add a native recipe to SDK_TARGETS you get a missing task error because this recipe has no do_package_write_* task. Of course such a task dependency is erroneous and is apparently caused by setting SDK_RDEPENDS. I've checked and it turns out that we no longer need to set SDK_RDEPENDS anyway (probably because we explicitly set up task dependencies further down in the class, which I don't think we were fully doing in early versions of the eSDK). Thus, drop setting this variable to restore the functionality. (From OE-Core rev: fe8268ede33a8c76492b85da0f41062f47a5279c) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Add missing parameter to debug messageRichard Purdie2017-02-071-1/+1
| | | | | | (From OE-Core rev: 77ac40f8d4a4718b05f3692222a0dc91d90f0ab8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Improve file creation resilianceRichard Purdie2017-02-071-39/+49
| | | | | | | | | | | | | If you abort a build mid execution of the staging extend_sysroot function there are currently races and cleanup of that function may fail. This change splits the code into separate phases so that the manifests are manipulated before files are installed, meaning we should be able to reverse actions if builds fail, crash or are interrupted. (From OE-Core rev: fc504b6b8538453d2f058d7cc69be098f52f8091) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Add shared manifest supportRichard Purdie2017-02-071-0/+23
| | | | | | (From OE-Core rev: 51834006476786f847b3ca60d5ed83a952fc64cb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Don't put ptest files into the sysrootRichard Purdie2017-02-071-0/+1
| | | | | | | | | This wastes space/time as the ptest files aren't going to be used in the sysroot so add them to the blacklist. (From OE-Core rev: 61591fe2eea588ff92ff7f81f2ed8844617f5307) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types_wic: remove dependency to do_bootimgEd Bartosh2017-02-051-5/+0
| | | | | | | | | | | Removing task dependency do_wic -> do_bootimg as wic doesn't depend on hddimg/booimg anymore. (From OE-Core rev: af52d878940babb88bc8a2650e8c0115b6ccaf9f) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: rename image-wic -> image_types_wicEd Bartosh2017-02-052-2/+3
| | | | | | | | | | | Make name of the wic image type class consistent with existing naming scheme for image types. (From OE-Core rev: 4aab1b77d5f9403cbb3fae790069ef54821491fb) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: log the BSP definition fileBruce Ashfield2017-02-051-0/+1
| | | | | | | | | | | | | When debugging a kernel configuration issue, one of the first questions is "what BSP was used". To answer this qusetion, we log the BSP .scc file that was used to generate the kernel configuration in the kernel source meta directory. (From OE-Core rev: 1003615b866bfe196994bdc25d305ff5eace2715) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kern-tools: re-enable scc merge commandBruce Ashfield2017-02-051-1/+15
| | | | | | | | | | | | | | | The ability to merge two branches directly from a .scc file was dropped during the streamlining of the tools. As was pointed out by David Vincent <freesilicon@gmail.com>, there is once again a valid use case for this functionality, so we restore the capability. (From OE-Core rev: a0059ebbb52c659282e355664bba1a2fa282170e) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Make patchelf modified files sparseRichard Purdie2017-02-021-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we switched to recipe specific sysroots (rss), performance took a nose dive. Its easy to blame rss but it turns out not to be entirely at fault. Three configurations are compared here: a) Pre-RSS (revision 45df694a9f472ac2f684aadac4d864c3dfdc48a7) b) Post-RSS (revision 226a508da955439b881b2f0a544a3aee76e59919) c) as b) with this change Overall build times: a) 22794.25user 2687.88system 30:32.84elapsed 1390%CPU (0avgtext+0avgdata 919056maxresident)k b) 22677.25user 3238.79system 36:16.68elapsed 1190%CPU (0avgtext+0avgdata 918896maxresident)k c) 23571.84user 3383.65system 31:36.83elapsed 1421%CPU (0avgtext+0avgdata 919068maxresident)k For the overall build and sstate directories, du -s shows: a) 3992588 build-pre-rss/sstate-cache 30804484 build-pre-rss/tmp b) 4013272 build-with-rss/sstate-cache 36519084 build-with-rss/tmp c) 4014744 build-with-rss2/sstate-cache 35336960 build-with-rss2/tmp However more worryingly: $ du -s build-pre-rss/tmp/sysroots/ 2506092 build-pre-rss/tmp/sysroots/ $ du -s build-with-rss/tmp/sysroots-components/ 3790712 build-with-rss/tmp/sysroots-components/ $ du -s build-with-rss2/tmp/sysroots-components/ 2467544 build-with-rss2/tmp/sysroots-components/ These numbers *should* be equivalent but as you can see, b) is ~1.2GB larger. The reason turned out to be patchelf. Taking a specific binary from a specific recipe, bc from bc-native, in a) its 82kb (stripped) yet in b) its 2.17MB. $ ./patchelf --set-interpreter /bin/rp bc warning: working around a Linux kernel bug by creating a hole of 2084864 bytes in ‘bc’ https://github.com/NixOS/patchelf/blob/master/src/patchelf.cc#L710 shows that this "hole" is just padded zeros using memset, its not a proper sparse hole. This patch copies files with cp --sparse=always after modifying them with patchelf, then replacing the original file. The better fix will be to fix this in patchself itself and seek() there when writing the new file but that means new uninative tarballs and will take a bit of work so I'm proposing this workaround in the meantime. Also, this patch drops error handling since subprocess check_output() tracebacks will print this information if the command fails so we can simplify the code. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Reduce the number of mkdirs callsRichard Purdie2017-02-011-10/+17
| | | | | | | | | | | | The number of mkdir calls was showing up high on the profile charts since it was getting called once per file which is excessive. Each call results in one or more syscalls which is bad for performance. Cache which directories we've seen to reduce the calls to a more reasonable number and speed up recipe specific sysroots. (From OE-Core rev: 680fb343be5d0a7f9abbe9c75ca232abe5871663) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate/staging: Batch log messages for performanceRichard Purdie2017-02-012-8/+17
| | | | | | | | | | | | | | | | | | | According to profile data, repeated calls to bb.debug and bb.note in the extend_recipe_sysroot() codepath were accounting for 75% of the time (1.5s) in calls from tasks like do_image_complete. This batches up the log messages into one call into the logging system which gives similar behaviour to disabling the logging but retains the debug information. Since setscene_depvalid is also called from bitbake's setscene code, we have to be a little creative with the function parameters and leave the other debug output mechanism in place. This should hopefully speed up recipe specific sysroots. (From OE-Core rev: 3b0af8dc0f796345d1f1ba77ea35bbd090a5feb3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* relocatable: Make native .pc files relocatableRichard Purdie2017-01-311-1/+12
| | | | | | | | | | | | | The native .pc files currently have hardcoded paths in them meaning each has to be relocated at final install time. pkg-config has built in functionality to avoid this, namely the pcfiledir variable. This function translates .pc files to use the variable meaning further relocation later is unnecessary. (From OE-Core rev: a3f4e9ff55c7d9eba175e83eb6c99cf349a74432) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* utils: Avoid need to relocate wrapper scriptsRichard Purdie2017-01-311-2/+16
| | | | | | | | | | | | | Whilst the path to the executable is dynamically determined, the passed in environment variables or parameters are not relocatable and rely on the sstate remapping code. In the recipe specific sysroot case this has become more costly. This patch translates such paths into relocatable entries which means that a sed replacement at final installation isn't needed. (From OE-Core rev: 3e02a7cda0ba70e3f9886c5cce37d71361280b11) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/cases: Rename syslog module to oe_syslogAníbal Limón2017-01-311-1/+1
| | | | | | | | | | | | | | Debian based distros has a builtin syslog module so when try to load tests using unittest it references the builtin module instead of runtime/cases. [YOCTO #10964] (From OE-Core rev: 9923e3cdb58c2b3c54ec5fe99b2cec4cdc9fff92) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage.bbclass: Fixes about suites and dependenciesMariano Lopez2017-01-311-4/+5
| | | | | | | | | | | | | | | | | There are some missing suites on sato-sdk and lsb-sdk images so add it. The createrepo-native needs to be built before run testimage in order to create a repository from install packages. The DL_DIR data also needs to be updated from the current bitbake environment instead of use the value from testdata file. [YOCTO #10964] (From OE-Core rev: 42f3026b39519ba98ae3153329622ce670d57c09) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext: fix == bashismPatrick Ohly2017-01-311-1/+1
| | | | | | | | | Found via verify-bashisms. (From OE-Core rev: b690b8dc634844b4f6672d524f0e6f1d86dc4e20) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs-postcommands.bbclass: drop insert_feed_uris functionMing Liu2017-01-311-18/+0
| | | | | | | | | | | The source makes no reference to insert_feed_uris any more, simply drop the unused reference, to avoid confusing the developers. (From OE-Core rev: 26dddb7d4a4945abaaefd460a342de6abd609594) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove remaining True option to getVar callsMing Liu2017-01-315-8/+8
| | | | | | | | | | | | | | | | This is a complementary fix to commit 7c552996: [ meta: remove True option to getVar calls ] it intended to remove all True option to getVar calls, but there are still some remaining. Search made with the following regex: getVar ?\((.*), True\) (From OE-Core rev: 87d03ffe03d6f01e360bfd51714be96e62506e0a) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage.bbclass: Allow to run tests on autobuilder's imagesMariano Lopez2017-01-311-4/+7
| | | | | | | | | | | | | | | | | | | With the change to the new framework data store dependecy was removed, instead a new file is generated and used in testimage. When testing builds from the autobuilders the test data values are from the autobuilder, including the paths. Some tests require paths to current environment in order to run, this commit will update such paths and fix the error of running images donwloaded from autobuilders. [YOCTO #10964] (From OE-Core rev: 26ad5105fc2ce03b7ee8ecc6911fd40a52bd573a) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>