Object file questions
Timo Sintonen via D.gnu
d.gnu at puremagic.com
Thu Aug 14 10:53:32 PDT 2014
On Thursday, 14 August 2014 at 17:13:23 UTC, Johannes Pfau wrote:
> Am Thu, 14 Aug 2014 10:07:04 +0000
> schrieb "Timo Sintonen" <t.sintonen at luukku.com>:
>
>> I have been looking at object files to see if I can reduce the
>> memory usage for minimum systems. There are two things I have
>> noticed:
>>
>> 1. In the data segment there is some source code as ascii text
>> from a template in gcc/atomics.d . This is in the actual data
>> segment and not in debug info segments and goes into the data
>> segment of the executable. I do not see any code using this
>> data. Why is this in the executable and is it possible to
>> remove it?
>>
>
> Strange, could you post a testcase?
It seems this comes from libdruntime and it exists in object.o
and core/atomic.o, Testcase is to compile minlibd library as it
is currently in the repo using the makefile as such.
But I think it will be in any object file that imports
gcc.atomics and uses the template in there.
>
>> 2. In the data segment there is also __init for all types. I
>> assume that they contain the initial values that are copied
>> when a new object of this type is created.
>
> Correct, it's for '.init' (there's especially
> __..._TypeInfo_init which
> is the initializer for typeinfo. I've implemented -fno-rtti in
> a private
> git branch to get rid of typeinfo)
>
>> Is this data mutable and should it really be in data segment
>> and not in rodata?
>>
>
> I think it should be in rodata.
So it is not a bug and not a feature. It is just because it does
not matter? Maybe a feature request?
More information about the D.gnu
mailing list