[ 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

Reply via email to