On Fri, 14 Apr 2006, Andrew Morton wrote: > Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > > > Example: > > > > DEFINE_PER_CPU(int, myint); > > > > would now create a variable called per_cpu_offset__myint in > > the .data.percpu_offset section. > > Suppose two .c files each have > > DEFINE_STATIC_PER_CPU(myint) > > Do we end up with two per_cpu_offset__myint's in the same section? > Both variables are defined as static: ie. #define DEFINE_STATIC_PER_CPU(type, name) \ static __attribute__((__section__(".data.percpu_offset"))) unsigned long *per_cpu_offset__##name; \ static __attribute__((__section__(".data.percpu"))) __typeof__(type) per_cpu__##name So the per_cpu_offset__myint is also static, and gcc should treat it properly. Although, yes there are probably going to be two variables named per_cpu_offset__myint in the same section, but the scope of those should only be visible by who sees the static. Works like any other variable that's static, and even the current way DEFINE_PER_CPU works with statics. Thanks, -- Steve