I really don't like the stack protector. It adds a lot of space to executables, so I turn it off:
-fno-stack-protector
Arthur told me about:
-fno-asynchronous-unwind-tables
which seems to save a lot of space. I don't know exactly what it does, but the documentation suggests it does something with debugging, however `-s` doesn't remove it so I have this here.
I often work without glibc (don't need it) but I like gcc's builtins so I have:
which seems to do the trick. I don't think all of these are necessary on all versions of GCC but I keep running into versions that complain about something so this line keeps getting longer. On x86 I additionally use:
-mregparm=3
since it saves a lot of space and helps benchmarks.
X32 isn't quite everywhere yet, and the larger words add a lot of space. I try not to use them if I don't need it, but I'm definitely looking forward to X32.
I often work without glibc (don't need it) but I like gcc's builtins so I have:
which seems to do the trick. I don't think all of these are necessary on all versions of GCC but I keep running into versions that complain about something so this line keeps getting longer. On x86 I additionally use: since it saves a lot of space and helps benchmarks.