Binary Size: function-sections, data-sections, etc.

Artur Skawina art.08.09 at gmail.com
Wed Dec 21 02:44:38 PST 2011


On 12/21/11 10:01, Kagamin wrote:
>> The one potential problematic case i mentioned in that gdc bug mentioned above is this:
>> If the D runtime (most likely GC) needs to know the start/end of the data and bss
>> sections _and_ does it in a way that can confuse it if some unreferenced parts of these
>> sections disappear and/or are reordered, then turning on the section GC could uncover
>> this bug. From the few simple tests i ran here everything seems to work fine, but I did
>> not check the code to confirm there are no incorrect assumptions present.
> 
> The first things to break are module ctors and unittests.

Could you elaborate? 

Real code, that i was testing with previously, contained static module ctors which
worked, and i just tried a simple two module test w/ multiple shared_[cd]tors +
static_[cd]tors + unittests -- all of them are called as expected.

FWIW for this trivial test module which imports only stdio, --gc-sections alone
reduces the stripped executable size from 724416 to 249120.

artur


More information about the Digitalmars-d mailing list