Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
This commit is contained in:
65
scripts/checkconfig.pl
Executable file
65
scripts/checkconfig.pl
Executable file
@@ -0,0 +1,65 @@
|
||||
#! /usr/bin/perl
|
||||
#
|
||||
# checkconfig: find uses of CONFIG_* names without matching definitions.
|
||||
# Copyright abandoned, 1998, Michael Elizabeth Chastain <mailto:mec@shout.net>.
|
||||
|
||||
use integer;
|
||||
|
||||
$| = 1;
|
||||
|
||||
foreach $file (@ARGV)
|
||||
{
|
||||
# Open this file.
|
||||
open(FILE, $file) || die "Can't open $file: $!\n";
|
||||
|
||||
# Initialize variables.
|
||||
my $fInComment = 0;
|
||||
my $fInString = 0;
|
||||
my $fUseConfig = 0;
|
||||
my $iLinuxConfig = 0;
|
||||
my %configList = ();
|
||||
|
||||
LINE: while ( <FILE> )
|
||||
{
|
||||
# Strip comments.
|
||||
$fInComment && (s+^.*?\*/+ +o ? ($fInComment = 0) : next);
|
||||
m+/\*+o && (s+/\*.*?\*/+ +go, (s+/\*.*$+ +o && ($fInComment = 1)));
|
||||
|
||||
# Pick up definitions.
|
||||
if ( m/^\s*#/o )
|
||||
{
|
||||
$iLinuxConfig = $. if m/^\s*#\s*include\s*"linux\/config\.h"/o;
|
||||
$configList{uc $1} = 1 if m/^\s*#\s*include\s*"config\/(\S*)\.h"/o;
|
||||
}
|
||||
|
||||
# Strip strings.
|
||||
$fInString && (s+^.*?"+ +o ? ($fInString = 0) : next);
|
||||
m+"+o && (s+".*?"+ +go, (s+".*$+ +o && ($fInString = 1)));
|
||||
|
||||
# Pick up definitions.
|
||||
if ( m/^\s*#/o )
|
||||
{
|
||||
$iLinuxConfig = $. if m/^\s*#\s*include\s*<linux\/config\.h>/o;
|
||||
$configList{uc $1} = 1 if m/^\s*#\s*include\s*<config\/(\S*)\.h>/o;
|
||||
$configList{$1} = 1 if m/^\s*#\s*define\s+CONFIG_(\w*)/o;
|
||||
$configList{$1} = 1 if m/^\s*#\s*undef\s+CONFIG_(\w*)/o;
|
||||
}
|
||||
|
||||
# Look for usages.
|
||||
next unless m/CONFIG_/o;
|
||||
WORD: while ( m/\bCONFIG_(\w+)/og )
|
||||
{
|
||||
$fUseConfig = 1;
|
||||
last LINE if $iLinuxConfig;
|
||||
next WORD if exists $configList{$1};
|
||||
print "$file: $.: need CONFIG_$1.\n";
|
||||
$configList{$1} = 0;
|
||||
}
|
||||
}
|
||||
|
||||
# Report superfluous includes.
|
||||
if ( $iLinuxConfig && ! $fUseConfig )
|
||||
{ print "$file: $iLinuxConfig: linux/config.h not needed.\n"; }
|
||||
|
||||
close(FILE);
|
||||
}
|
Reference in New Issue
Block a user