diff options
author | Dave Hansen <dave.hansen@linux.intel.com> | 2013-09-11 17:23:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-11 18:58:41 -0400 |
commit | d62a201f24cba74e2fbf9f6f7af86ff5f5e276fc (patch) | |
tree | 8744109e08545cc175c0c1aaf86bc82b93dd662e /scripts | |
parent | 7e781f67df436b67753a65436c0fef0a0ebf5043 (diff) |
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>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/checkpatch.pl | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 6b409b0ad457..c00e5108c0d2 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl | |||
@@ -37,6 +37,8 @@ my @ignore = (); | |||
37 | my $help = 0; | 37 | my $help = 0; |
38 | my $configuration_file = ".checkpatch.conf"; | 38 | my $configuration_file = ".checkpatch.conf"; |
39 | my $max_line_length = 80; | 39 | my $max_line_length = 80; |
40 | my $ignore_perl_version = 0; | ||
41 | my $minimum_perl_version = 5.10.0; | ||
40 | 42 | ||
41 | sub help { | 43 | sub help { |
42 | my ($exitcode) = @_; | 44 | my ($exitcode) = @_; |
@@ -71,6 +73,8 @@ Options: | |||
71 | "<inputfile>.EXPERIMENTAL-checkpatch-fixes" | 73 | "<inputfile>.EXPERIMENTAL-checkpatch-fixes" |
72 | with potential errors corrected to the preferred | 74 | with potential errors corrected to the preferred |
73 | checkpatch style | 75 | checkpatch style |
76 | --ignore-perl-version override checking of perl version. expect | ||
77 | runtime errors. | ||
74 | -h, --help, --version display this help and exit | 78 | -h, --help, --version display this help and exit |
75 | 79 | ||
76 | When FILE is - read standard input. | 80 | When FILE is - read standard input. |
@@ -123,6 +127,7 @@ GetOptions( | |||
123 | 'mailback!' => \$mailback, | 127 | 'mailback!' => \$mailback, |
124 | 'summary-file!' => \$summary_file, | 128 | 'summary-file!' => \$summary_file, |
125 | 'fix!' => \$fix, | 129 | 'fix!' => \$fix, |
130 | 'ignore-perl-version!' => \$ignore_perl_version, | ||
126 | 'debug=s' => \%debug, | 131 | 'debug=s' => \%debug, |
127 | 'test-only=s' => \$tst_only, | 132 | 'test-only=s' => \$tst_only, |
128 | 'h|help' => \$help, | 133 | 'h|help' => \$help, |
@@ -133,6 +138,13 @@ help(0) if ($help); | |||
133 | 138 | ||
134 | my $exit = 0; | 139 | my $exit = 0; |
135 | 140 | ||
141 | if ($^V && $^V lt $minimum_perl_version) { | ||
142 | printf "$P: requires at least perl version %vd\n", $minimum_perl_version; | ||
143 | if (!$ignore_perl_version) { | ||
144 | exit(1); | ||
145 | } | ||
146 | } | ||
147 | |||
136 | if ($#ARGV < 0) { | 148 | if ($#ARGV < 0) { |
137 | print "$P: no input files\n"; | 149 | print "$P: no input files\n"; |
138 | exit(1); | 150 | exit(1); |