Commit 15a2ee74 authored by Jeremy Huntwork's avatar Jeremy Huntwork Committed by Sam Ravnborg

Fix incompatibility with versions of Perl less than 5.6.0

Fix headers_install.pl and headers_check.pl to be compatible with versions
of Perl less than 5.6.0.  It has been tested with Perl 5.005_03 and 5.8.8.
I realize this may not be an issue for most people, but there will still
be some that hit it, I imagine.  There are three basic issues:

1. Prior to 5.6.0 open() only used 2 arguments, and the versions of
the scripts in 2.6.27.1 use 3.
2. 5.6.0 also introduced the ability to use uninitialized scalar
variables as file handles, which the current scripts make use of.
3. Lastly, 5.6.0 also introduced the pragma 'use warnings'. We can use
the -w switch and be backwards compatible.
Signed-off-by: default avatarJeremy Huntwork <jhuntwork@lightcubesolutions.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent de2addf5
#!/usr/bin/perl #!/usr/bin/perl -w
# #
# headers_check.pl execute a number of trivial consistency checks # headers_check.pl execute a number of trivial consistency checks
# #
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
# 2) TODO: check for leaked CONFIG_ symbols # 2) TODO: check for leaked CONFIG_ symbols
use strict; use strict;
use warnings;
my ($dir, $arch, @files) = @ARGV; my ($dir, $arch, @files) = @ARGV;
...@@ -27,14 +26,15 @@ my $lineno = 0; ...@@ -27,14 +26,15 @@ my $lineno = 0;
my $filename; my $filename;
foreach my $file (@files) { foreach my $file (@files) {
local *FH;
$filename = $file; $filename = $file;
open(my $fh, '<', "$filename") or die "$filename: $!\n"; open(FH, "<$filename") or die "$filename: $!\n";
$lineno = 0; $lineno = 0;
while ($line = <$fh>) { while ($line = <FH>) {
$lineno++; $lineno++;
check_include(); check_include();
} }
close $fh; close FH;
} }
exit $ret; exit $ret;
......
#!/usr/bin/perl #!/usr/bin/perl -w
# #
# headers_install prepare the listed header files for use in # headers_install prepare the listed header files for use in
# user space and copy the files to their destination. # user space and copy the files to their destination.
...@@ -17,28 +17,29 @@ ...@@ -17,28 +17,29 @@
# 3) Drop all sections defined out by __KERNEL__ (using unifdef) # 3) Drop all sections defined out by __KERNEL__ (using unifdef)
use strict; use strict;
use warnings;
my ($readdir, $installdir, $arch, @files) = @ARGV; my ($readdir, $installdir, $arch, @files) = @ARGV;
my $unifdef = "scripts/unifdef -U__KERNEL__"; my $unifdef = "scripts/unifdef -U__KERNEL__";
foreach my $file (@files) { foreach my $file (@files) {
local *INFILE;
local *OUTFILE;
my $tmpfile = "$installdir/$file.tmp"; my $tmpfile = "$installdir/$file.tmp";
open(my $infile, '<', "$readdir/$file") open(INFILE, "<$readdir/$file")
or die "$readdir/$file: $!\n"; or die "$readdir/$file: $!\n";
open(my $outfile, '>', "$tmpfile") or die "$tmpfile: $!\n"; open(OUTFILE, ">$tmpfile") or die "$tmpfile: $!\n";
while (my $line = <$infile>) { while (my $line = <INFILE>) {
$line =~ s/([\s(])__user\s/$1/g; $line =~ s/([\s(])__user\s/$1/g;
$line =~ s/([\s(])__force\s/$1/g; $line =~ s/([\s(])__force\s/$1/g;
$line =~ s/([\s(])__iomem\s/$1/g; $line =~ s/([\s(])__iomem\s/$1/g;
$line =~ s/\s__attribute_const__\s/ /g; $line =~ s/\s__attribute_const__\s/ /g;
$line =~ s/\s__attribute_const__$//g; $line =~ s/\s__attribute_const__$//g;
$line =~ s/^#include <linux\/compiler.h>//; $line =~ s/^#include <linux\/compiler.h>//;
printf $outfile "%s", $line; printf OUTFILE "%s", $line;
} }
close $outfile; close OUTFILE;
close $infile; close INFILE;
system $unifdef . " $tmpfile > $installdir/$file"; system $unifdef . " $tmpfile > $installdir/$file";
unlink $tmpfile; unlink $tmpfile;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment