This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: small exe size increase from 1.7.0-62 to -63


2009/11/6 Charles Wilson <cygwin@cwilson.fastmail.fm>:
> Corinna Vinschen wrote:
>>> Obviously 1.5K isn't much of a concern, but is this expected?
>>
>> It's a result of the new pseudo reloc v2 support. ?Probably Chuck can
>> explain this better.
>
> I guess I should keep my reader in thread mode...I don't know what I
> could add to Corinna's explanation, except to say that all DLLs and EXEs
> include the startup code for runtime pseudo-relocs. ?It now handles both
> v1 and v2 versions -- and the v2 version requires additional code
> (there's [some of] your 1.5k). Also, there is now actual error handling,
> so that's the WriteFile and various string handling imports. Finally, in
> both v1 and v2 mode, we now use the Virtual* functions to temporarily
> mark read-only pages writeable in order to update the relocs.
>
> This *should* make it possible -- **later** -- to reverse the current
> binutils behavior on cygwin when --enable-auto-import. ?Right now, in
> that situation, binutils merges .rdata with .data, and marks .text
> writable, which is...less than ideal.

Right, I can't say here more about it. Maybe one point is here of some
interest about version 2 relocation, too. The DLLs/EXE files linking
via pseudo-relocations to an DLL having much smaller PE-headers. This
has positive side-effect on startup time and to size of the physical
application size. Btw upcoming binutils (cvs head version) is modified
already to use version 2 for x86 targets by default.

Cheers,
Kai


-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]