- The -ffunction-sections GCC option. With that, the linker is able to get rid of unused functions found in .o files. Currently, if a .o contains 10 functions, but only one is used by the program, all the useless functions (and their dependencies !) are linked into the final executable. I expect the executables will be much smaller with that (especially C++ ones).
Wow, are you kidding, right? (OK, I know you aren't :) How this can be possible? For me, the size of final binaries always looked quite big but I thought there is a lot of function dependencies in mintlib and that's the reason why even simple hello world takes more than 100 KB. Even ancient PureC removes unused functions, how it's possible, especially in the old times with limited memory, nobody cared about this in gcc? I'm shocked :)