ps2dev / gsKit

gsKit is a C interface to the PS2 Graphics Synthesizer
Other
103 stars 27 forks source link

Generate separate object files per function #53

Closed fjtrujy closed 2 years ago

fjtrujy commented 2 years ago

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 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

Cheers