mirror of https://gitee.com/openkylin/linux.git
checkpatch: enforce sane perl version
I got a bug report from a couple of users who said checkpatch.pl was broken for them. It was erroring out on fairly random lines most commonly with messages like: Nested quantifiers in regex; marked by <--HERE in m/(\((?:[^\(\)]++ <-- HERE |(?-1))*\))/ at ./checkpatch.pl line 340. The bug reporter was running a version of perl 5.8 which was end-of-lifed in 2008: http://www.cpan.org/src/. Versions of perl this old are at _best_ quite untested. At worst, they are crusty and known to be completely broken. If folks have a system _that_ old, then we should have mercy on them and give them a half-decent error message rather than fail with nutty error messages. This patch enforces that checkpatch.pl is run with perl 5.10, which was end-of-lifed in 2009. The new --ignore-perl-version command-line switch will let folks override this if they want. Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Cc: Joe Perches <joe@perches.com> Cc: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
7e781f67df
commit
d62a201f24
|
@ -37,6 +37,8 @@ my @ignore = ();
|
|||
my $help = 0;
|
||||
my $configuration_file = ".checkpatch.conf";
|
||||
my $max_line_length = 80;
|
||||
my $ignore_perl_version = 0;
|
||||
my $minimum_perl_version = 5.10.0;
|
||||
|
||||
sub help {
|
||||
my ($exitcode) = @_;
|
||||
|
@ -71,6 +73,8 @@ Options:
|
|||
"<inputfile>.EXPERIMENTAL-checkpatch-fixes"
|
||||
with potential errors corrected to the preferred
|
||||
checkpatch style
|
||||
--ignore-perl-version override checking of perl version. expect
|
||||
runtime errors.
|
||||
-h, --help, --version display this help and exit
|
||||
|
||||
When FILE is - read standard input.
|
||||
|
@ -123,6 +127,7 @@ GetOptions(
|
|||
'mailback!' => \$mailback,
|
||||
'summary-file!' => \$summary_file,
|
||||
'fix!' => \$fix,
|
||||
'ignore-perl-version!' => \$ignore_perl_version,
|
||||
'debug=s' => \%debug,
|
||||
'test-only=s' => \$tst_only,
|
||||
'h|help' => \$help,
|
||||
|
@ -133,6 +138,13 @@ help(0) if ($help);
|
|||
|
||||
my $exit = 0;
|
||||
|
||||
if ($^V && $^V lt $minimum_perl_version) {
|
||||
printf "$P: requires at least perl version %vd\n", $minimum_perl_version;
|
||||
if (!$ignore_perl_version) {
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if ($#ARGV < 0) {
|
||||
print "$P: no input files\n";
|
||||
exit(1);
|
||||
|
|
Loading…
Reference in New Issue