Message ID | 20090605021419.7905.89870.sendpatchset@localhost.localdomain (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Friday 05 June 2009, Amerigo Wang wrote: > -sub check_prototypes > +sub check_declarations > { > - if ($line =~ m/^\s*extern\b/) { > - printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; > + if ($line =~m/^\s*extern\b/) { > + if ($line =~ m/^\s*extern\b.*\(.*\)/) { > + printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; > + } else { > + printf STDERR "$filename:$lineno: exporting global variable to userspace is suspicious\n"; > + } > } > } I don't think we really need that distinction here, the old text applies to both. But please find a way to get rid of the "extern's". http://angryflower.com/bobsqu.gif Arnd <>< -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Arnd Bergmann wrote: > On Friday 05 June 2009, Amerigo Wang wrote: > >> -sub check_prototypes >> +sub check_declarations >> { >> - if ($line =~ m/^\s*extern\b/) { >> - printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; >> + if ($line =~m/^\s*extern\b/) { >> + if ($line =~ m/^\s*extern\b.*\(.*\)/) { >> + printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; >> + } else { >> + printf STDERR "$filename:$lineno: exporting global variable to userspace is suspicious\n"; >> + } >> } >> } >> > > I don't think we really need that distinction here, the old > text applies to both. Even for function declarations? > But please find a way to get rid of > the "extern's". > Here, that one has already been removed by other patch ... -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Arnd Bergmann wrote: > On Friday 05 June 2009, Amerigo Wang wrote: >> -sub check_prototypes >> +sub check_declarations >> { >> - if ($line =~ m/^\s*extern\b/) { >> - printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; >> + if ($line =~m/^\s*extern\b/) { >> + if ($line =~ m/^\s*extern\b.*\(.*\)/) { >> + printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; >> + } else { >> + printf STDERR "$filename:$lineno: exporting global variable to userspace is suspicious\n"; >> + } >> } >> } > > I don't think we really need that distinction here, the old > text applies to both. But please find a way to get rid of > the "extern's". > > http://angryflower.com/bobsqu.gif Hehe, made me smile :-) -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Friday 05 June 2009, Amerigo Wang wrote: > > > > > I don't think we really need that distinction here, the old > > text applies to both. > > Even for function declarations? Yes. Any use of 'extern' in a kernel header file by definition refers to a symbol that is defined in the kernel and therefore not accessibly in user space. It is the same problem for variables and functions, with the complication that leaving out the 'extern' statement on a function declaration will hide it from this check, while leaving it out on a variable declaration turns it into a definition. Arnd <>< -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 56f90a4..3923888 100644 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl @@ -2,7 +2,7 @@ # # headers_check.pl execute a number of trivial consistency checks # -# Usage: headers_check.pl dir [files...] +# Usage: headers_check.pl dir arch [files...] # dir: dir to look for included files # arch: architecture # files: list of files to check @@ -37,7 +37,7 @@ foreach my $file (@files) { &check_include(); &check_asm_types(); &check_sizetypes(); - &check_prototypes(); + &check_declarations(); # Dropped for now. Too much noise &check_config(); } close FH; @@ -61,10 +61,14 @@ sub check_include } } -sub check_prototypes +sub check_declarations { - if ($line =~ m/^\s*extern\b/) { - printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; + if ($line =~m/^\s*extern\b/) { + if ($line =~ m/^\s*extern\b.*\(.*\)/) { + printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; + } else { + printf STDERR "$filename:$lineno: exporting global variable to userspace is suspicious\n"; + } } }
'extern' checking information is not clear, refine it. Plus, fix a comment. Signed-off-by: WANG Cong <amwang@redhat.com> Cc: Sam Ravnborg <sam@ravnborg.org> ---- -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html