aboutsummaryrefslogtreecommitdiffstats
path: root/tools/scc-cmds
AgeCommit message (Collapse)Author
2022-10-05Revert "spp: ensure that relocations and patch paths are absolute"Bruce Ashfield
This reverts commit 9320c2a1aaa085e94abd15ede0d93ffdab578e9d.
2022-09-18symbol_why: allow options to be flagged as built-in or moduleBruce Ashfield
Some options that are hardware related, can either be built in or modules, and meet the criteria of being acceptable for a BSP. To allow these options to not throw warnings, we create a new configuration fragment to go along with the 'hardware.cfg' and 'nonhardware.cfg' special fragments. This new fragment is called 'y_or_m_enabled.cfg' and is effective for the fragments in its directory. The format is the same as hardware/nonhardware.cfg, is simply a list of CONFIG_ options. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-09-18spp: ensure that relocations and patch paths are absoluteBruce Ashfield
If include directories (locations of layers) have relative components, and the path to a patch doesn't share that relative location, the detection of a common prefix can fail. When the common prefix is incorrectly specified, it can be the entire path to a patch. This results in everything being removed and subtle errors (as this shouldn't happen). By ensuring that both the relocation directories and patch path are absolute, we can avoid this issue. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-09-15spp: performance tweaksBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2018-08-16kconf.cmd: use relative paths when logging hardware/non-hardware optionsBruce Ashfield
The audit phase of kernel configuration has been missing warnings due to bad locations of fragments and special (hardware.cfg/non-hardware.cfg) files being incorrectly logged with a path + their absolute original path. We adjust the logging to point directly at their copied/relocated location and auditing works again. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-06-14kconf: correct hardware / non-hardware fragment handlingBruce Ashfield
It was found that some non-hardware fragments were being processed as hardware, which can result in warnings or missed options in the audit phase. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-02kconf_check: allow non-hardware options to override hardwareBruce Ashfield
If an option is specified as 'hardware' it means that it is critical to board operation and as such, will be reported as a warning during the audit phase if the option does not match the specified value. Once something has been specified as hardware, it can't be undone, which means that an understood mismatch cannot have the warning inhibited. This change allows an option that is later specified as non-hardware to inhibit a warning for an option that was previous specified as hardware. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-01-27kern-tools: re-enable merge.cmdBruce Ashfield
Previous incarnations of the tools had a merge command that was capable of merging feature branches into the build branch. This support was removed to streamline processing of the tree. Now that we have the .queue implementation, we can generate a merge.queue from any merge commands found in .scc files and allow the do_patch phase to take care of updating the tree. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-01-25scc: Move merge commandDavid Vincent
Create a new command to merge a feature branch inside the current branch when processing meta-series. Signed-off-by: David Vincent <freesilicon@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-12-02patch: do not assume a branch specific patch queue is neededBruce Ashfield
When processing input files per-branch and global patch queues are generated. If the meta-data has not created any branches in the repo, no branch specific queue is required. The tools assumed that one is always valid, and hence would throw a non-zero exit code and stop processing. By testing for a named per-branch queue, we avoid this issue. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-10-18patch: make patches with shell-unsafe characters validBruce Ashfield
If a patch contains characters like ; or (), it can cause processing errors in the patch queue. By ensuring that we wrap the patch names in quotes, we avoid shell processing and hence they are valid. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-07-12spp/scc: streamline patch and config series generationBruce Ashfield
spp (the preprocessor) and scc (the compiler) are used to generate a meta-series. This meta-series contains all the patches, commands, etc, to construct a tree from scratch. Other tools in the kernel build process then processed the meta-series to trigger patching and configuration. This need to process the meta series coupled the tools to spp/scc and made changing the build process challenging. With this change, spp/scc can now be invoked directly (without wrapper scripts) and produce simple output files: config.queue patches.queue These files are a list of configuration options or patches that should be process to either configure .. or patch the tree. The tools used to configure and patch the kernel are up to the end user (but in the linux-yocto build process these are already defined). In addition to these plain text queues, scc also produces a meta-series like the existing meta-series. This can be used by other tools to re-create a kernel tree from scratch, but is not part of the typical patch and configuration workflow. To implement these changes, spp/scc have been modified to load "commands" at runtime. These commands are used to execute the contents of .scc files (patch, kconf, mark, define, etc) in a sandbox. As such the list of valid commands (and output) can be changed without changing the scc tool itself. This allows multiple passes of the same input files to produce different types of output. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>