diff options
author | Robin Holt <holt@sgi.com> | 2005-12-20 20:45:50 -0500 |
---|---|---|
committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2005-12-26 16:39:55 -0500 |
commit | a89a0a2354ae666612968e254d650bfd04f11eb6 (patch) | |
tree | 37b8791eb9b6580d511fd514cd180145e39ed04f /scripts/genksyms | |
parent | f83b5e323f57d6e1f35a839d663e91cebe985e54 (diff) |
kbuild: Fix genksyms handling of DEFINE_PER_CPU(struct foo_s *, bar);
This is a one-line change to parse.y.
To take advantage of this the scripts/genksyms/*_shipped files needs to
be rebuild - this is the next patch.
When a .c file contains:
DEFINE_PER_CPU(struct foo_s *, bar);
the .cpp output looks like:
__attribute__((__section__(".data.percpu"))) __typeof__(struct foo_s *) per_cpu__bar;
With the existing parse.y, the value inside the paranthesis of
__typeof__() does not evaluate as a type_specifier and therefore
per_cpu__bar does not get assigned a type for genksyms which results in
the EXPORT_PER_CPU_SYMBOL() not generating a CRC value.
I have compared the Modules.symvers with and without this
patch and for ia64's defconfig, the only change is:
Before 0x00000000 per_cpu____sn_nodepda vmlinux
After 0x9d3f3faa per_cpu____sn_nodepda vmlinux
per_cpu____sn_nodepda was the original source of my problems.
Signed-off-by: Robin Holt <holt@sgi.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts/genksyms')
-rw-r--r-- | scripts/genksyms/parse.y | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y index 099043713db4..ca04c944b7c3 100644 --- a/scripts/genksyms/parse.y +++ b/scripts/genksyms/parse.y | |||
@@ -197,6 +197,7 @@ storage_class_specifier: | |||
197 | type_specifier: | 197 | type_specifier: |
198 | simple_type_specifier | 198 | simple_type_specifier |
199 | | cvar_qualifier | 199 | | cvar_qualifier |
200 | | TYPEOF_KEYW '(' decl_specifier_seq '*' ')' | ||
200 | | TYPEOF_KEYW '(' decl_specifier_seq ')' | 201 | | TYPEOF_KEYW '(' decl_specifier_seq ')' |
201 | 202 | ||
202 | /* References to s/u/e's defined elsewhere. Rearrange things | 203 | /* References to s/u/e's defined elsewhere. Rearrange things |