diff options
-rw-r--r-- | Makefile.toolchain | 3 | ||||
-rw-r--r-- | core/cortex-m/ec.lds.S | 42 | ||||
-rw-r--r-- | core/cortex-m0/ec.lds.S | 42 | ||||
-rw-r--r-- | core/nds32/ec.lds.S | 42 |
4 files changed, 65 insertions, 64 deletions
diff --git a/Makefile.toolchain b/Makefile.toolchain index 6d44331fc7..dd0ebb2174 100644 --- a/Makefile.toolchain +++ b/Makefile.toolchain @@ -40,6 +40,7 @@ CFLAGS_DEFINE=-DOUTDIR=$(out) -DCHIP=$(CHIP) -DBOARD_TASKFILE=ec.tasklist \ CPPFLAGS=$(CFLAGS_DEFINE) $(CFLAGS_INCLUDE) $(CFLAGS_TEST) \ $(EXTRA_CFLAGS) $(CFLAGS_COVERAGE) CFLAGS=$(CPPFLAGS) $(CFLAGS_CPU) $(CFLAGS_DEBUG) $(CFLAGS_WARN) $(CFLAGS_y) +CFLAGS+= -ffunction-sections FTDIVERSION=$(shell $(PKG_CONFIG) --modversion libftdi1 2>/dev/null) ifneq ($(FTDIVERSION),) @@ -53,7 +54,7 @@ LIBFTDI_LDLIBS=$(shell $(PKG_CONFIG) --libs lib${LIBFTDI_NAME}) BUILD_CFLAGS= $(LIBFTDI_CFLAGS) $(CPPFLAGS) -O3 $(CFLAGS_DEBUG) $(CFLAGS_WARN) HOST_CFLAGS=$(CPPFLAGS) -O3 $(CFLAGS_DEBUG) $(CFLAGS_WARN) -LDFLAGS=-nostdlib -X +LDFLAGS=-nostdlib -X --gc-sections BUILD_LDFLAGS=$(LIBFTDI_LDLIBS) HOST_TEST_LDFLAGS=-T core/host/host_exe.lds -lrt -pthread -rdynamic -lm\ $(if $(TEST_COVERAGE),-fprofile-arcs,) diff --git a/core/cortex-m/ec.lds.S b/core/cortex-m/ec.lds.S index c0c87e1343..e345bc93ca 100644 --- a/core/cortex-m/ec.lds.S +++ b/core/cortex-m/ec.lds.S @@ -25,7 +25,7 @@ SECTIONS OUTDIR/core/CORE/init.o (.text.vecttable) . = ALIGN(4); __version_struct_offset = .; - *(.rodata.ver) + KEEP(*(.rodata.ver)) #ifdef SHIFT_CODE_FOR_TEST . = ALIGN(256); #else @@ -42,82 +42,82 @@ SECTIONS .rodata : { /* Symbols defined here are declared in link_defs.h */ __irqprio = .; - *(.rodata.irqprio) + KEEP(*(.rodata.irqprio)) __irqprio_end = .; . = ALIGN(4); __cmds = .; - *(SORT(.rodata.cmds*)) + KEEP(*(SORT(.rodata.cmds*))) __cmds_end = .; . = ALIGN(4); __hcmds = .; - *(.rodata.hcmds) + KEEP(*(.rodata.hcmds)) __hcmds_end = .; . = ALIGN(4); __hooks_init = .; - *(.rodata.HOOK_INIT) + KEEP(*(.rodata.HOOK_INIT)) __hooks_init_end = .; __hooks_pre_freq_change = .; - *(.rodata.HOOK_PRE_FREQ_CHANGE) + KEEP(*(.rodata.HOOK_PRE_FREQ_CHANGE)) __hooks_pre_freq_change_end = .; __hooks_freq_change = .; - *(.rodata.HOOK_FREQ_CHANGE) + KEEP(*(.rodata.HOOK_FREQ_CHANGE)) __hooks_freq_change_end = .; __hooks_sysjump = .; - *(.rodata.HOOK_SYSJUMP) + KEEP(*(.rodata.HOOK_SYSJUMP)) __hooks_sysjump_end = .; __hooks_chipset_pre_init = .; - *(.rodata.HOOK_CHIPSET_PRE_INIT) + KEEP(*(.rodata.HOOK_CHIPSET_PRE_INIT)) __hooks_chipset_pre_init_end = .; __hooks_chipset_startup = .; - *(.rodata.HOOK_CHIPSET_STARTUP) + KEEP(*(.rodata.HOOK_CHIPSET_STARTUP)) __hooks_chipset_startup_end = .; __hooks_chipset_resume = .; - *(.rodata.HOOK_CHIPSET_RESUME) + KEEP(*(.rodata.HOOK_CHIPSET_RESUME)) __hooks_chipset_resume_end = .; __hooks_chipset_suspend = .; - *(.rodata.HOOK_CHIPSET_SUSPEND) + KEEP(*(.rodata.HOOK_CHIPSET_SUSPEND)) __hooks_chipset_suspend_end = .; __hooks_chipset_shutdown = .; - *(.rodata.HOOK_CHIPSET_SHUTDOWN) + KEEP(*(.rodata.HOOK_CHIPSET_SHUTDOWN)) __hooks_chipset_shutdown_end = .; __hooks_ac_change = .; - *(.rodata.HOOK_AC_CHANGE) + KEEP(*(.rodata.HOOK_AC_CHANGE)) __hooks_ac_change_end = .; __hooks_lid_change = .; - *(.rodata.HOOK_LID_CHANGE) + KEEP(*(.rodata.HOOK_LID_CHANGE)) __hooks_lid_change_end = .; __hooks_pwrbtn_change = .; - *(.rodata.HOOK_POWER_BUTTON_CHANGE) + KEEP(*(.rodata.HOOK_POWER_BUTTON_CHANGE)) __hooks_pwrbtn_change_end = .; __hooks_charge_state_change = .; - *(.rodata.HOOK_CHARGE_STATE_CHANGE) + KEEP(*(.rodata.HOOK_CHARGE_STATE_CHANGE)) __hooks_charge_state_change_end = .; __hooks_tick = .; - *(.rodata.HOOK_TICK) + KEEP(*(.rodata.HOOK_TICK)) __hooks_tick_end = .; __hooks_second = .; - *(.rodata.HOOK_SECOND) + KEEP(*(.rodata.HOOK_SECOND)) __hooks_second_end = .; __deferred_funcs = .; - *(.rodata.deferred) + KEEP(*(.rodata.deferred)) __deferred_funcs_end = .; . = ALIGN(4); @@ -125,7 +125,7 @@ SECTIONS #if defined(SECTION_IS_RO) && defined(CONFIG_FLASH) . = ALIGN(64); - *(.google) + KEEP(*(.google)) #endif . = ALIGN(4); #ifdef COMPILE_FOR_RAM diff --git a/core/cortex-m0/ec.lds.S b/core/cortex-m0/ec.lds.S index ac05bbc333..28e52869f8 100644 --- a/core/cortex-m0/ec.lds.S +++ b/core/cortex-m0/ec.lds.S @@ -25,7 +25,7 @@ SECTIONS OUTDIR/core/CORE/init.o (.text.vecttable) . = ALIGN(4); __version_struct_offset = .; - *(.rodata.ver) + KEEP(*(.rodata.ver)) #ifdef SHIFT_CODE_FOR_TEST . = ALIGN(256); #else @@ -42,82 +42,82 @@ SECTIONS .rodata : { /* Symbols defined here are declared in link_defs.h */ __irqprio = .; - *(.rodata.irqprio) + KEEP(*(.rodata.irqprio)) __irqprio_end = .; . = ALIGN(4); __cmds = .; - *(SORT(.rodata.cmds*)) + KEEP(*(SORT(.rodata.cmds*))) __cmds_end = .; . = ALIGN(4); __hcmds = .; - *(.rodata.hcmds) + KEEP(*(.rodata.hcmds)) __hcmds_end = .; . = ALIGN(4); __hooks_init = .; - *(.rodata.HOOK_INIT) + KEEP(*(.rodata.HOOK_INIT)) __hooks_init_end = .; __hooks_pre_freq_change = .; - *(.rodata.HOOK_PRE_FREQ_CHANGE) + KEEP(*(.rodata.HOOK_PRE_FREQ_CHANGE)) __hooks_pre_freq_change_end = .; __hooks_freq_change = .; - *(.rodata.HOOK_FREQ_CHANGE) + KEEP(*(.rodata.HOOK_FREQ_CHANGE)) __hooks_freq_change_end = .; __hooks_sysjump = .; - *(.rodata.HOOK_SYSJUMP) + KEEP(*(.rodata.HOOK_SYSJUMP)) __hooks_sysjump_end = .; __hooks_chipset_pre_init = .; - *(.rodata.HOOK_CHIPSET_PRE_INIT) + KEEP(*(.rodata.HOOK_CHIPSET_PRE_INIT)) __hooks_chipset_pre_init_end = .; __hooks_chipset_startup = .; - *(.rodata.HOOK_CHIPSET_STARTUP) + KEEP(*(.rodata.HOOK_CHIPSET_STARTUP)) __hooks_chipset_startup_end = .; __hooks_chipset_resume = .; - *(.rodata.HOOK_CHIPSET_RESUME) + KEEP(*(.rodata.HOOK_CHIPSET_RESUME)) __hooks_chipset_resume_end = .; __hooks_chipset_suspend = .; - *(.rodata.HOOK_CHIPSET_SUSPEND) + KEEP(*(.rodata.HOOK_CHIPSET_SUSPEND)) __hooks_chipset_suspend_end = .; __hooks_chipset_shutdown = .; - *(.rodata.HOOK_CHIPSET_SHUTDOWN) + KEEP(*(.rodata.HOOK_CHIPSET_SHUTDOWN)) __hooks_chipset_shutdown_end = .; __hooks_ac_change = .; - *(.rodata.HOOK_AC_CHANGE) + KEEP(*(.rodata.HOOK_AC_CHANGE)) __hooks_ac_change_end = .; __hooks_lid_change = .; - *(.rodata.HOOK_LID_CHANGE) + KEEP(*(.rodata.HOOK_LID_CHANGE)) __hooks_lid_change_end = .; __hooks_pwrbtn_change = .; - *(.rodata.HOOK_POWER_BUTTON_CHANGE) + KEEP(*(.rodata.HOOK_POWER_BUTTON_CHANGE)) __hooks_pwrbtn_change_end = .; __hooks_charge_state_change = .; - *(.rodata.HOOK_CHARGE_STATE_CHANGE) + KEEP(*(.rodata.HOOK_CHARGE_STATE_CHANGE)) __hooks_charge_state_change_end = .; __hooks_tick = .; - *(.rodata.HOOK_TICK) + KEEP(*(.rodata.HOOK_TICK)) __hooks_tick_end = .; __hooks_second = .; - *(.rodata.HOOK_SECOND) + KEEP(*(.rodata.HOOK_SECOND)) __hooks_second_end = .; __deferred_funcs = .; - *(.rodata.deferred) + KEEP(*(.rodata.deferred)) __deferred_funcs_end = .; . = ALIGN(4); @@ -125,7 +125,7 @@ SECTIONS #if defined(SECTION_IS_RO) && defined(CONFIG_FLASH) . = ALIGN(64); - *(.google) + KEEP(*(.google)) #endif . = ALIGN(4); #ifdef COMPILE_FOR_RAM diff --git a/core/nds32/ec.lds.S b/core/nds32/ec.lds.S index f1d021c3b0..84e08d34bc 100644 --- a/core/nds32/ec.lds.S +++ b/core/nds32/ec.lds.S @@ -25,7 +25,7 @@ SECTIONS OUTDIR/core/CORE/init.o (.text.vecttable) . = ALIGN(4); __version_struct_offset = .; - *(.rodata.ver) + KEEP(*(.rodata.ver)) #ifdef SHIFT_CODE_FOR_TEST . = ALIGN(256); #else @@ -43,7 +43,7 @@ SECTIONS .rodata : { /* Symbols defined here are declared in link_defs.h */ __irqprio = .; - *(.rodata.irqprio) + KEEP(*(.rodata.irqprio)) __irqprio_end = .; . = ALIGN(4); @@ -52,77 +52,77 @@ SECTIONS . = ALIGN(4); __cmds = .; - *(SORT(.rodata.cmds*)) + KEEP(*(SORT(.rodata.cmds*))) __cmds_end = .; . = ALIGN(4); __hcmds = .; - *(.rodata.hcmds) + KEEP(*(.rodata.hcmds)) __hcmds_end = .; . = ALIGN(4); __hooks_init = .; - *(.rodata.HOOK_INIT) + KEEP(*(.rodata.HOOK_INIT)) __hooks_init_end = .; __hooks_pre_freq_change = .; - *(.rodata.HOOK_PRE_FREQ_CHANGE) + KEEP(*(.rodata.HOOK_PRE_FREQ_CHANGE)) __hooks_pre_freq_change_end = .; __hooks_freq_change = .; - *(.rodata.HOOK_FREQ_CHANGE) + KEEP(*(.rodata.HOOK_FREQ_CHANGE)) __hooks_freq_change_end = .; __hooks_sysjump = .; - *(.rodata.HOOK_SYSJUMP) + KEEP(*(.rodata.HOOK_SYSJUMP)) __hooks_sysjump_end = .; __hooks_chipset_pre_init = .; - *(.rodata.HOOK_CHIPSET_PRE_INIT) + KEEP(*(.rodata.HOOK_CHIPSET_PRE_INIT)) __hooks_chipset_pre_init_end = .; __hooks_chipset_startup = .; - *(.rodata.HOOK_CHIPSET_STARTUP) + KEEP(*(.rodata.HOOK_CHIPSET_STARTUP)) __hooks_chipset_startup_end = .; __hooks_chipset_resume = .; - *(.rodata.HOOK_CHIPSET_RESUME) + KEEP(*(.rodata.HOOK_CHIPSET_RESUME)) __hooks_chipset_resume_end = .; __hooks_chipset_suspend = .; - *(.rodata.HOOK_CHIPSET_SUSPEND) + KEEP(*(.rodata.HOOK_CHIPSET_SUSPEND)) __hooks_chipset_suspend_end = .; __hooks_chipset_shutdown = .; - *(.rodata.HOOK_CHIPSET_SHUTDOWN) + KEEP(*(.rodata.HOOK_CHIPSET_SHUTDOWN)) __hooks_chipset_shutdown_end = .; __hooks_ac_change = .; - *(.rodata.HOOK_AC_CHANGE) + KEEP(*(.rodata.HOOK_AC_CHANGE)) __hooks_ac_change_end = .; __hooks_lid_change = .; - *(.rodata.HOOK_LID_CHANGE) + KEEP(*(.rodata.HOOK_LID_CHANGE)) __hooks_lid_change_end = .; __hooks_pwrbtn_change = .; - *(.rodata.HOOK_POWER_BUTTON_CHANGE) + KEEP(*(.rodata.HOOK_POWER_BUTTON_CHANGE)) __hooks_pwrbtn_change_end = .; __hooks_charge_state_change = .; - *(.rodata.HOOK_CHARGE_STATE_CHANGE) + KEEP(*(.rodata.HOOK_CHARGE_STATE_CHANGE)) __hooks_charge_state_change_end = .; __hooks_tick = .; - *(.rodata.HOOK_TICK) + KEEP(*(.rodata.HOOK_TICK)) __hooks_tick_end = .; __hooks_second = .; - *(.rodata.HOOK_SECOND) + KEEP(*(.rodata.HOOK_SECOND)) __hooks_second_end = .; __deferred_funcs = .; - *(.rodata.deferred) + KEEP(*(.rodata.deferred)) __deferred_funcs_end = .; . = ALIGN(4); @@ -130,7 +130,7 @@ SECTIONS #if defined(SECTION_IS_RO) && defined(CONFIG_FLASH) . = ALIGN(64); - *(.google) + KEEP(*(.google)) #endif . = ALIGN(4); #ifdef COMPILE_FOR_RAM |