summaryrefslogtreecommitdiffstats
path: root/util/lint
Commit message (Collapse)AuthorAgeFilesLines
* util/lint: Add check for symbolic links in the coreboot treeMartin Roth2016-11-301-0/+33
| | | | | | | | | | | Because of the varied environments that coreboot is built under, we don't want to have symbolic links in the tree. Change-Id: I4cf9d95a437626cb52e3032a5e6cba83320a334b Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/17633 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* util/lint: Exclude devicetree files with custom name from license checkNaresh G Solanki2016-11-301-1/+1
| | | | | | | | | | | As devicetree files can have different name followed by extension cb Exclude all .cb file from the license header check. Change-Id: I37b651eedd77cbf3d3e65ff0f027f971b0a2d2ac Signed-off-by: Naresh G Solanki <naresh.solanki@intel.com> Reviewed-on: https://review.coreboot.org/17186 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
* kconfig_lint: More updates for excluded filesMartin Roth2016-11-281-2/+2
| | | | | | | | | | | | | | | - All of the symbols are in the .config, so if .config is include in the search all of the symbols are always found. - There are now some Kconfig symbols in the Documentation directory, so that needs to be excluded. - 3rdparty has lots of Kconfig symbols that are unrelated to what is being searched for. Change-Id: I0ff56d0a0916338a8b94f5210b8e0b3be5194f41 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/17588 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* kconfig_lint: exclude payloads from search, add back specific filesMartin Roth2016-11-281-3/+4
| | | | | | | | | | | Don't search for symbols in the payloads directory, except for specific files that are actively added back to the search. Change-Id: I6f28dc7dee040b8061fa5644066f3613367b6d84 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/17443 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* util/lint/lint: Show lint script output as it's runningMartin Roth2016-10-271-3/+2
| | | | | | | | | | | | | | The checkpatch script takes a really long time to run, and when the output is buffered to wait until it's finished, it's hard to tell if the script is actually doing anything. Instead, use tee to log the output and display it at the same time. Change-Id: I3cf36e5e6ca28584103888ee1c6f125320ac068a Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/17125 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins)
* Revert "util/lint/kconfig_lint: change warning levels and text"Martin Roth2016-10-031-13/+5
| | | | | | | | | This reverts commit dfdb0733a6a71b11d15006dafc13841e84fab7cd. Change-Id: I91bf5e42f4ac241f544742ce161bae651f9f9947 Reviewed-on: https://review.coreboot.org/16868 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
* util/lint/kconfig_lint: change warning levels and textMartin Roth2016-10-031-5/+13
| | | | | | | | | | | | | | | | - Add an exception for MAINBOARD_POWER_ON_AFTER_POWER_FAIL when checking - With those exceptions set, we don't have anymore #define or #ifdef warnings, so turn them to errors so no more can be pushed. - Change the definition of an unused symbol from a warning to a note. There are times when unused symbols are expected. - Upgrade the warning for loading Kconfig files multiple times from a warning to an error. Change-Id: I6dcb06d4f0b099d5ccaf7643e72dd790719bdf58 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/16840 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* util/lint/kconfig_lint: Check default typesMartin Roth2016-10-031-2/+34
| | | | | | | | | | | | | | The type of the default value wasn't being checked to make sure that it matched the type of the Kconfig symbol. This makes sure that the symbol is being set to either a reasonable looking value or to another Kconfig symbol. Change-Id: Ia01bd2d8b387f319d29f0a005d55cb8e20cd3853 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/16839 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* checkpatch.pl: ignore '#define asmlinkage'Martin Roth2016-09-201-1/+2
| | | | | | | | | | | checkpatch warns that the asmlinkage storage class should be at the beginning of the declaration when we define it to be an empty value. Change-Id: I12292d5b42bf6da9130bb969ebe00fca8efcf049 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/16358 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* lint/lint-007-checkpatch: Update lint scriptMartin Roth2016-09-201-7/+26
| | | | | | | | | | | | | | | | - Check Kconfig files as well. - Accept a list of directories to check as a command line argument. - Only look at src & util directories by default. - Skip src/vendorcode. - Remove bypass of payloads/coreinfo/util/kconfig directory, it no longer exists. Change-Id: Ia522d3ddc29914220bdaae36ea23ded7338c48fd Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/16359 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* Add minimal GNAT run time system (RTS)Nico Huber2016-09-191-0/+1
| | | | | | | | | | | | | | | Add a stripped-down version of libgnat. This is somehow comparable to libgcc but for Ada programs. It's licensed under GPLv3 but with the runtime library exception. So it's totally fine to link it with our GPLv2 code and keep it under GPLv2. Change-Id: Ie6522abf093f0a516b9ae18ddc69131bd721dc0c Signed-off-by: Nico Huber <nico.huber@secunet.com> Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/11836 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com>
* checkpatch.pl: Force raw_line to return a defined valueMartin Roth2016-09-151-1/+7
| | | | | | | | | | | | Fixes the warning: Use of uninitialized value in concatenation (.) or string at util/lint/checkpatch.pl line 4739 Change-Id: Idc3c631735a595517d77cb8b8ec67e1ac00b6685 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/16357 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* lint/checkpatch.pl: Pull in coreboot fixesMartin Roth2016-09-151-2/+3
| | | | | | | | | | | | | | | | | | | | This pulls in two fixes that were added to coreboot's checkpatch.pl script: - commit 82ef8ada (src/commonlib/lz4_wrapper: Correct inline asm for unaligned 64-bit copy): modify checkpatch.pl to ignore spaces before opening brackets when used in inline assembly. - commit ebef00fa (lint/checkpatch.pl: escape \{ in perl regex to fix warnings): Unescaped left brace in regex is deprecated, passed through in regex; Change-Id: Ia2c712c5b1bb5f67953a9098b5a076e31e3bd8d3 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/16348 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* util/lint: Update to latest checkpatch.plStefan Reinauer2016-09-042-167/+954
| | | | | | | | | | Taken from upstream Linux kernel. Change-Id: Id8c9d48b8ca3c7592dc4d78cfd092714bbbb2abf Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: https://review.coreboot.org/15980 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
* util/lint: Add a tool to verify a single newline at the end of filesMartin Roth2016-08-191-0/+52
| | | | | | | | | | | | This takes way too long to run - currently about 30 seconds to look at the entire coreboot tree. Change-Id: I403934014b422528715ea95ff652babe5e18c88b Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/15976 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* util/lint: Add a lint tool to find non-ascii & unprintable charsMartin Roth2016-08-021-0/+43
| | | | | | | | | | | | | | This examines characters in coreboot's sourcecode to look for values that are not TAB, or in the range of space (0x20) to ~ (0x7F). It specifically excludes copyright lines so that names with high- ASCII characters are not flagged. Change-Id: I40f7e61fd403cbad19cf0746e2017c53e7379bf8 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/15979 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* src/commonlib/lz4_wrapper: Correct inline asm for unaligned 64-bit copyBenjamin Barenblat2016-06-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite inline assembly for ARMv7+ to correctly annotate inputs and outputs. On ARM GCC 6.1.1, this causes assembly output to change from the incorrect @ r0 is allocated to hold dst and x0 @ r1 is allocated to hold src and x1 ldr r0, [r1] @ clobbers dst! ldr r1, [r1, #4] str r0, [r0] str r1, [r0, #4] to the correct @ r0 is allocated to hold dst @ r1 is allocated to hold src and x1 @ r3 is allocated to hold x0 ldr r3, [r1] ldr r1, [r1, #4] str r3, [r0] str r1, [r0, #4] Also modify checkpatch.pl to ignore spaces before opening brackets when used in inline assembly. Change-Id: I255995f5e0a7b1a95375258755a93972c51d79b8 Signed-off-by: Benjamin Barenblat <bbaren@google.com> Reviewed-on: https://review.coreboot.org/15216 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
* lint/checkpatch.pl: escape \{ in perl regex to fix warningsAlexander Couzens2016-04-221-5/+5
| | | | | | | | | | | | | | | Fix warnings: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\#\s*define.*do\s{ <-- HERE / at util/lint/checkpatch.pl line 3261. marked by <-- HERE in m/\(.*\){ <-- HERE / at util/lint/checkpatch.pl line 3750. marked by <-- HERE in m/do{ <-- HERE / at util/lint/checkpatch.pl line 3751. marked by <-- HERE in m/^\({ <-- HERE / at util/lint/checkpatch.pl line 4194. Change-Id: If0c1f07a16df9e6cd1c1393a31af8b8ea6a66b01 Signed-off-by: Alexander Couzens <lynxis@fe80.eu> Reviewed-on: https://review.coreboot.org/14310 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* util/lint: Find unsigned variables with no length specifiedMartin Roth2016-04-211-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | The coding guidelines say that all objects should have fully qualified types (unsigned int instead of unsigned). This script finds violations of that rule. Steps for the filter: 1) Find all lines in the coreboot tree that have the word 'unsigned' followed by a space. 2) Exclude directories that aren't in the include list or are specifically excluded. 3) Exclude files that aren't specifically included. 4) Filter out legimitate uses 'unsigned int' or 'unsigned long' for example. 5) Filter out lines that begin with '/*' or '*' Change-Id: I46213c6a168e6aafa29a50af814bf7e0fcd32eb6 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/14269 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* lint: Add check for amd & apple mainboard license headersMartin Roth2016-04-211-2/+2
| | | | | | | | Change-Id: Idda4b7179e3e7b3f5b70be810b428b0651c1cd67 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/14427 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* util/lint: Update lint-stable-000-license-headersMartin Roth2016-04-141-1/+37
| | | | | | | | | | Add all currently clean directories. Change-Id: Ibfb6432b485adb7fdc930f57ea0af4ff35921d37 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/14332 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* util/lint: update lint-000-license-headersMartin Roth2016-04-131-6/+15
| | | | | | | | | | | | | | | | - Add some additional filters for files that do not require license headers. - Add an alternative wording for the BSD license that is used in several files. - Add string for dummy files - Stop checking if there are no files left. - Remove 'local' keyword which is not posix compliant. Change-Id: I2ed1b0572b5fbe84ea86173b7ec2106454399547 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/14324 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* lint/lint-stable-004-style-labels: Update scriptMartin Roth2016-04-131-1/+13
| | | | | | | | | | | | | | | - Look at entire tree instead of just the current commit. This was causing the test to overlook some issues that were already in the tree. - If git is on the system, and the code is in a git repo, use the 'git ls-files' command to find the files to examine. If those conditions aren't met, fall back to using the find command. - Wrap the command so it's easier to read. Change-Id: I3dce219a29ffb1ae56a31318b995e3ba8ea43e70 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/14194 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* lint/check_lint_tests: Add script that will break all stable testsMartin Roth2016-04-101-0/+50
| | | | | | | | | | | | | | | | | | | Add a script to help us verify that our lint tests are working. This isn't finished, because it should test all of the failure modes. Some of the tests, 008-kconfig in particular have a lot of ways that they can fail. Currently the Kconfig test is triggered by removing the board name file in test 006. This removes the only place the config option for that board name is located. Change-Id: If01c6daf1c99d097a19995b4befae90a3b5db2d6 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/14198 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* lint: Update board status script to look at the whole treeMartin Roth2016-03-291-4/+4
| | | | | | | | | | | | The board status script wasn't checking the entire tree to make sure that all boards had board_info.txt files. Also it would only print out the first issue that was found. Change-Id: I5f2fa9e564c805c6dbee7a35cab80c1c342567a5 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/14118 Tested-by: build bot (Jenkins) Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
* lint-kconfig: pipe stderr to stdout to catch script errorsMartin Roth2016-03-051-2/+2
| | | | | | | | | | | | | Because the perl error messages go to stderr, we were not catching these on the build server. If the script has an issue, we want to know immediately, so change the bash script that calls into the perl lint tool to pipe these to stdout. Change-Id: Ieeec9ccbd59177cfd1859a9738a4ee1fab803d28 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13877 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: make sure if and endif statements are balancedMartin Roth2016-03-031-0/+13
| | | | | | | | | | | | | | In Kconfig files, the 'if' and 'endif' statements need to match up. A file can't start an if statement that's completed in the next file. Add a check as the files are being parsed to make sure that they match up correctly. Change-Id: If51207ea037089ab84c768e5a868270468cf4c4f Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13876 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Fix checks when running in taint modeMartin Roth2016-02-241-4/+15
| | | | | | | | | | | | | | | | | | The builders run perl scripts in taint mode, and some of the checks that the kconfig lint script were running were tainted, causing the script to terminate early when running on the servers. This checks to see if taint mode is enabled, and untaints the path if it is. All external tools (git & grep) must be in /bin, /usr/bin, or /usr/local/bin. This also removes the check for unused kconfig files if taint mode is enabled. Change-Id: I8d1e1c32275f759d085759fb5d8a6c85d4f99539 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13751 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins)
* lint: Make sure site-local isn't committed to coreboot repoMartin Roth2016-02-161-0/+29
| | | | | | | | Change-Id: I1dc9469e3d001fe0d5b0517d45679b056586b5b3 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13556 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* kconfig_lint: update kconfig lint shell scriptsMartin Roth2016-02-102-2/+44
| | | | | | | | | | | | | | | - Add lint-stable script with just error checking - Enable warnings in addition to errors in non-stable test. - Use git grep if the code is in a git repo now that exclusions are working. - Check for perl, and ask the user to install it if it isn't available. Change-Id: Ie60d21f4ef8a61d879f116eb2056eb805b0a55f2 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13542 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
* kconfig_lint: demote 'always defined' errors to warningsMartin Roth2016-02-092-4/+4
| | | | | | | | | | | | | To be able to run this as a lint-stable test, demote these to warnings for now. After the current CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL issues get fixed, these can be promoted again. Change-Id: I1432980eb0c871fc61c12dcc351f8d46513a7965 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13541 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Check for IS_ENABLED used on symbols without CONFIG_Martin Roth2016-02-092-0/+22
| | | | | | | | | | | | | | | | This looks at the coreboot codebase for the IS_ENABLED macro, and gives an error if there is a symbol used without the CONFIG_ prefix. This only works for symbols of type bool. A future check will be added for all symbols, but that will take a significant amount of time to run, because each symbol will need to be searched for individually. Change-Id: I92f2de2d231610d1a788da965f21966d89c2f25c Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13538 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* lint: test for assembler dialect switchesPatrick Georgi2016-02-071-0/+18
| | | | | | | | | | We prefer the default AT&T dialect on x86 Change-Id: I7a5778c82ab5df6e971dfc73e98373893cfeeb92 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-on: https://review.coreboot.org/13135 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
* lint: Check license headers for both paragraphs of the GPLMartin Roth2016-02-021-2/+18
| | | | | | | | | | | | | If the GPLv2 or GPLv2+ license header is being used on a coreboot file, make sure it has two paragraphs as specified by the Common License Header section in the developer guidelines in the coreboot wiki. Change-Id: Ifffa0fa7272f5a4b129d4b7b8a515f8795bc2401 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13119 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Add readme documentMartin Roth2016-01-301-0/+97
| | | | | | | | | | | | The readme describes the operation and usage of kconfig_lint. It also lists all the notes, warnings, and errors that kconfig_lint looks for. Change-Id: I873f394ff93fce42cd9638cbbad6134f1aef3a6a Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13464 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: add comments and whitespace fixes.Martin Roth2016-01-301-12/+15
| | | | | | | | | | No functional changes. Change-Id: I40284b68ddda7e19741c5306a8c74761c00e4b35 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13463 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Skip temp files when looking for unused Kconfig files.Martin Roth2016-01-301-1/+5
| | | | | | | | | | | Don't warn on Kconfig.orig and Kconfig~ files when trying to verify that all the Kconfig files in the coreboot source tree are being loaded. Change-Id: Ie7babe60b29735e5ccc5f93f4e42ad82dfb47044 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13462 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Update prompt structureMartin Roth2016-01-301-1/+6
| | | | | | | | | | | | - The prompts were not getting incremented, so each prompt for a symbol would overwrite the previous. - Record the menu each prompt is in. Change-Id: Ia282a30344d5e135f4f2027be9aff0e49a4e5edb Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13461 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Add warning if tristate type is used in corebootMartin Roth2016-01-301-0/+4
| | | | | | | | | | | | Although there's no reason we COULDN'T use tristate types, we haven't up to this point. If there's a good reason to use them in the future, this check can be removed. Change-Id: I5f1903341f522bc957e394bc0fd288ba1adab431 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13460 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: merge 'git grep' and 'grep' exclude dir and filesMartin Roth2016-01-301-1/+16
| | | | | | | | | | | | | | | | | | The code had originally been using standard grep to look through the coreboot tree for Kconfig symbols. When this was switched to git grep, the --exclude-dir options didn't work, and nothing was added to exclude the directories that shouldn't be searched for symbols. This resulted in invalid warnings as it searched directories that had Kconfig symbols for other projects. This merges the exclusion list for both the regular and git versions of grep for consistent behavior. Change-Id: I7fed8b9fa827cb14f7373e7b774acc56e43cb6ff Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13459 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Don't look at IS_ENABLED() text in comments.Martin Roth2016-01-301-1/+1
| | | | | | | | | | This fixes at least one kconfig_lint warning. Change-Id: I35edf57e90315a8372aaf3b41e923cd8dad7386a Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13458 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: Exclude some Kconfig symbols from unused symbol checksMartin Roth2016-01-301-0/+6
| | | | | | | | | | | | | | | | | | | | The configuration that coreboot uses for setting selected symbols typically involves a structure like this: config BLEH_SPECIFIC_OPTIONS def_bool y select SYMBOL This leads to an an extra kconfig symbol BLEH_SPECIFIC_OPTIONS that is never referenced by anything else, generating a warning. Since this is currently the construct that coreboot uses, filter it out of the warnings for now. Change-Id: I85a95e4c4e8469870c7f219f2a92955819845573 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13457 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* kconfig_lint: merge 'git grep' and 'grep' exclude dir and filesMartin Roth2016-01-301-15/+7
| | | | | | | | | | | | | | | | | | The code had originally been using standard grep to look through the coreboot tree for Kconfig symbols. When this was switched to git grep, the --exclude-dir options didn't work, and nothing was added to exclude the directories that shouldn't be searched for symbols. This resulted in invalid warnings as it searched directories that had Kconfig symbols for other projects. This merges the exclusion list for both the regular and git versions of grep for consistent behavior. Change-Id: I69a1e0b30fecca152e02a511c82248b6091b3d8b Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13456 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* lint: Add a check for the executable bit being set on source codeMartin Roth2016-01-301-0/+20
| | | | | | | | Change-Id: Ia51bd0fa742b2cb17f638c15d669ad1a7f65fefd Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13433 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins)
* util/lint: Fix linter for old license headersMartin Roth2016-01-211-3/+3
| | | | | | | | | | | | | | | | Somehow I lost a $ on headerlist between when I tested the script and when I submitted it, turning headerlist into plain text instead of a variable name. This makes the test always pass. - Fix variable bug. - exclude this script from the check. - update test for empty HEADER_DIRS variable. Change-Id: I6080c520bc741e9d689f7c66ee97879afc8ba38c Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13057 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* util/lint: Update license linter, make stable versionMartin Roth2016-01-182-3/+76
| | | | | | | | | | | | | | | | | | - Split the script up to make it easier to update and read. - Check for multiple different license strings. Not all files are GPL licensed. - Don't validate 0 length files - Update list of files to exclude from the license header check. - Add command line option to set directories to check - Add stable version to check a few directories that are fixed. This just calls the non-stable version with the directories to check. Change-Id: I90d4e93a20b4e1638ce4f43f8acbee72dc588625 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/12909 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* util/lint/kconfig_lint: Add 3 new checksMartin Roth2016-01-181-5/+70
| | | | | | | | | | | | | - Check that selected symbols are type bool - Check that selected symbols aren't created inside a choice - Check that symbols created inside a choice aren't created outside of a choice as well. Change-Id: I08963d637f8bdfb2413cfe831eafdc974d7674ab Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/12969 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* util/lint: Add linter for files with the old license headerMartin Roth2016-01-151-0/+49
| | | | | | | | | | | Help prevent additional files coming in to the tree with the old license header. Change-Id: Idbafc2d8c05f87075083293d27900304c53e13dc Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/12920 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* util/lint: Add lint script to run kconfig_lintMartin Roth2016-01-121-0/+18
| | | | | | | | | | | | The lint target in the makefile relies there being a script using this particular naming format, so add a shell script front end to run the kconfig linter. Change-Id: I029c1cd3bbf3837c9f1d86c391ae5cabfa53685d Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/12903 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
* util/lint/kconfig_lint: Run through perltidy to fix whitespaceMartin Roth2016-01-121-70/+93
| | | | | | | | Change-Id: I7f04156fff0b65ea262b12961ce76ef329d358ab Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/12902 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>