lkml.org 
[lkml]   [2005]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[Patch 1/5] Fix genksyms handling of DEFINE_PER_CPU(struct foo_s *, bar);

This is a one-line change to parse.y. It results in rebuilding the
scripts/genksyms/*_shipped files. Those are the next four patches.

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>


Index: linux-2.6/scripts/genksyms/parse.y
===================================================================
--- linux-2.6.orig/scripts/genksyms/parse.y 2005-12-20 14:24:41.736350197 -0600
+++ linux-2.6/scripts/genksyms/parse.y 2005-12-20 14:24:55.843371218 -0600
@@ -197,6 +197,7 @@ storage_class_specifier:
type_specifier:
simple_type_specifier
| cvar_qualifier
+ | TYPEOF_KEYW '(' decl_specifier_seq '*' ')'
| TYPEOF_KEYW '(' decl_specifier_seq ')'

/* References to s/u/e's defined elsewhere. Rearrange things
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-12-21 02:50    [W:0.267 / U:0.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site