Messages in this thread | | | Date | Fri, 23 May 2008 17:29:04 +0300 | From | Adrian Bunk <> | Subject | Re: initialization of static per-cpu variables |
| |
On Thu, May 22, 2008 at 06:20:06PM +1000, Rusty Russell wrote: > On Thursday 22 May 2008 04:28:02 Vegard Nossum wrote: > > Hi, > > > > I encountered this comment in kernel/softirq.c: > > > > /* Some compilers disobey section attribute on statics when not > > initialized -- RR */ > > static DEFINE_PER_CPU(struct tasklet_head, tasklet_vec) = { NULL }; > > static DEFINE_PER_CPU(struct tasklet_head, tasklet_hi_vec) = { NULL }; > > > > So I assume it's the combination of static and whatever section > > DFINE_PER_CPU puts the variable in which is the problem. > > > > However, there's a LOT of these "static DEFINE_PER_CPU" without any > > initializer in the rest of the code, e.g.: > > Yep, it was an old toolchain used by Sparc: DaveM found this one. As you say, > it's ancient: I'm happy to queue a cleanup patch now everyone is on a modern > compiler.
The commit says:
[PATCH] softirq.c per_cpu fix
GCC3.1 apparently gets confused about uninitialized sections
We do still support gcc 3.2 (which is the same as 3.1 except for a C++ ABI change) as a compiler for the kernel.
> Thanks, > Rusty.
cu Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed
| |