cc2538: Sort link input sections by alignment to optimize size
Normally, the linker does not sort files and sections matched by wildcards, so they are placed in the order in which they are seen during link. If numerous objects with different alignments are mixed, or if objects with unusually large alignments are present, this very likely leads to a lot of space being wasted because of accumulated alignment gaps. This commit forces input sections to be sorted by alignment (unless this is overridden by the linker script), which decreases the number and the size of alignment gaps, thus saving space. For a typical Contiki project, this change saves nearly 1 kiB, mainly in .bss. Note that this behavior is only enabled if the SMALL make variable is set to 1, because this makes more sense for a size optimization. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
This commit is contained in:
parent
e1147ec787
commit
ab4b955f17
@ -21,7 +21,7 @@ OBJCOPY_FLAGS += -O binary --gap-fill 0xff
|
|||||||
### Are we building with code size optimisations?
|
### Are we building with code size optimisations?
|
||||||
ifeq ($(SMALL),1)
|
ifeq ($(SMALL),1)
|
||||||
CFLAGS += -ffunction-sections -fdata-sections
|
CFLAGS += -ffunction-sections -fdata-sections
|
||||||
LDFLAGS += -Wl,--gc-sections
|
LDFLAGS += -Wl,--gc-sections,--sort-section=alignment
|
||||||
endif
|
endif
|
||||||
|
|
||||||
### If the user-specified a Node ID, pass a define
|
### If the user-specified a Node ID, pass a define
|
||||||
|
Loading…
Reference in New Issue
Block a user