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.sinto...@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?


Reply via email to