tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Trivial program size inflation
mouse%Rodents-Montreal.ORG@localhost (Mouse) writes:
>>>>> amd64, 9.0_STABLE (ftp.n.o):
>>>>> text data bss dec hex filename
>>>>> 562318 29064 2176416 2767798 2a3bb6 main
>> amd64, 9.0_STABLE:
>> data bss dec hex filename
>> 2873 186 72 3131 c3b a.out
>Is that linked dynamic, or did you stub out all the miscellanous junk?
>Is that what the code you quote (below, which I'm cutting) is?
c.c is the one-line main function.
atexit.c is the quoted code.
% cc -c -fno-common atexit.c
% cc -static c.c atexit.o
% size a.out
text data bss dec hex filename
2873 186 72 3131 c3b a.out
>> crt0 pulls in
>> - atexit
>> - environment
>> - static TLS
>> - stack guard
>Why TLS?? Is there some networking going on under the hood?
Thread Local Storage.
>Still, I would have expected all that to be done via weak symbols, so
>if they aren't needed they aren't brought in. For example, there's no
>need for the atexit support if the program never uses it,
The atexit() functionality is used in the startup code. And everything
else is pulled in from libc_init.
Home |
Main Index |
Thread Index |
Old Index