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