[coreboot] [commit] r6065 - trunk/util/lint
repository service
svn at coreboot.org
Fri Nov 12 10:46:30 CET 2010
Author: oxygene
Date: Fri Nov 12 10:46:30 2010
New Revision: 6065
URL: https://tracker.coreboot.org/trac/coreboot/changeset/6065
Log:
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 at georgi-clan.de>
Acked-by: Patrick Georgi <patrick at georgi-clan.de>
Added:
trunk/util/lint/
trunk/util/lint/lint-001-no-global-config-in-romstage
trunk/util/lint/remccoms3.sed
Added: trunk/util/lint/lint-001-no-global-config-in-romstage
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/util/lint/lint-001-no-global-config-in-romstage Fri Nov 12 10:46:30 2010 (r6065)
@@ -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
Added: trunk/util/lint/remccoms3.sed
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/util/lint/remccoms3.sed Fri Nov 12 10:46:30 2010 (r6065)
@@ -0,0 +1,102 @@
+#! /bin/sed -nf
+
+# Remove C and C++ comments, by Brian Hiles (brian_hiles at rocketmail.com)
+
+# Sped up (and bugfixed to some extent) by Paolo Bonzini (bonzini at 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
More information about the coreboot
mailing list