forked from Minki/linux
cb77f0d623
The default NetBSD package manager is pkgsrc and it installs Perl along other third party programs under custom and configurable prefix. The default prefix for binary prebuilt packages is /usr/pkg, and the Perl executable lands in /usr/pkg/bin/perl. This change switches "/usr/bin/perl" to "/usr/bin/env perl" as it's the most portable solution that should work for almost everybody. Perl's executable is detected automatically. This change switches -w option passed to the executable with more modern "use warnings;" approach. There is no functional change to the default behavior. While there, drop "require 5" from scripts/namespace.pl (Perl from 1994?). Signed-off-by: Kamil Rytarowski <n54@gmx.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
72 lines
1.9 KiB
Perl
Executable File
72 lines
1.9 KiB
Perl
Executable File
#! /usr/bin/env 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>
|
|
|
|
use strict;
|
|
|
|
$| = 1;
|
|
|
|
my $debugging;
|
|
|
|
foreach my $file (@ARGV) {
|
|
next if $file =~ "include/linux/version\.h";
|
|
# Open this file.
|
|
open( my $f, '<', $file )
|
|
or die "Can't open $file: $!\n";
|
|
|
|
# Initialize variables.
|
|
my ($fInComment, $fInString, $fUseVersion);
|
|
my $iLinuxVersion = 0;
|
|
|
|
while (<$f>) {
|
|
# 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 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($f);
|
|
}
|