gcc puts .data and .bss symbols in .text segment.

Henrik Stokseth hensto@online.no
Thu Jun 19 14:25:00 GMT 2003


Jim Wilson wrote:

> Henrik Stokseth wrote:
>
>> Gcc puts symbols that should be in .data or .bss into the .text 
>> segment instead. Why does Gcc do this, and is this even allowed? 
>
>
> Yes, it is allowed.  Read-only data goes in a .rodata section if it 
> exists, otherwise it goes in the .text section.  If you are looking at 
> object files instead of gcc output, you might be assuming stuff is in 
> the text section that was actually in a different section to begin 
> with, and then merged with the text section by the assembler or linker. 

this optimalization can be done by passing the -R option to the 
assembler i read. but assembly output from gcc confirms that gcc itself 
does this optimalization by default. is there a way to turn it off on 
the commandline? i couldn't find anything in the manual...

> This isn't a gcc question.  It is a binutils question.  There should 
> be info in the symbol table that can be used for this, at least in 
> COFF.  I don't know OMF.  Please send further questions to the 
> binutils@sources.redhat.com list. 

Thanks. I probably will.

(again CC any answers to me as i'm not subscribed)

-- 
One OS to rule them all,
one OS to find them,
one OS to bring them all
and in the darkness bind them.





More information about the Gcc mailing list