From 2f6209a88f424796af0638f73bce1d653dfa379e Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Thu, 16 Sep 2010 21:59:46 +0200 Subject: [PATCH] carl9170 firmware: abort build if stack frame > 128 Signed-off-by: Christian Lamparter --- carlfw/CMakeLists.txt | 2 +- carlfw/carl9170.lds | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/carlfw/CMakeLists.txt b/carlfw/CMakeLists.txt index b705717..95a4cc4 100644 --- a/carlfw/CMakeLists.txt +++ b/carlfw/CMakeLists.txt @@ -6,7 +6,7 @@ include("../extra/sh-elf-linux.cmake") include("../config.cmake") set(CARLFW_CFLAGS_WARNING "-W -Wall -Wextra -Wunreachable-code -Winline -Wlogical-op -Wno-packed-bitfield-compat -Winit-self -Wshadow -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wformat=2 -Wcast-align -Wmissing-format-attribute -Wmissing-prototypes -Wtype-limits -Wmissing-declarations -Wmissing-noreturn -Wredundant-decls -Wnested-externs -Wdisabled-optimization -Wpointer-arith -Wvolatile-register-var -Waddress -Wbad-function-cast -Wunsafe-loop-optimizations") -set(CARLFW_CFLAGS_EXTRA "-mbitops -std=gnu99 -ffunction-sections") +set(CARLFW_CFLAGS_EXTRA "-mbitops -std=gnu99 -ffunction-sections -Wframe-larger-than=128 -Werror") if (CONFIG_CARL9170FW_AGGRESSIVE_CFLAGS) set(CARLFW_CFLAGS_AGGRESSIVE "-fomit-frame-pointer -fsee -frename-registers -ftree-vectorize") diff --git a/carlfw/carl9170.lds b/carlfw/carl9170.lds index 0c4ebd6..726a9e2 100644 --- a/carlfw/carl9170.lds +++ b/carlfw/carl9170.lds @@ -27,11 +27,15 @@ MEMORY irqctl : ORIGIN = 0x1d2000, LENGTH = 4k usb : ORIGIN = 0x1e1000, LENGTH = 4k pta : ORIGIN = 0x1e2000, LENGTH = 4k - pram : ORIGIN = 0x200000, LENGTH = 16k + pram : ORIGIN = 0x200000, LENGTH = 16256 + bogus : ORIGIN = 0x300000, LENGTH = 8k } SECTIONS { + .eeprom : { *(.eeprom*) } > eeprom + .sram : { *(.sram*) } > sram + /* * The ar9170 boot code will execute the code * at address 0x04 from the loaded firmware as @@ -50,8 +54,6 @@ SECTIONS .rodata : { *(.rodata*) } > pram .bss : { *(.bss) } > pram .data : { *(.data*) } > pram - .fwdsc : { KEEP(*(.fwdsc)) } > pram - .sram : { *(.sram*) } > sram - .eeprom : { *(.eeprom*) } > eeprom + .fwdsc : { KEEP(*(.fwdsc)) } > bogus } -- 2.31.1