build system: combat gcc zealotry in data alignment

text	   data	    bss	    dec	    hex	filename
1020934	    559	   5052	1026545	  fa9f1	busybox_old
1020750	    559	   5052	1026361	  fa939	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2020-12-14 05:53:45 +01:00
parent a8e19608fc
commit db793480cb

View File

@ -11,3 +11,11 @@ ifeq ($(CONFIG_STACK_OPTIMIZATION_386),y)
# from aligning stack to 16 bytes. (Which is gcc's way of supporting SSE). # from aligning stack to 16 bytes. (Which is gcc's way of supporting SSE).
CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2,) CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2,)
endif endif
# "Control how GCC aligns variables.
# Supported values for type are compat uses increased alignment value
# compatible uses GCC 4.8 and earlier, abi uses alignment value as specified by the psABI,
# and cacheline uses increased alignment value to match the cache line size.
# compat is the default."
# "abi" seems to be somewhat successful in preventing oversealous data alignment.
CFLAGS += $(call cc-option,-malign-data=abi,)