summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-yocto.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* kernel-yocto.bbclass: fix "referenced before assignment" errorMax Kellermann2018-09-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | If "scc --configs" fails, do_kernel_configcheck() crashes like this: 0338: try: 0339: configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8') 0340: except subprocess.CalledProcessError: *** 0341: bb.fatal( "Cannot gather config fragments for audit: %s" % configs) 0342: 0343: try: 0344: subprocess.check_call(['kconf_check', '--report', '-o', 0345: '%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, configs], cwd=s, env=env) Exception: UnboundLocalError: local variable 'configs' referenced before assignment This crash bug was introduced by commit 21de5cc43cfedc703e5bc0515507a6dae36afb74 (From OE-Core rev: 9602c03e8701c972f544001415efa92877622f57) Signed-off-by: Max Kellermann <max.kellermann@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: restore BSP audit visibilityBruce Ashfield2018-08-281-0/+22
| | | | | | | | | | | | | | | | | | | | During the re-working of kernel fragments and status output cleanup the visibility for BSP level errors was dropped/removed. The audit phase can detect errors, redefinition and invalid configuration fragments. We control the visibility of these reports via the existing KCONF_BSP_AUDIT_LEVEL variable. By default, errors and invalid configuration values will be displayed as a warning. If redefinition values are to be shown the audit level must be raised above the deafult value of '2'. We inhibit these by default, since there are many valid reasons why a BSP will change a default / base config .. and showing them offers no value to the BSP user. (From OE-Core rev: 4933b686b0f75d6841630917a2d90832df41cac7) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/kernel-yocto: Cleanup getstatusoutput usageJoshua Watt2018-08-281-7/+17
| | | | | | | | | | | | Replace usage of os.utils.getstatusoutput() with direct subprocess calls. Pass a modified environment and working directory where necessary to bypass the need to execute in a shell. (From OE-Core rev: 21de5cc43cfedc703e5bc0515507a6dae36afb74) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto.bbclass: Adds oe-local-files path (devtool) to include directivesJaewon Lee2018-08-141-0/+2
| | | | | | | | | | | | | | | | | | | The devtool-source class moves all local files specified in SRC_URI to an oe-local-files directory. When using devtool and a recipe space kernel-meta, devtool modify throws an error because the paths the kernel-yocto class is looking for feature directories in, don't include the oe-local-files directory which devtool is using. This patch checks for feature directories in oe-local-files, and if present, adds that path to include directives. [YOCTO #12855] (From OE-Core rev: 4eceae7e3e6dab935e2cf49b75148139192fc6e7) Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com> Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel: specify dependencies for compilation for config tasksBruce Ashfield2018-06-121-1/+4
| | | | | | | | | | | | | | | | | | | | | | | With recent kernels (i.e. 4.17+) the configuration phase of the kernel will check for capabilities/options of the compiler for CVE and other mitigation support. For a general kernel, we want to ensure that CC is fully defined when the config targets are invoked (so the proper compiler will be checked). For linux-yocto, we also need to specify the compiler/tools dependencies for the configme task since it executes before configure and hence the main kernel build DEPENDS will not always be in the sysroot before it executes. Without those dependencies the kernel will be incorrectly configured (i.e. bison is missing) or the configuration will fail the mitigation tests. [YOCTO #12757] (From OE-Core rev: ff1bdd75d50f0ebac3d599e461685ace29559a82) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: check git config during checkoutJustin Bronder2018-03-041-0/+1
| | | | | | | | | | | Initialize the git config prior creating a git repository in a plain directory. (From OE-Core rev: 0e3a9bed988b5fd4de770fe8cd1160b9f6c8c365) Signed-off-by: Justin Bronder <jsbronder@cold-front.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: make SRC_URI defconfig removal more specificBruce Ashfield2018-01-271-1/+1
| | | | | | | | | | | | | | | | | | | commit 7e98c295c1bb511e [kernel-yocto: ensure that only a single defconfig is processed] has an overly broad replacement strategy for 'defconfig' and hence will chop up any fragment name that happens to contain that string. If we change the processing to split on whitespace and drop any full work 'defconfig' fragments, we'll get the behaviour we want (no duplicate defconfigs, but fragments with defconfig in their name are fine). [YOCTO #12487] (From OE-Core rev: fd2678190db6575dc909104b60c284d0c41f605f) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: ensure that only a single defconfig is processedBruce Ashfield2017-12-101-1/+12
| | | | | | | | | | | | | | | | | As a follow up to the changes to ensure that KBUILD_DEFCONFIG will always get its defconfig into the processing, we also should ensure that we don't get both a KBUILD_DEFCONFIG and a SRC_URI defconfig in the configuration queue. If both are in the configuration queue, we end up with competing values and a potentially long running check of 5000+ options x 2 against the final .config. By removing the defconfig found from the SRC_URI when one is found via KBUILD_DEFCONFIG, we ensure that only one will be processed. (From OE-Core rev: 7e98c295c1bb511ece51b5f8c97f26c173ddaf76) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: Stop the build if defconfig is missingSaul Wold2017-12-101-1/+1
| | | | | | | | | | | | | | | The bberror does not stop the build correctly, this should be a bbfatal_log to ensure the failure correctly stops the build and logs the failure. Part of [YOCTO #12162] (From OE-Core rev: 44ff06635e7f575e67b7ebba5d6900b8ddbc4a06) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: ensure sccs variable is set when using KBUILD_DEFCONFIGSaul Wold2017-12-101-1/+1
| | | | | | | | | | | | | | | When using KBUILD_DEFCONFIG, $sccs should be set to the $WORKDIR/defconfig regardless if it compares or is copied. Otherwise $sccs is not set and the defconfig is not found correctly. Part of [YOCTO #12162] (From OE-Core rev: b63cc051f1eb58c768f49db2c04843336e62d3df) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: relax BSP definition testBruce Ashfield2017-08-241-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | commit 44aea7b873 [kernel-yocto: ensure that only valid BSPs are built] introduced a new check to ensure that a valid BSP definition was found, rather than building something that 'closely' matched the current MACHINE. This check breaks valid configurations which do not have a bsp definition but are otherwise completely configured machines. To allow both elements to co-exist (and not add warnings or errors to otherwise valid builds), we first check to see if an empty bsp definition was found, but then check to see if a defconfig was provided. If a defconfig has been provided, that is a sign that the board configuration is complete and we should continue the build without otherwise bothering the user. Tested on meta-raspberrypi and linux-yocto* (From OE-Core rev: 156cf9e25f875a50f907e570d9b62cbc2c051133) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: fix typo in error messageLuca Ceresoli2017-08-241-1/+1
| | | | | | | (From OE-Core rev: 92b4e043e9e2125105c697be2d0f75b3f01f91b1) Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: ensure that only valid BSPs are builtBruce Ashfield2017-08-231-0/+3
| | | | | | | | | | | | | | | | | | | | | There was a bug in the search routines responsible for locating BSP definitions which returned a valid match if only the ktype matched. This meant that someone looking for "qemux86foo" (which is an invalid definition) would potentially end up building "qemuarm" and be none the wiser (until it didn't boot). With this fix to the tools search routine, and improved return code testing, we will now stop the build and report and error to the user. [YOCTO: #11878] (From OE-Core rev: 44aea7b87307795fe4e089c51d45afccaa2f6525) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: propagate configuration errors to bbclassBruce Ashfield2017-07-171-1/+2
| | | | | | | | | | | | | | | | | | | As pointed out by klapperichpaul@johndeere.com, missing configuration fragments were being picked up twice, once by the tools and once by the bbclass. Unfortunately, the tools error message was being detected as configs, and hence no error was reported at all. Rather than catching the output of the tools, we can instead check the return code and propagate the error message from the tools directly to the user. [YOCTO #11649] (From OE-Core rev: 960652416e2390337df6d9734375d6829ceb6420) 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>
* kernel-yocto/kern-tools: fix do_validate_branches clean stageBruce Ashfield2017-04-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was reported that do_validate_branches was failing with the following error: Log data follows: | DEBUG: Executing shell function do_validate_branches | HEAD is now at fe0fb8d Merge tag 'v4.10.9' into standard/base | mkdir: cannot create directory .: File exists | | [ERROR] Can't find patch dir at ./patches/standard/base | usage: kgit s2q | WARNING: exit code 1 from a shell command. | ERROR: Function failed: do_validate_branches This was triggered by the execution of 'kgit-s2q --clean' after forcing the SRCREV to something other than the tip of the branch. --clean is being run to remove any sentinel files from previous kernel builds to ensure that the tree is in a consistent state. There were two bugs, --clean was being executed and not exiting the script as it was supposed to. Hence validation for applying patches was done, and threw the error that eventually makes it to the console. And the second bug is that since do_validate_branches actually calls kgit-s2q --clean, the dependency on kern-tools-native needs to be on that function (versus do_kernel_metadata which runs later). With the tweaked kern-tool + the dependency fix, we no longer see this error. (From OE-Core rev: 4d5890b54cbdac01ee748759578b7b22ed8e61a2) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.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>
* 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>
* meta/scripts: Various getVar/getVarFlag expansion parameter fixesRichard Purdie2017-01-091-3/+3
| | | | | | | | | | | | | | | | | There were a few straggling expansion parameter removals left for getVar/getVarFlag where the odd whitespace meant they were missed on previous passes. There were also some plain broken ussages such as: d.getVar('ALTERNATIVE_TARGET', old_name, True) path = d.getVar('PATH', d, True) d.getVar('IMAGE_ROOTFS', 'True') which I've corrected (they happend to work by luck). (From OE-Core rev: 688f7a64917a5ce5cbe12f8e5da4d47e265d240f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-1/+1
| | | | | | | | | | | | | getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) (From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f) 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>
* kernel-yocto: explicitly trap subcommand errorsBruce Ashfield2016-12-131-0/+7
| | | | | | | | | | | | | | | | | To trap errors and halt processing, do_kernel_metadata was recently switched to exit on any non zero return code. While the concept is sound, there are subcommands that have legitimate non-zero return codes. Instead of removing set +e, we'll explicitly check the return code of the commands that can error, and throw a bbfatal to alert the user. (From OE-Core rev: a4705e62d0973c290011fc0d250501d358b659e8) 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>
* kernel-yocto: exit on non-zero return codeBruce Ashfield2016-12-071-1/+0
| | | | | | | | | | | | | | | | Historically the processing of kernel meta data contained some commands that exited with a non-zero return code. Special processing was required to properly deal with their exit. That is no longer true, and instead of handling all return codes and doing an explicit 'exit' call, we can remove set -e from the routine and have all errors be trapped and stop processing. (From OE-Core rev: 476ffd57cf5b6fba40d4e3f5dd913824ab8a8d3d) 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>
* utils.bbclass: add function to check for git config userStephano Cetola2016-10-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | If attempting to patch a git repo without a proper git config setup, an error will occur saying user.name/user.email are needed by git am/apply. After some code was removed from kernel-yocto, it was simple enough to reproduce this error by creating a kernel patch and using a container to build. This patch abstracts out functionality that existed in buildhistory for use in other classes. It also adds a call to this functionality to the kernel-yocto class. Fixes [YOCTO #10346] introduced in OE-core revision 0f698dfd1c8bbc0d53ae7977e26685a7a3df52a3 (From OE-Core rev: 25b43cb05c645e43f96bc18906441b8fdc272228) Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: remove do_shared_workdir from SRCTREECOVEREDTASKSAndré Draszik2016-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Various recipes depend on the kernel's do_shared_workdir task, a quick grep suggests all external kernel modules (via module.bbclass), but also perf, and potentially any additional headers as outlined in linux-libc-headers.inc are affected. Having do_shared_workdir in SRCTREECOVEREDTASKS means this task is removed when externalsrc is enabled, making all those recipes fail as the task they depend on, virtual/kernel:do_shared_workdir, doesn't exist. Remove do_shared_workdir from SRCTREECOVEREDTASKS so that all those recipes work even if externalsrc is activated. According to the comment in here, the reason for do_shared_workdir to be removed as a task is because it modifies the source tree, but that doesn't seem to be case. (From OE-Core rev: 29e99d7a57803e450920600b5d35c5b4e58a0ede) Signed-off-by: Andre Draszik <git@andred.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: allow --allnoconfig and --alldefconfig as KCONFIG_MODESBruce Ashfield2016-09-081-2/+2
| | | | | | | | | | | | | | | | | | Previously merge_config.sh was wrapped by the configme script, configme took the different KCONFIG_MODES as options, and used --allnoconfig or --alldefconfig. With the switch to merge_config.sh no longer being wrapped, the new processing wasn't matching the existing values and only supported allnoconfig or alldefconfig. To avoid breaking existing layers, and also keep any working that have already switched, we can make the case statement match both. (From OE-Core rev: 614227f28a023fe148307e0d85a5e9b8d9b74372) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: restore kernel-meta data detection for SRC_URI elementsBruce Ashfield2016-09-081-3/+8
| | | | | | | | | | | | | | | | | | | | Before the kernel tools were simplified and streamlined, there was code which not only migrated a patch/cfg/scc to the kernel build tree, it also migrated any subdirectories of those patches. The effect of this data migration was that any other meta data in a patch's directory structure would be available for processing. While we don't want to do this migration anymore, it is possible to check the path of any SRC_URI patches, and if they include a "kernel-meta" subdirectory add it to the search path. This restores the functionality without the old complexity. (From OE-Core rev: 7ef7af5c03bad28faf380986f792f7f3d4d5944d) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: do_kernel_configme: Fix silent sysroot poisoning errorIoan-Adrian Ratiu2016-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | do_kernel_configme calls merge_config.sh (installed in the sysroot by the kern-tools-native recipe) which may invoke the compiler to complete the configuration process. Depending on the build (and dependencies), this may error due to sysroot poisoning [1]. The errors are similar to: make[1]: Entering directory '4.1+gitAUTOINC+a7e53ecc27-r0/linux-x64-standard-build' HOSTCC scripts/basic/fixdep work-shared/x64/kernel-source/scripts/basic/fixdep.c:106:23: fatal error: sys/types.h: No such file or directory compilation terminated. make[2]: *** [work-shared/x64/kernel-source/scripts/basic/Makefile:22: scripts/basic/x86_64-nilrt-linux-fixdep] Error 1 Adding $TOOLCHAIN_OPTIONS to $CFLAGS before calling merge_configs.sh fixes the error because $TOOLCHAIN_OPTIONS defines the sysroot and make uses it to correctly compile & fill all missing kernel config options. [1] http://lists.openembedded.org/pipermail/openembedded-core/2014-October/098253.html (From OE-Core rev: 4b770d62472d1b1a26366de0a1742db240aa5239) Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: test for empty artifactsBruce Ashfield2016-09-051-2/+8
| | | | | | | | | | | | | | | | | With the updated kernel tools, we generate a list of sccs, patches, configs and BSP definitions as part of the meta data generation. It is valid if there aren't any of these artifacts found (i.e. you are just building a branch and a default config), but invoking the tools with no inputs isn't a good idea. To avoid this issue, we generate a string based on the artifacts and skip calling the tools if there's nothing to do. (From OE-Core rev: 58715183493de1deb90f2ab075048462b4bf6c73) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: streamline patch, configuration and audit phasesBruce Ashfield2016-08-181-90/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been running with a set of kern-tools that were designed to work with build systems that knew nothing about git, trees, commits, etc. As such, there's been a set of shims/wrappers in place to work with within bitbake/oe-core. These were the *me scripts: createme, updateme, patchme and configme. With this commit, we strip that legacy code and use the tools directly. This means less complexity, fewer corner cases .. and no surprises when the tools are arunning. As another benefit, the tools consume much less time during a typical build and have no noticeable impact on the overall build time. Existing .scc files, features, and processing are not impacted as these tools are compatible with existing feature descriptions and kerne configuration fragments. The audit of kernel configuration fragments is now detached from the linux-yocto build structure and process. This means that they can eventually be tweaked to offer kernel audit to any type of kernel build and configuration process. Additionally, the kernel symbol audit phase can now resolve symbol dependencies and offer guidance when a symbol is missing: WARNING: linux-yocto-4.4.15+gitAUTOINC+b030d96c7b_f5e2c49d58-r0 do_kernel_configcheck: [kernel config]: specified values did not make it into the kernel's final configuration: ---------- CONFIG_BT_6LOWPAN ----------------- Config: CONFIG_BT_6LOWPAN From: /home/bruce/poky/build/tmp/work-shared/qemux86-64/kernel-source/.kernel-meta/configs/standard/features/bluetooth/bluetooth.cfg Requested value: CONFIG_BT_6LOWPAN=y Actual value: Config 'BT_6LOWPAN' has the following conditionals: BT_LE && 6LOWPAN (value: "n") Dependency values are: BT_LE [y] 6LOWPAN [n] (From OE-Core rev: 0f698dfd1c8bbc0d53ae7977e26685a7a3df52a3) 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>
* kernel-yocto: allow branch auditing to be suspendedBruce Ashfield2016-05-111-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | When working on the yocto-bsp and kernel-lab update for yocto 1.2 we found it was impossible for a end-user BSP to isolate patches on a branch, since with the following commit: [kernel-yocto: enforce SRC_URI specified branch] Any new branch would be switched to whatever was specified on the SRC_URI and undoing the work that the yocto-bsp tool did to support board specific patches. To fix this, we'll keep the enforcing of branch consistency enabled by default, but introduce a variable "KMETA_AUDIT" that when not set will skip the check. There's no impact for existing users, and it is only something that other plumbing commands and tools will need to use (or care about). [YOCTO: #9120] (From OE-Core rev: 1d4c120edeb6e45665eafd6962a10ebb89d758eb) 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>
* kernel-yocto: enforce SRC_URI specified branchBruce Ashfield2016-04-031-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | During the simplication and cleanup of branches and kernel meta data handling, the ability to force build a branch that didn't match the meta data was dropped. There are valid uses cases when a different branch should be built (testing, development, etc), so we restore the capability with this change. If after the kernel meta data is processed the current branch does not match the SRC_URI specified branch, a warning is generated about the impending branch switch and that the user should double check that they are building what they expect. WARNING: After meta data application, the kernel tree branch is standard/base. The WARNING: SRC_URI specified branch standard/gt. The branch will be forced to standard/gt, WARNING: but this means the board meta data (.scc files) do not match the SRC_URI specification. WARNING: The meta data and branch standard/gt should be inspected to ensure the proper WARNING: kernel is being built. Reported-by: Steve Sakoman" <steve.sakoman@intel.com> (From OE-Core rev: d91a668bc0f6c2cfc52174b4039c7ea0d84e8d4d) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto.bbclass: move do_kernel_link_vmlinux() into kernel.bbclassAndre McCurdy2016-01-181-12/+0
| | | | | | | | | | | | | | | | Move do_kernel_link_vmlinux() from kernel-yocto.bbclass into kernel.bbclass so that it's available to any kernel recipe. Note that the task is not enabled by default in kernel-yocto.bbclass, so don't enable by default in kernel.bbclass either. To enable, see the example in linux-yocto.inc, ie: addtask kernel_link_vmlinux after do_compile before do_install (From OE-Core rev: a29371848deda618a42f9a30f9856a44c2342fe6) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto.bbclass: remove do_kernel_link_vmlinux from SRCTREECOVEREDTASKSAndre McCurdy2016-01-181-1/+1
| | | | | | | | | | | The do_kernel_link_vmlinux() task modifies the build directory (not the source tree) and should not be skipped when externalsrc is being used. (From OE-Core rev: 70b8a60d42831c701d10066eb57aaaad7a6fb7ae) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: fix checkout bare-cloned kernel repositoriesJianxun Zhang2015-12-281-3/+10
| | | | | | | | | | | | | | | | | | | The existing code doesn't tell regular (with .git) and bare cases and just move the unpacked repo to the place of kernel source. But later steps will fail on a bare-cloned repo because we can not checkout directly in a bare cloned repo. This change performs another clone to fix the issue. Note: This change doesn't cover the case that S and WORKDIR are same and the repo is bare cloned. (From OE-Core rev: ccfa2ee5c4f509de4c18a7054b2a66fc874d5d69) Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com> 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>
* linux-yocto: skip kernel meta data branches when finding machine branchBruce Ashfield2015-10-271-1/+3
| | | | | | | | | | | | | | | | | | | | | | Before the fetcher validated the specified SRCREV was reachable on a specified branch, linux-yocto style kernel's were comparing the value of KBRANCH and branch on the SRC_URI and then allowing a SRC_URI specified branch to override KBRANCH. With the introduction of kernel meta data on the SRC_URI, this routine is incorrectly picking up a kernel-cache repository and then attempting to apply that branch information to the kernel repository. The rationalization of the branch specification is largely no longer required, and will may be removed in the future. But for now, to keep changes minimal, we can simply not return branch information that comes from kernel meta data by checking the 'type' parameter and skipping if it is of type 'kmeta'. (From OE-Core rev: 87363ec019e04b486dee5f07b7226465be7acd6c) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto.bbclass: do_kernel_metadata depends on do_unpackMarkus Lehtonen2015-09-091-1/+1
| | | | | | | | | | | | | | Make sure that 'do_unpack' is executed before 'do_kernel_metadata'. Enabling externalsrc for kernel disables 'do_validate_branches' task which caused 'do_kernel_metadata' to fail as the dependency chain to 'do_unpack' got broken. [YOCTO #6658] (From OE-Core rev: 8939ea428f642fd6fa48807ded1f9040f09ed375) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* linux-yocto: split meta data from kernel repositoryBruce Ashfield2015-07-251-71/+5
| | | | | | | | | | | | | | | | | | | | The linux-yocto tree has always been a combined set of kernel changes and configuration (meta) data carried in a single tree. While this format is effective at keeping kernel configuration and source modifications synchronized, it isn't always obvious to developers on how to manipulate the meta data versus the source. With this change, we remove the meta data processing from the kernel-yocto class and use the external meta-data repository that has always been used to seed the linux-yocto meta branch. After this change, linux-yocto can no longer process combined trees, and is simplified as a result. (From OE-Core rev: 523e4f6a6913b64453579d27a02467e14f7df42e) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Use die() or bbfatal_log() where the log should definitely be printedPaul Eggleton2015-07-161-8/+8
| | | | | | | | | | | | | Change calls to bbfatal() to either die() or bbfatal_log() where we know we want the full log to be printed by the UI (calling bberror or bbfatal would otherwise suppress it since the change to connect these functions through to the UI.) bbfatal() is still fine to use where there is enough context information in the message such that the log isn't needed. (From OE-Core rev: 04ed9a19e1b08003329138b8ab83691d13c11fd9) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: fix machine_srcrev check in do_patchPetter Mabäcker2015-07-161-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | do_patch is currently doing checks with machine_srcrev without initiate it which leads to below (additional debug added): DEBUG: Executing shell function do_patch . . . + [ 0 -ne 0 ] + [ != AUTOINC ] + git rev-parse --verify ~0 fatal: Needed a single revision + git merge-base HEAD usage: git merge-base [-a|--all] <commit> <commit>... or: git merge-base [-a|--all] --octopus <commit>... or: git merge-base --independent <commit>... or: git merge-base --is-ancestor <commit> <commit> or: git merge-base --fork-point <ref> [<commit>] -a, --all output all common ancestors --octopus find ancestors for a single n-way merge --independent list revs not reachable from others --is-ancestor is the first one ancestor of the other? --fork-point find where <commit> forked from reflog of <ref> + [ = ] + set +x DEBUG: Shell function do_patch finished Only reason it works today is because 'rev-parse/merge-base' with empty machine_srcrev will result in "false positive". Solve this by adding a similar non-empty check and use SRCREV as fallback as in 'do_kernel_metadata' (From OE-Core rev: 5f7403151fc8bfd5b1d77f6626717c8b84d33d93) Signed-off-by: Petter Mabäcker <petter@technux.se> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* linux-yocto: drop suggestion of devshell for patch failuresBruce Ashfield2015-05-241-1/+1
| | | | | | | | | | | | | | | | | When a patch fails to apply, the kernel-yocto bbclass attempted to be helpful and suggest that devshell be used to fix the issue. The only problem is that you can't get to devshell if a patch is failing. We drop this bad advise and instead point to the linux source directory. [YOCTO: #6202] (From OE-Core rev: d6a0c0f60ea85235479d968f75d067a10ce21574) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: propagate in tree defconfigs to WORKDIRBruce Ashfield2015-05-091-5/+6
| | | | | | | | | | | | | | | | | As reported by Steffen Pankratz <Steffen.Pankratz@elektrobit.com>, the previous logic of KBUILD_DEFCONFIG processing would not propagate an in tree defcofig to WORKDIR if one was not already present. We fix the propagation by copying the in tee config if a defconfig is not already in WORKDIR. Additionally we only warn (versus copying) if an in tree configuration is specified, is different than the WORKDIR version and isn't copied. (From OE-Core rev: 58cc903a5156063b24e48011438a709cb6e09f54) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* linux-yocto: fix race between checkout and meta data generationBruce Ashfield2015-05-091-1/+1
| | | | | | | | | | | | | | | | | | | | | There are two tasks that must run before a linux-yocto kernel is built. - Kernel checkout and relocation to work-shared (kernel_checkout) - Meta data gathering and configuration prep (kernel_metadata) The current task definitions for both are simply "before do_patch", which is correct, but kernel_checkout must run before and not race with kernel_metadata. So we set the definition of kernel_checkout to be more specific and enforce the proper ordering. [YOCTO: #7731] (From OE-Core rev: 9d806f3d05de918952f839f5e595cb71cd1261db) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: merge duplicate kernel_configme task definitionsRoss Burton2015-03-311-1/+1
| | | | | | | | | | | | | The kernel_configme task was added twice (once in the .bbclass, one in a .inc) with different ordering constraints. Change this to be just one definition in the bbclass with the stronger ordering constraints. (From OE-Core rev: b9646b9d31c3e0c70337a8c10ebfc087a0e2b829) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* linux-yocto: add kern-tools-native to kernel_metadata dependsRoss Burton2015-03-311-0/+1
| | | | | | | | | | | | | | | | | | The autobuilder failed like this: temp/run.do_kernel_metadata.25242: line 165: createme: command not found createme is provided by kern-tools-native. do_patch has a dependency on kern-tools-native, but do_kernel_metadata runs before do_patch. So move the dependency from do_patch to do_kernel_metadata, moving the statement from the .inc to the class so it's alongside the task definition. [ YOCTO #7531 ] (From OE-Core rev: 4a0371847ff0c30d9b60db63559d89dddfcb009f) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: allow in-tree defconfigsBruce Ashfield2015-03-251-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a similar manner to the kernel itself, which does the following to bring a defconfig into the configuration: defconfig: $(obj)/conf ifeq ($(KBUILD_DEFCONFIG),) $< --defconfig $(Kconfig) else @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig) endif We do the same with the linux-yocto configuration processing. If a defconfig is specified via the KBUILD_DEFCONFIG variable, we copy it from the source tree, into a common location and normalized "defconfig" name, where the rest of the process will include and incorporate it into the configuration process. If the fetcher has already placed a defconfig in WORKDIR (from the SRC_URI), we don't overwrite it, but instead warn the user that SRC_URI defconfigs take precedence. [YOCTO: #7474] (From OE-Core rev: 5f5595eebeb81be7e824d998228e4ef9f0bfac7d) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: split meta data generation from patching phaseBruce Ashfield2015-03-201-2/+7
| | | | | | | | | | | | | | | | | | | | The linux-yocto kernel has a meta-data component which accompanies the actual tree. That meta-data is processed to generate a series file that controls the patching and configuration of the kernel. patching and configuration are two distinct phases, so when working on kernel configuration, it doesn't make sense to always have to re-run the patching step just to update configuration data in the meta-series. To allow a more granular set of tasks, we break the meta-data generation into a separate task, which runs before do_patch. This allows the task to be explicitly called when working on configuration, but otherwise has no impact on the build. (From OE-Core rev: 1be4c68fb876b63f19d107275b701fe1c1c121db) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: inhibit BSP description warnings for custom linux-yocto kernelsBruce Ashfield2015-03-021-6/+7
| | | | | | | | | | | | | | | | | | We don't require that a yocto custom kernel + defconfig have a full BSP description (but of course it would be better if they did). Since this isn't a requirement, we shouldn't alarm users by generating a BSP description warning. To implement this, we add a bsp audit level flag (like the one that exists for kconfig audits), and only set it to activate in the versioned linux-yocto recipes. [YOCTO: #7370] (From OE-Core rev: d2fb7fff291b83700d487be093223c1533d915ce) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/kernel-yocto: extend SRCTREECOVEREDTASKSPaul Eggleton2015-02-231-1/+1
| | | | | | | | | | | | * Add do_shared_workdir which was added recently * Add do_fetch and do_unpack to this list, because at the moment if you enable externalsrc through a bbappend the += in this class wipes out the original value from externalsrc (which is set with ?=) (From OE-Core rev: 5717e3b60731d2cb9394c13bff049a467c3aeec1) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* linux-yocto: warn when a generated BSP description is usedBruce Ashfield2015-02-211-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | The meta data (in tree or out of tree) that describes a BSP, its patches and configuration is not always available when a new/default or manually configured machine is built. When this happens, the tools generate a skeleton BSP and use a architecture defconfig for the build. If this is by design, the build is typically sane and everything works fine. If an existing BSP description was expected, chances are that the resulting kernel will not be correct. To avoid surprising the user when a default/skeleton BSP is used for the build, we can make it obvious to the user by emitting a warning like the following: WARNING: [kernel]: An auto generated BSP description was used, this normally indicates a misconfiguration. Check that your machine (myqemux86-64) has an associated kernel description. [YOCTO: #3383] (From OE-Core rev: f4a460afc4e2676cbf1daaa1d6723da9e6146526) 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>