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 <[email protected]>
Attachment:
genksyms_typeof_pointer.bz2
Description: BZip2 compressed data
- Follow-Ups:
- Prev by Date: Re: Serial: bug in 8250.c when handling PCI or other level triggers
- Next by Date: Re: [PATCH] sched: Fix adverse effects of NFS client on interactive response
- Previous by thread: [PATCH] NETROM: Fix three if-statements in nr_state1_machine()
- Next by thread: Re: [Patch 1/1] Fix genksyms handling of DEFINE_PER_CPU(struct foo_s *, bar);
- Index(es):