Mail Archives: djgpp/1995/08/02/09:43:35
> gcc -O1 a.c
> strip --strip-all a.out
> coff2exe a.out
> A.EXE SIZE=33280 bytes
>
> gcc -O1 -c a.c -o a.o
> ld a.o -o a.out ../lib/gcrt0.o -L../lib -T../lib/djgpp.lnk -lc
> strip --strip-all a.out
> coff2exe a.out
> A.EXE SIZE=37376 bytes
>
> wcc386 -os a.c
> wlink file a
> A.EXE SIZE=25468 bytes
>
> First, why is there a difference of size between the two gcc outputs ?
gcrt0.o is for profiling. Linking it in causes the profiling routines
in libc.a to get linked in, causing the extra 4K. Use crt0.o instead.
> Second, I am VERY distappointed by the difference of size between gcc and
> wcc386... :(
djgpp includes a lot of extra overhead to handle unix-like things that
watcom won't give you. For example, command-line wildcards, long
command lines, environment variables from a file, etc.
It is possible in V2 to strip those out (it's documented, too!). The
smallest (non-printf) program I can generate is 15,364 WITH the stub.
If you add printf, it goes to 24,580 - which is still smaller than
watcom.
DJ
- Raw text -