[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