Skip to content

Commit

Permalink
Merge pull request OneOfEleven#119 from bricky149/gc-sections
Browse files Browse the repository at this point in the history
Retain space saving benefits when not using LTO
  • Loading branch information
OneOfEleven authored Oct 4, 2023
2 parents 1cfb59f + 4a05e69 commit 74a9adc
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,14 @@ CFLAGS = -Os -Wall -Werror -mcpu=cortex-m0 -fno-builtin -fshort-enums -fno-delet
ifeq ($(ENABLE_LTO), 1)
# CFLAGS += -flto
CFLAGS += -flto=2
else
# We get most of the space savings if LTO creates problems
CFLAGS += -ffunction-sections -fdata-sections
endif

# May cause unhelpful build failures
#CFLAGS += -Wpadded

CFLAGS += -DPRINTF_INCLUDE_CONFIG_H
CFLAGS += -DGIT_HASH=\"$(GIT_HASH)\"
ifeq ($(ENABLE_SWD),1)
Expand Down Expand Up @@ -280,6 +285,11 @@ LDFLAGS = -mcpu=cortex-m0 -nostartfiles -Wl,-T,firmware.ld
# Use newlib-nano instead of newlib
LDFLAGS += --specs=nano.specs

ifeq ($(ENABLE_LTO), 0)
# Throw away unneeded func/data sections like LTO does
LDFLAGS += -Wl,--gc-sections
endif

ifeq ($(DEBUG),1)
ASFLAGS += -g
CFLAGS += -g
Expand Down
2 changes: 1 addition & 1 deletion firmware.ld
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SECTIONS
.text :
{
. = ALIGN(4);
*(.text.isr) /* .text sections of code */
KEEP(*(.text.isr)) /* .text sections of code */
*(.text) /* .text sections of code */
*(.text*) /* .text* sections of code */
*(.rodata) /* .rodata sections */
Expand Down

0 comments on commit 74a9adc

Please sign in to comment.