Re: [PATCH 2/2] x86 : relocate uninitialized variable in init DATAsection into init BSS section
From: H. Peter Anvin
Date: Thu Feb 21 2008 - 13:36:20 EST
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/