Messages in this thread | | | Date | Thu, 21 Feb 2008 10:34:39 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 2/2] x86 : relocate uninitialized variable in init DATA section into init BSS section |
| |
Ingo Molnar wrote: > > well, that's bad. We'd silently ignore the " = 1" and boot up with that > value at 0, right? At minimum we need some really prominent build-time > _errors_ (i.e. aborted builds) if this ever happens. But ideally, > shouldnt this whole thing be done at link time? Couldnt the linker sort > the variables that are zero initialized into the right section, and move > this constant maintenance pressure off the programmer's shoulder? >
Not the linker (unless each variable is put in its own section)... the compiler could (should!) do it... unfortunately gcc failed to provide a way to specify rodata, data and bss sections for a single data item (on the assumption that if you specified a section, you already knew were it should be going.)
What we really need is a new gcc extension:
__attribute__((sections("data", "rodata", "bss")))
... where gcc stuffs it into the appropriate section depending on where it belongs, just as it does with undecorated data items.
-hpa
| |