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
|  |