Hello people!
First of all, I'd like to thank you all that work on the development of the GPC compiler. It's a really good work.
But I have a question, that I don't know exactly if it's run-time system's matter or a linker's matter.
I'm using the following GPC (I've downloaded the binaries from the site):
----- gpc -v ----- Reading specs from c:\usr\mingw\bin..\lib\gcc-lib\mingw32\3.2.3\specs Configured with: /src/mingw/gcc-3.2.3-20030504-1/configure --srcdir=/src/mingw/gcc-3.2.3-20030504-1 --enable-languages=pascal --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --disable-win32-registry --disable-shared --enable-sjlj-exceptions Thread model: win32 gpc version 20030830, based on gcc-3.2.3 (mingw special 20030504-1) -----
Consider the size of the following source and executable files:
----- cat hello.pas ----- PROGRAM hello;
BEGIN writeln ('Hello world!'); END. -----
Consider the size of the following source and executable files, after compilation:
----- gpc -o hello hello.pas ----- hello.pas 60 bytes hello.exe 707.791 bytes -----
Why is the executable file so big? What is this overhead generated for every program created with the above GPC? The program LD has the option of stripping off all the symbols. Doing that I've got the following:
----- gpc -Wl,-s -o hello hello.pas ----- hello.pas 60 bytes hello.exe 247.808 bytes -----
But I still think this is a big executable. There is a way to reduce this overhead?
Thank you in advance.
Andre