The reason why I'm doing this is for saving space when generating binaries. Having separate object files per function makes the linker easier to identify unused functions.
Here you have the size of the generated elf samples from the gsKit project, in master vs the PR.
As you can see we are saving from 20KB to 200KB in some binaries.
Before
-rwxr-xr-x 1 fjtrujy staff 307072 13 Aug 17:47 alpha.elf
-rwxr-xr-x 1 fjtrujy staff 308224 13 Aug 17:47 basic.elf
-rwxr-xr-x 1 fjtrujy staff 316624 13 Aug 17:47 bigtex.elf
-rwxr-xr-x 1 fjtrujy staff 325196 13 Aug 17:47 coverflow.elf
-rwxr-xr-x 1 fjtrujy staff 318280 13 Aug 17:47 fb.elf
-rwxr-xr-x 1 fjtrujy staff 315220 13 Aug 17:47 fhdbg.elf
-rwxr-xr-x 1 fjtrujy staff 322088 13 Aug 17:47 font.elf
-rwxr-xr-x 1 fjtrujy staff 327364 13 Aug 17:47 fontm.elf
-rwxr-xr-x 1 fjtrujy staff 442596 13 Aug 17:47 hires.elf
-rwxr-xr-x 1 fjtrujy staff 570244 13 Aug 17:47 texture.elf
-rwxr-xr-x 1 fjtrujy staff 318104 13 Aug 17:47 modetest.elf
-rwxr-xr-x 1 fjtrujy staff 323496 13 Aug 17:47 modetesthires.elf
-rwxr-xr-x 1 fjtrujy staff 324564 13 Aug 17:47 pixelperfect.elf
-rwxr-xr-x 1 fjtrujy staff 306820 13 Aug 17:47 textures.elf
-rwxr-xr-x 1 fjtrujy staff 306692 13 Aug 17:47 texstream.elf
-rwxr-xr-x 1 fjtrujy staff 317476 13 Aug 17:47 textures.elf
-rwxr-xr-x 1 fjtrujy staff 309552 13 Aug 17:47 vsync.elf
After
-rwxr-xr-x 1 fjtrujy staff 274104 13 Aug 17:43 alpha.elf
-rwxr-xr-x 1 fjtrujy staff 280336 13 Aug 17:43 basic.elf
-rwxr-xr-x 1 fjtrujy staff 289656 13 Aug 17:43 bigtex.elf
-rwxr-xr-x 1 fjtrujy staff 296996 13 Aug 17:43 coverflow.elf
-rwxr-xr-x 1 fjtrujy staff 287504 13 Aug 17:43 fb.elf
-rwxr-xr-x 1 fjtrujy staff 282316 13 Aug 17:43 fhdbg.elf
-rwxr-xr-x 1 fjtrujy staff 291312 13 Aug 17:43 font.elf
-rwxr-xr-x 1 fjtrujy staff 299812 13 Aug 17:43 fontm.elf
-rwxr-xr-x 1 fjtrujy staff 411760 13 Aug 17:43 hires.elf
-rwxr-xr-x 1 fjtrujy staff 539464 13 Aug 17:43 texture.elf
-rwxr-xr-x 1 fjtrujy staff 284744 13 Aug 17:43 modetest.elf
-rwxr-xr-x 1 fjtrujy staff 295444 13 Aug 17:43 modetesthires.elf
-rwxr-xr-x 1 fjtrujy staff 296640 13 Aug 17:43 pixelperfect.elf
-rwxr-xr-x 1 fjtrujy staff 272432 13 Aug 17:43 textures.elf
-rwxr-xr-x 1 fjtrujy staff 272736 13 Aug 17:43 texstream.elf
-rwxr-xr-x 1 fjtrujy staff 289044 13 Aug 17:43 textures.elf
-rwxr-xr-x 1 fjtrujy staff 282224 13 Aug 17:43 vsync.elf
Description
The reason why I'm doing this is for saving space when generating binaries. Having separate object files per function makes the linker easier to identify unused functions.
Here you have the size of the generated
elf
samples from thegsKit
project, inmaster
vs thePR
. As you can see we are saving from 20KB to 200KB in some binaries.Before
After
Cheers