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@georgi-clan.de Acked-by: Patrick Georgi patrick@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@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