kbuild: Prefer -Oz over -Os

-Oz Optimize aggressively for size rather than speed.

with gcc-12 so far (i think only https://gcc.gnu.org/PR32803 and 103773 )
"shorter load imm on x86_64":
(add/remove: 0/0 grow/shrink: 4/1670 up/down: 6/-13196)    Total: -13190 bytes
   text	   data	    bss	    dec	    hex	filename
 975753	   4227	   1816	 981796	  efb24	busybox_old
 962442	   4227	   1816	 968485	  ec725	busybox_unstripped

with clang-15:
(add/remove: 394/34 grow/shrink: 161/1856 up/down: 18644/-98946)Total: -80302 bytes
   text	   data	    bss	    dec	    hex	filename
1120994	  16066	   1696	1138756	 116044	busybox_old
1040689	  16026	   1696	1058411	 10266b	busybox_unstripped

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
This commit is contained in:
Bernhard Reutner-Fischer 2022-04-24 18:36:10 +02:00
parent 05c366a560
commit 7fbfb2050f

View File

@ -87,14 +87,14 @@ endif
#CFLAGS += $(call cc-option,-Wconversion,) #CFLAGS += $(call cc-option,-Wconversion,)
ifneq ($(CONFIG_DEBUG),y) ifneq ($(CONFIG_DEBUG),y)
CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,)) CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,)))
else else
CFLAGS += $(call cc-option,-g,) CFLAGS += $(call cc-option,-g,)
#CFLAGS += "-D_FORTIFY_SOURCE=2" #CFLAGS += "-D_FORTIFY_SOURCE=2"
ifeq ($(CONFIG_DEBUG_PESSIMIZE),y) ifeq ($(CONFIG_DEBUG_PESSIMIZE),y)
CFLAGS += $(call cc-option,-O0,) CFLAGS += $(call cc-option,-O0,)
else else
CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,)) CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,)))
endif endif
endif endif
ifeq ($(CONFIG_DEBUG_SANITIZE),y) ifeq ($(CONFIG_DEBUG_SANITIZE),y)