diff options
author | Patrick Georgi <patrick@georgi-clan.de> | 2010-11-12 09:46:30 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-11-12 09:46:30 +0000 |
commit | e85e0c7c54aa6a3b32918fc218d585df70b23eda (patch) | |
tree | 0ebd4c2e6fe26cfa4e28c5efb0e4cc5ea675c86c /util/lint | |
parent | ab940df3315549468e79d31d0b86874830816590 (diff) | |
download | coreboot-e85e0c7c54aa6a3b32918fc218d585df70b23eda.tar.xz |
Consensus seems that this is wanted, integrated into the tree somehow.
This isn't hooked up anywhere, so won't affect anything, except for
developers trying to remove configuration #defines.
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Acked-by: Patrick Georgi <patrick@georgi-clan.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6065 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/lint')
-rw-r--r-- | util/lint/lint-001-no-global-config-in-romstage | 12 | ||||
-rw-r--r-- | util/lint/remccoms3.sed | 102 |
2 files changed, 114 insertions, 0 deletions
diff --git a/util/lint/lint-001-no-global-config-in-romstage b/util/lint/lint-001-no-global-config-in-romstage new file mode 100644 index 0000000000..095cbcebab --- /dev/null +++ b/util/lint/lint-001-no-global-config-in-romstage @@ -0,0 +1,12 @@ +#!/bin/sh +DEFINES=`grep "#define" src/mainboard/*/*/romstage.c |sed 's,.*#define[\t ]\([^\t ]*\)[\t ].*,\1,' | grep -v "(" | sort -u` +SCANBUCKET=`mktemp` +find src -name .svn -type d -prune -o -name mainboard -type d -prune -o -name examples -type d -prune -o -type f -exec sed -f `dirname $0`/remccoms3.sed {} + > $SCANBUCKET + +for define in $DEFINES; do + if [ `egrep -c "([^_A-Za-z0-9]$define[^_A-Za-z0-9]|^$define[^_A-Za-z0-9]|[^_A-Za-z0-9]$define\$)" $SCANBUCKET` -gt 0 ]; then + echo "$define is defined in mainboard(s) and used elsewhere" + fi +done + +rm -f $SCANBUCKET diff --git a/util/lint/remccoms3.sed b/util/lint/remccoms3.sed new file mode 100644 index 0000000000..477a5eacb1 --- /dev/null +++ b/util/lint/remccoms3.sed @@ -0,0 +1,102 @@ +#! /bin/sed -nf + +# Remove C and C++ comments, by Brian Hiles (brian_hiles@rocketmail.com) + +# Sped up (and bugfixed to some extent) by Paolo Bonzini (bonzini@gnu.org) +# Works its way through the line, copying to hold space the text up to the +# first special character (/, ", '). The original version went exactly a +# character at a time, hence the greater speed of this one. But the concept +# and especially the trick of building the line in hold space are entirely +# merit of Brian. + +# Taken from http://sed.sourceforge.net/grabbag/scripts/remccoms3.sed +# According to http://sed.sourceforge.net/grabbag/ it's in the public domain +# Changes: +# 2010-11-06: Remove strings + +:loop + +# This line is sufficient to remove C++ comments! +/^\/\// s,.*,, + +# addition for coreboot-lint: For our purpose we don't need strings +s,"[^"]*",,g + +/^$/{ + x + p + n + b loop +} +/^"/{ + :double + /^$/{ + x + p + n + /^"/b break + b double + } + + H + x + s,\n\(.[^\"]*\).*,\1, + x + s,.[^\"]*,, + + /^"/b break + /^\\/{ + H + x + s,\n\(.\).*,\1, + x + s/.// + } + b double +} + +/^'/{ + :single + /^$/{ + x + p + n + /^'/b break + b single + } + H + x + s,\n\(.[^\']*\).*,\1, + x + s,.[^\']*,, + + /^'/b break + /^\\/{ + H + x + s,\n\(.\).*,\1, + x + s/.// + } + b single +} + +/^\/\*/{ + s/.// + :ccom + s,^.[^*]*,, + /^$/ n + /^\*\//{ + s/..// + b loop + } + b ccom +} + +:break +H +x +s,\n\(.[^"'/]*\).*,\1, +x +s/.[^"'/]*// +b loop |