Big problem with Small programs

Sean Kelly sean at f4.ca
Tue Jan 23 16:08:54 PST 2007


Walter Bright wrote:
> Sean Kelly wrote:
>> As you can see, simply putting the Win32 object files into a library 
>> prior to linking reduced the application size by 51,100 bytes, but 
>> separate compilation had the same (bad) result as compiling all 
>> modules on one line.
> 
> I suggest linking with /MAP, which will generate a .map file listing all 
> the modules linked in, and all the global symbols linked in. It's a lot 
> easier to see what's happening with that than guessing based on the file 
> size.

hello_small.map:

  Start         Length     Name                   Class
  0002:00000000 00011570H  _TEXT                  CODE 32-bit
  0002:00011570 00000198H  ICODE                  ICODE 32-bit
  0003:00000000 00000004H  .CRT$XIA               DATA 32-bit
  0003:00000010 00000004H  .CRT$XIZ               DATA 32-bit
  0003:00000020 00000004H  .CRT$XCA               DATA 32-bit
  0003:00000030 00000004H  .CRT$XCZ               DATA 32-bit
  0003:00000040 00000004H  .CRT$XPA               DATA 32-bit
  0003:00000050 00000004H  .CRT$XPZ               DATA 32-bit
  0003:00000060 00000004H  .CRT$XTA               DATA 32-bit
  0003:00000070 00000004H  .CRT$XTZ               DATA 32-bit
  0003:00000074 00000000H  IMP__DATA              IMP__DATA 32-bit
  0003:00000080 00005100H  _DATA                  DATA 32-bit
  0003:00005180 00000000H  FMB                    DATA 32-bit
  0003:00005180 00000024H  FM                     DATA 32-bit
  0003:000051A4 00000000H  FME                    DATA 32-bit
  0003:000051A4 00000000H  XIB                    DATA 32-bit
  0003:000051A4 0000001CH  XI                     DATA 32-bit
  0003:000051C0 00000000H  XIE                    DATA 32-bit
  0003:000051C0 00000000H  XCB                    DATA 32-bit
  0003:000051C0 00000014H  XC                     DATA 32-bit
  0003:000051D4 00000000H  XCE                    DATA 32-bit
  0003:000051D4 00000000H  XIFCB                  DATA 32-bit
  0003:000051D4 00000004H  XIFU                   DATA 32-bit
  0003:000051D8 00000000H  XIFL                   DATA 32-bit
  0003:000051D8 00000004H  XIFM                   DATA 32-bit
  0003:000051DC 00000000H  XIFCE                  DATA 32-bit
  0003:000051E0 00000000H  CONST                  CONST 32-bit
  0003:000051E0 00000000H  EEND                   ENDBSS 32-bit
  0003:000051E0 000016ECH  _BSS                   BSS 32-bit
  0003:000068CC 00000000H  XOB                    BSS 32-bit
  0003:000068CC 00000004H  XO                     BSS 32-bit
  0003:000068D0 00000000H  XOE                    BSS 32-bit
  0003:000068D0 00000000H  XOFB                   BSS 32-bit
  0003:000068D0 00000108H  XOF                    BSS 32-bit
  0003:000069D8 00000000H  XOFE                   BSS 32-bit
  0003:000069E0 00000419H  c_common               BSS 32-bit
  0003:00006E00 00000000H  STACK                  STACK 32-bit

Program entry point at 0000A2AC

--------------------------------------------------------------------------------

hello_large.map:

  Start         Length     Name                   Class
  0002:00000000 00011570H  _TEXT                  CODE 32-bit
  0002:00011570 00000198H  ICODE                  ICODE 32-bit
  0003:00000000 00000004H  .CRT$XIA               DATA 32-bit
  0003:00000010 00000004H  .CRT$XIZ               DATA 32-bit
  0003:00000020 00000004H  .CRT$XCA               DATA 32-bit
  0003:00000030 00000004H  .CRT$XCZ               DATA 32-bit
  0003:00000040 00000004H  .CRT$XPA               DATA 32-bit
  0003:00000050 00000004H  .CRT$XPZ               DATA 32-bit
  0003:00000060 00000004H  .CRT$XTA               DATA 32-bit
  0003:00000070 00000004H  .CRT$XTZ               DATA 32-bit
  0003:00000074 00000000H  IMP__DATA              IMP__DATA 32-bit
  0003:00000080 00011660H  _DATA                  DATA 32-bit
  0003:000116E0 00000000H  FMB                    DATA 32-bit
  0003:000116E0 00000024H  FM                     DATA 32-bit
  0003:00011704 00000000H  FME                    DATA 32-bit
  0003:00011704 00000000H  XIB                    DATA 32-bit
  0003:00011704 0000001CH  XI                     DATA 32-bit
  0003:00011720 00000000H  XIE                    DATA 32-bit
  0003:00011720 00000000H  XCB                    DATA 32-bit
  0003:00011720 00000014H  XC                     DATA 32-bit
  0003:00011734 00000000H  XCE                    DATA 32-bit
  0003:00011734 00000000H  XIFCB                  DATA 32-bit
  0003:00011734 00000004H  XIFU                   DATA 32-bit
  0003:00011738 00000000H  XIFL                   DATA 32-bit
  0003:00011738 00000004H  XIFM                   DATA 32-bit
  0003:0001173C 00000000H  XIFCE                  DATA 32-bit
  0003:00011740 00000000H  CONST                  CONST 32-bit
  0003:00011740 00000000H  EEND                   ENDBSS 32-bit
  0003:00011740 0000499CH  _BSS                   BSS 32-bit
  0003:000160DC 00000000H  XOB                    BSS 32-bit
  0003:000160DC 00000004H  XO                     BSS 32-bit
  0003:000160E0 00000000H  XOE                    BSS 32-bit
  0003:000160E0 00000000H  XOFB                   BSS 32-bit
  0003:000160E0 00000108H  XOF                    BSS 32-bit
  0003:000161E8 00000000H  XOFE                   BSS 32-bit
  0003:000161F0 00000419H  c_common               BSS 32-bit
  0003:00016610 00000000H  STACK                  STACK 32-bit

Program entry point at 0000A2AC



More information about the Digitalmars-d mailing list