[Issue 14748] Removing std.stdio import causes 2x increase in "Hello, world" program binary filesize

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Fri Jul 31 22:18:56 PDT 2015


https://issues.dlang.org/show_bug.cgi?id=14748

--- Comment #15 from Kenji Hara <k.hara.pg at gmail.com> ---
(In reply to Martin Nowak from comment #13)
> When I remove stream.o from libphobos2.a
> 
> If I also remove curl.o 
> binary.
> 
> Both modules define weak definitions of the following symbols, which is
> likely the reason why they got dragged into the binary.
> 
> _D3std8internal7cstring15__unittest_failFiZv
> _D3std8internal7cstring7__arrayZ
> _D3std8internal7cstring8__assertFiZv

I'm mostly sure that it's same with issue 14828. The COMDAT module helper
functions of std.internal.cstring should be placed in its own obj file.
Otherwise, if a user code requires them, that might drag stream.o or curl.o
into the user program.
(Whether the file size issue happens, would depend on the symbol name list
order in libphobos.a. If stream.o and curl.o are listed in the back of in it,
linker would pull the first found symbol and stream.o and curl.o are not
pulled).

--


More information about the Digitalmars-d-bugs mailing list