mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	 63104eec23
			
		
	
	
		63104eec23
		
	
	
	
	
		
			
			include/linux/version.h contained both actual KERNEL version and UTS_RELEASE that contains a subset from git SHA1 for when kernel was compiled as part of a git repository. This had the unfortunate side-effect that all files including version.h would be recompiled when some git changes was made due to changes SHA1. Split it out so we keep independent parts in separate files. Also update checkversion.pl script to no longer check for UTS_RELEASE. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
| #! /usr/bin/perl
 | |
| #
 | |
| # checkversion find uses of LINUX_VERSION_CODE or KERNEL_VERSION
 | |
| # without including <linux/version.h>, or cases of
 | |
| # including <linux/version.h> that don't need it.
 | |
| # Copyright (C) 2003, Randy Dunlap <rdunlap@xenotime.net>
 | |
| 
 | |
| $| = 1;
 | |
| 
 | |
| my $debugging = 0;
 | |
| 
 | |
| foreach $file (@ARGV)
 | |
| {
 | |
|     # Open this file.
 | |
|     open(FILE, $file) || die "Can't open $file: $!\n";
 | |
| 
 | |
|     # Initialize variables.
 | |
|     my $fInComment   = 0;
 | |
|     my $fInString    = 0;
 | |
|     my $fUseVersion   = 0;
 | |
|     my $iLinuxVersion = 0;
 | |
| 
 | |
|     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 ) {
 | |
| 	    $iLinuxVersion      = $. if m/^\s*#\s*include\s*"linux\/version\.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 ) {
 | |
| 	    $iLinuxVersion      = $. if m/^\s*#\s*include\s*<linux\/version\.h>/o;
 | |
| 	}
 | |
| 
 | |
| 	# Look for uses: LINUX_VERSION_CODE, KERNEL_VERSION, UTS_RELEASE
 | |
| 	if (($_ =~ /LINUX_VERSION_CODE/) || ($_ =~ /\WKERNEL_VERSION/)) {
 | |
| 	    $fUseVersion = 1;
 | |
| 	    last LINE if $iLinuxVersion;
 | |
| 	}
 | |
|     }
 | |
| 
 | |
|     # Report used version IDs without include?
 | |
|     if ($fUseVersion && ! $iLinuxVersion) {
 | |
| 	print "$file: $.: need linux/version.h\n";
 | |
|     }
 | |
| 
 | |
|     # Report superfluous includes.
 | |
|     if ($iLinuxVersion && ! $fUseVersion) {
 | |
| 	print "$file: $iLinuxVersion linux/version.h not needed.\n";
 | |
|     }
 | |
| 
 | |
|     # debug: report OK results:
 | |
|     if ($debugging) {
 | |
|         if ($iLinuxVersion && $fUseVersion) {
 | |
| 	    print "$file: version use is OK ($iLinuxVersion)\n";
 | |
|         }
 | |
|         if (! $iLinuxVersion && ! $fUseVersion) {
 | |
| 	    print "$file: version use is OK (none)\n";
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     close(FILE);
 | |
| }
 |