Commit bae4cecc09db9d472d71cb262de3c976147ad628
Committed by
Michal Marek
1 parent
dbbe33e99f
Exists in
master
and in
39 other branches
headers_install: use local file handles
Better practice to use 3 arg open and local file handles. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: WANG Cong <amwang@redhat.com> Cc: Michal Marek <mmarek@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
Showing 1 changed file with 10 additions and 9 deletions Inline Diff
scripts/headers_install.pl
1 | #!/usr/bin/perl -w | 1 | #!/usr/bin/perl -w |
2 | # | 2 | # |
3 | # headers_install prepare the listed header files for use in | 3 | # headers_install prepare the listed header files for use in |
4 | # user space and copy the files to their destination. | 4 | # user space and copy the files to their destination. |
5 | # | 5 | # |
6 | # Usage: headers_install.pl readdir installdir arch [files...] | 6 | # Usage: headers_install.pl readdir installdir arch [files...] |
7 | # readdir: dir to open files | 7 | # readdir: dir to open files |
8 | # installdir: dir to install the files | 8 | # installdir: dir to install the files |
9 | # arch: current architecture | 9 | # arch: current architecture |
10 | # arch is used to force a reinstallation when the arch | 10 | # arch is used to force a reinstallation when the arch |
11 | # changes because kbuild then detect a command line change. | 11 | # changes because kbuild then detect a command line change. |
12 | # files: list of files to check | 12 | # files: list of files to check |
13 | # | 13 | # |
14 | # Step in preparation for users space: | 14 | # Step in preparation for users space: |
15 | # 1) Drop all use of compiler.h definitions | 15 | # 1) Drop all use of compiler.h definitions |
16 | # 2) Drop include of compiler.h | 16 | # 2) Drop include of compiler.h |
17 | # 3) Drop all sections defined out by __KERNEL__ (using unifdef) | 17 | # 3) Drop all sections defined out by __KERNEL__ (using unifdef) |
18 | 18 | ||
19 | use strict; | 19 | use strict; |
20 | 20 | ||
21 | my ($readdir, $installdir, $arch, @files) = @ARGV; | 21 | my ($readdir, $installdir, $arch, @files) = @ARGV; |
22 | 22 | ||
23 | my $unifdef = "scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__"; | 23 | my $unifdef = "scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__"; |
24 | 24 | ||
25 | foreach my $file (@files) { | 25 | foreach my $file (@files) { |
26 | local *INFILE; | ||
27 | local *OUTFILE; | ||
28 | my $tmpfile = "$installdir/$file.tmp"; | 26 | my $tmpfile = "$installdir/$file.tmp"; |
29 | open(INFILE, "<$readdir/$file") | 27 | |
30 | or die "$readdir/$file: $!\n"; | 28 | open(my $in, '<', "$readdir/$file") |
31 | open(OUTFILE, ">$tmpfile") or die "$tmpfile: $!\n"; | 29 | or die "$readdir/$file: $!\n"; |
32 | while (my $line = <INFILE>) { | 30 | open(my $out, '>', $tmpfile) |
31 | or die "$tmpfile: $!\n"; | ||
32 | while (my $line = <$in>) { | ||
33 | $line =~ s/([\s(])__user\s/$1/g; | 33 | $line =~ s/([\s(])__user\s/$1/g; |
34 | $line =~ s/([\s(])__force\s/$1/g; | 34 | $line =~ s/([\s(])__force\s/$1/g; |
35 | $line =~ s/([\s(])__iomem\s/$1/g; | 35 | $line =~ s/([\s(])__iomem\s/$1/g; |
36 | $line =~ s/\s__attribute_const__\s/ /g; | 36 | $line =~ s/\s__attribute_const__\s/ /g; |
37 | $line =~ s/\s__attribute_const__$//g; | 37 | $line =~ s/\s__attribute_const__$//g; |
38 | $line =~ s/^#include <linux\/compiler.h>//; | 38 | $line =~ s/^#include <linux\/compiler.h>//; |
39 | $line =~ s/(^|\s)(inline)\b/$1__$2__/g; | 39 | $line =~ s/(^|\s)(inline)\b/$1__$2__/g; |
40 | $line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g; | 40 | $line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g; |
41 | $line =~ s/(^|\s|[(])(volatile)\b(\s|[(]|$)/$1__$2__$3/g; | 41 | $line =~ s/(^|\s|[(])(volatile)\b(\s|[(]|$)/$1__$2__$3/g; |
42 | printf OUTFILE "%s", $line; | 42 | printf {$out} "%s", $line; |
43 | } | 43 | } |
44 | close OUTFILE; | 44 | close $out; |
45 | close INFILE; | 45 | close $in; |
46 | |||
46 | system $unifdef . " $tmpfile > $installdir/$file"; | 47 | system $unifdef . " $tmpfile > $installdir/$file"; |
47 | unlink $tmpfile; | 48 | unlink $tmpfile; |
48 | } | 49 | } |