This woulb be true, if it would be the size of files, but it isn't. It is the size of the flash usage. Adding all .text parts and .cint parts together. Both values also includes the .intvecs part as well as initialized RAM.
Looking in the map files, you will find nearby no memory holes.
There is another thing that is not correct: Both files are stored in the ELF-File format. This format stores offset and length of each entry. It is not a flash map where holes are just zero! Please have a look here: Wikipedia: ELF
This is even not true for the most other binaries as well as hex files! As posted from Archaeologist and me. There are serval components coming with gcc linked that are not linked with the TI-Compiler.
Back to topic:
Seeing the main program in with TI-Compiler: main.obj and the GCC compiler: main.o both come with 0x2 bytes. Means: The GCC will link more but it doesn't say actually that one of the compilers are better or worse then the other. The best way to compare compilers is to use standard algorithm like FFT or Multiply of long long data types with HW-Support or something simliar and check only the object instead of the whole image.
the additional 2 kB of Flash usage will be present in every binary linked with GCC. There are options to omit extra functions or use own instead. Please have a look at the complier documentation, if you are interested.
Best regards,
Frank