[ example updated ]
Hi,
Since at least 3.4, the GCC manual says:
Use the `section' attribute with an _initialized_ definition of a
_global_ variable, as shown in the example. GCC issues a warning
and otherwise ignores the `section' attribute in uninitialized
variable declarations.
but this doesn't seem correct.
For example compiling the following tiny program:
int foo __attribute__ ((__section__ (".init.data")));
int main(int argc, char **argv)
{
foo = 4;
return 0;
}
produces no warning and the section attribute is not ignored at all:
$ readelf -S a.out | grep -A1 init.data
[24] .init.data PROGBITS 000000000060080c 0000080c
0000000000000004 0000000000000000 WA 0 0 4
This is with 4.1.2 from fedora, but I guess other GCC give the same result.
Could anybody clarify this point ?
Thanks,
Franck