Paul Jackson wrote: >> If not, why do we want it to be included in every object file? >> > > The extern storage class keyword is essentially optional in the case of > file level data declarations. Only one instance of the variable ends > up, in the .bss section, of the final executable. > > The above applies to C; it might be that C++ is different -- I've forgotten. > Well, when I include numa.h in multiple object files, assemble them in a big static lib.a, then link my appli with this lib, I get: libmarcel.a(marcel_topology.o):(.bss+0xc8): multiple definition of `numa_all_cpus' libmarcel.a(marcel_sysdep.o):(.bss+0x8): first defined here libmarcel.a(marcel_alloc.o):(.bss+0x30): multiple definition of `numa_all_cpus' libmarcel.a(marcel_sysdep.o):(.bss+0x8): first defined here libmarcel.a(marcel_heap_alloc.o):(.bss+0x0): multiple definition of `numa_all_cpus' Brice -- To unsubscribe from this list: send the line "unsubscribe linux-numa" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html