Skip to content

Commit

Permalink
Fix incompatibility with versions of Perl less than 5.6.0
Browse files Browse the repository at this point in the history
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: Jeremy Huntwork <jhuntwork@lightcubesolutions.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
  • Loading branch information
jhuntwork authored and sravnborg committed Oct 29, 2008
1 parent de2addf commit 15a2ee7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
10 changes: 5 additions & 5 deletions scripts/headers_check.pl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/perl
#!/usr/bin/perl -w
#
# headers_check.pl execute a number of trivial consistency checks
#
Expand All @@ -17,7 +17,6 @@
# 2) TODO: check for leaked CONFIG_ symbols

use strict;
use warnings;

my ($dir, $arch, @files) = @ARGV;

Expand All @@ -27,14 +26,15 @@
my $filename;

foreach my $file (@files) {
local *FH;
$filename = $file;
open(my $fh, '<', "$filename") or die "$filename: $!\n";
open(FH, "<$filename") or die "$filename: $!\n";
$lineno = 0;
while ($line = <$fh>) {
while ($line = <FH>) {
$lineno++;
check_include();
}
close $fh;
close FH;
}
exit $ret;

Expand Down
17 changes: 9 additions & 8 deletions scripts/headers_install.pl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/perl
#!/usr/bin/perl -w
#
# headers_install prepare the listed header files for use in
# user space and copy the files to their destination.
Expand All @@ -17,28 +17,29 @@
# 3) Drop all sections defined out by __KERNEL__ (using unifdef)

use strict;
use warnings;

my ($readdir, $installdir, $arch, @files) = @ARGV;

my $unifdef = "scripts/unifdef -U__KERNEL__";

foreach my $file (@files) {
local *INFILE;
local *OUTFILE;
my $tmpfile = "$installdir/$file.tmp";
open(my $infile, '<', "$readdir/$file")
open(INFILE, "<$readdir/$file")
or die "$readdir/$file: $!\n";
open(my $outfile, '>', "$tmpfile") or die "$tmpfile: $!\n";
while (my $line = <$infile>) {
open(OUTFILE, ">$tmpfile") or die "$tmpfile: $!\n";
while (my $line = <INFILE>) {
$line =~ s/([\s(])__user\s/$1/g;
$line =~ s/([\s(])__force\s/$1/g;
$line =~ s/([\s(])__iomem\s/$1/g;
$line =~ s/\s__attribute_const__\s/ /g;
$line =~ s/\s__attribute_const__$//g;
$line =~ s/^#include <linux\/compiler.h>//;
printf $outfile "%s", $line;
printf OUTFILE "%s", $line;
}
close $outfile;
close $infile;
close OUTFILE;
close INFILE;
system $unifdef . " $tmpfile > $installdir/$file";
unlink $tmpfile;
}
Expand Down

0 comments on commit 15a2ee7

Please sign in to comment.