提交 ad5cf46b 编写于 作者: L Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes

* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
  kernel-doc: fix param matching for array params
  kernel-doc: ignore kmemcheck_bitfield_begin/end
  kallsyms: fix inverted valid symbol checking
  kbuild: fix build error during make htmldocs
...@@ -385,7 +385,7 @@ int main(int argc, char *argv[]) ...@@ -385,7 +385,7 @@ int main(int argc, char *argv[])
if (!srctree) if (!srctree)
srctree = getcwd(NULL, 0); srctree = getcwd(NULL, 0);
kernsrctree = getenv("KBUILD_SRC"); kernsrctree = getenv("KBUILD_SRC");
if (!kernsrctree) if (!kernsrctree || !*kernsrctree)
kernsrctree = srctree; kernsrctree = srctree;
if (argc != 3) { if (argc != 3) {
usage(); usage();
......
...@@ -167,11 +167,11 @@ static int symbol_valid_tr(struct sym_entry *s) ...@@ -167,11 +167,11 @@ static int symbol_valid_tr(struct sym_entry *s)
for (i = 0; i < ARRAY_SIZE(text_ranges); ++i) { for (i = 0; i < ARRAY_SIZE(text_ranges); ++i) {
tr = &text_ranges[i]; tr = &text_ranges[i];
if (s->addr >= tr->start && s->addr < tr->end) if (s->addr >= tr->start && s->addr <= tr->end)
return 0; return 1;
} }
return 1; return 0;
} }
static int symbol_valid(struct sym_entry *s) static int symbol_valid(struct sym_entry *s)
......
...@@ -1468,6 +1468,8 @@ sub dump_enum($$) { ...@@ -1468,6 +1468,8 @@ sub dump_enum($$) {
} }
} }
# strip kmemcheck_bitfield_{begin,end}.*;
$members =~ s/kmemcheck_bitfield_.*?;//gos;
output_declaration($declaration_name, output_declaration($declaration_name,
'enum', 'enum',
...@@ -1651,6 +1653,15 @@ sub push_parameter($$$) { ...@@ -1651,6 +1653,15 @@ sub push_parameter($$$) {
} }
} }
# strip spaces from $param so that it is one continous string
# on @parameterlist;
# this fixes a problem where check_sections() cannot find
# a parameter like "addr[6 + 2]" because it actually appears
# as "addr[6", "+", "2]" on the parameter list;
# but it's better to maintain the param string unchanged for output,
# so just weaken the string compare in check_sections() to ignore
# "[blah" in a parameter string;
###$param =~ s/\s*//g;
push @parameterlist, $param; push @parameterlist, $param;
$parametertypes{$param} = $type; $parametertypes{$param} = $type;
} }
...@@ -1669,6 +1680,14 @@ sub check_sections($$$$$$) { ...@@ -1669,6 +1680,14 @@ sub check_sections($$$$$$) {
$prm_clean = $prms[$px]; $prm_clean = $prms[$px];
$prm_clean =~ s/\[.*\]//; $prm_clean =~ s/\[.*\]//;
$prm_clean =~ s/__attribute__\s*\(\([a-z,_\*\s\(\)]*\)\)//; $prm_clean =~ s/__attribute__\s*\(\([a-z,_\*\s\(\)]*\)\)//;
# ignore array size in a parameter string;
# however, the original param string may contain
# spaces, e.g.: addr[6 + 2]
# and this appears in @prms as "addr[6" since the
# parameter list is split at spaces;
# hence just ignore "[..." for the sections check;
$prm_clean =~ s/\[.*//;
##$prm_clean =~ s/^\**//; ##$prm_clean =~ s/^\**//;
if ($prm_clean eq $sects[$sx]) { if ($prm_clean eq $sects[$sx]) {
$err = 0; $err = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册