summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <patrick@georgi-clan.de>2010-11-12 09:46:30 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2010-11-12 09:46:30 +0000
commite85e0c7c54aa6a3b32918fc218d585df70b23eda (patch)
tree0ebd4c2e6fe26cfa4e28c5efb0e4cc5ea675c86c
parentab940df3315549468e79d31d0b86874830816590 (diff)
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
-rw-r--r--util/lint/lint-001-no-global-config-in-romstage12
-rw-r--r--util/lint/remccoms3.sed102
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