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 <[email protected]>
Acked-by: Patrick Georgi <[email protected]>

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 ([email protected])
+
+# Sped up (and bugfixed to some extent) by Paolo Bonzini ([email protected])
+# 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

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to