Bloated EXEs (reprise)

User avatar
gkuhnert
Posts: 274
Joined: Fri Apr 04, 2008 1:25 pm
Location: Aachen - Germany // Kerkrade - Netherlands
Contact:

Re: Bloated EXEs (reprise)

Post by gkuhnert »

Antonio,
did you mean by "FWH libs replace Harbour errorsys", that the FWH owned errorsys is linked automatically and the size of the .exe can be explained by this?
Best Regards,

Gilbert Kuhnert
CTO Software GmbH
http://www.ctosoftware.de
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Bloated EXEs (reprise)

Post by hmpaquito »

Enrico Maria Giordano wrote:Please note that I'm not using any Harbour functions in my sample so EXE size should not increase even if FWH redefines any of those.
Allright, but note what increase problem is no a fwh problem or harbour problem: it's a C linker problem from Embarcadero company if you use Borland C++
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Bloated EXEs (reprise)

Post by Enrico Maria Giordano »

No, it isn't. If I remove or add an unused lib from the list, the EXE size doesn't change.

EMG
User avatar
gkuhnert
Posts: 274
Joined: Fri Apr 04, 2008 1:25 pm
Location: Aachen - Germany // Kerkrade - Netherlands
Contact:

Re: Bloated EXEs (reprise)

Post by gkuhnert »

Enrico,

just had a quick look into errsysw.prg and found this comment in it:

Code: Select all

// Note: automatically executes at startup

proc ErrorSys()
    ErrorBlock( { | e | ErrorDialog( e ) } )
return
 
So I assume as it executes automatically at startup and it is fivehx.lib which contains ErrorSys(), it will automatically be linked in, increasing the file size of our .exe
Best Regards,

Gilbert Kuhnert
CTO Software GmbH
http://www.ctosoftware.de
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Bloated EXEs (reprise)

Post by Enrico Maria Giordano »

No, I already tried this (read carefully all the messages please!):

Code: Select all

FUNCTION MAIN()

    RETURN NIL


FUNCTION ERRORSYS()

    RETURN NIL
EMG
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Bloated EXEs (reprise)

Post by hmpaquito »

Allright, but note what increase problem is no a fwh problem or harbour problem: it's a C linker problem
Enrico Maria Giordano wrote:No, it isn't. If I remove or add an unused lib from the list, the EXE size doesn't change.

EMG

No, it isn't ?? :shock:

Building exe is task of linker. If exe no decrease on remove lib is a linker problem.

Which is your linker name ?
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Bloated EXEs (reprise)

Post by Enrico Maria Giordano »

hmpaquito wrote:Building exe is task of linker. If exe no decrease on remove lib is a linker problem.
The linker is forced to link a module if a symbol of that module is referenced in the program. In my sample, no FWH symbols are referenced. This is demonstrated by the fact that the linker doesn't complain if I remove the FWH libs from the list. So we have to find the reason why 2.4 MB of FWH modules are linked but not used. The only reason I can think of is that FWH redefines some of the xHarbour symbols.
hmpaquito wrote:Which is your linker name ?
ilink32. But that's irrelevant.

EMG
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Bloated EXEs (reprise)

Post by hmpaquito »

Can you paste a map file piece ?

Perhap, the trick is searchs map some file symbol in rtl of xHarbour and if founded then they are.

You work es very usefull for found if fwh overwrite some basis rtl functions.

I have a no explicable problem with harbour+ fwh... only if fwh is linking, http://forums.fivetechsupport.com/viewt ... 54&start=0
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Bloated EXEs (reprise)

Post by Enrico Maria Giordano »

It's almost 1 MB, too much to paste here. Please send me a private message and I will send back the map file to you.

EMG
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Bloated EXEs (reprise)

Post by hmpaquito »

send me your .mak file, pls.
User avatar
rhlawek
Posts: 165
Joined: Sun Jul 22, 2012 7:01 pm

Re: Bloated EXEs (reprise)

Post by rhlawek »

I wanted to share my observations.

First, on WIndows, I use msvc and msvc64 exclusively. Never BCC.

If I compile the sample program as is I wind up with a 650 KB executable.

If I add #include "fivewin.ch" to the top of the sample, but still with no calls at all to FWH code, and no other changes to my build scripts, I wind up with a 3.8 MB executable.

When I write programs that need to run as services I never include any part of FWH as it was not designed to run headless in a service, and will surprise with popups (MsgInfo(), etc. buried in certain classes and functions) where there should never be any desktop interaction. I share this because it is where I first noticed the .exe size differences, but I never thought much about it because the larger was always something destined for the desktop.

Robb
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Bloated EXEs (reprise)

Post by Antonio Linares »

gkuhnert wrote:Antonio,
did you mean by "FWH libs replace Harbour errorsys", that the FWH owned errorsys is linked automatically and the size of the .exe can be explained by this?
yes
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Bloated EXEs (reprise)

Post by Enrico Maria Giordano »

Antonio Linares wrote:
gkuhnert wrote:Antonio,
did you mean by "FWH libs replace Harbour errorsys", that the FWH owned errorsys is linked automatically and the size of the .exe can be explained by this?
yes
Then why this sample is still 3195904 in size?

Code: Select all

FUNCTION MAIN()

    RETURN NIL


FUNCTION ERRORSYS()

    RETURN NIL
EMG
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Bloated EXEs (reprise)

Post by Antonio Linares »

Please check the linked modules in the map file

there is no other way to know it
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply