forked from mirrors/linux
		
	 1da177e4c3
			
		
	
	
		1da177e4c3
		
	
	
	
	
		
			
			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!
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
| #! /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);
 | |
| }
 |