4 ms·
I start with: -Os 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
by geocar 13y ago
I start with:
-Os
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:
-Dabort=__builtin_trap -Dmemcpy=__builtin_memcpy -Dmemset=__builtin_memset -minline-all-stringops -msse2 -ffreestanding -nostdlib -fno-builtin
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.
- astrange 13y agoFor any benefit you'd get from -mregparm, you'd get a much better one by switching to amd64 already! Or are you having to support Windows?
- geocar 13y agoX32 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.