diff options
author | Lucas Stach <dev@lynxeye.de> | 2014-04-13 15:27:33 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-04-23 11:39:13 +0200 |
commit | bd4cbd927cf4c90f9af904ec49bc80bb19f040b9 (patch) | |
tree | e7aced4d125f4b9c8b8e488f91c96455f9990fa5 /arch | |
parent | 47ed9044951b34990c77f747264d72f427ad5fed (diff) | |
download | barebox-bd4cbd927cf4c90f9af904ec49bc80bb19f040b9.tar.gz barebox-bd4cbd927cf4c90f9af904ec49bc80bb19f040b9.tar.xz |
tegra: disable more lowlevel unsafe switch optimizations
fno-jump-tables isn't enough to guard against
gcc switch optimizations that are unsafe to use
in code that runs before relocation.
The switch-tree-conversion opt pass may generate
lookup tables that are placed in the data section
and accessed via absolute adressing, which fails
prior to relocation.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boards/toradex-colibri-t20/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/boards/toshiba-ac100/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/Makefile | 12 |
3 files changed, 16 insertions, 4 deletions
diff --git a/arch/arm/boards/toradex-colibri-t20/Makefile b/arch/arm/boards/toradex-colibri-t20/Makefile index 5be3dd0e7c..d2d217319b 100644 --- a/arch/arm/boards/toradex-colibri-t20/Makefile +++ b/arch/arm/boards/toradex-colibri-t20/Makefile @@ -1,2 +1,4 @@ -CFLAGS_pbl-entry.o := -mcpu=arm7tdmi -march=armv4t +CFLAGS_pbl-entry.o := \ + -mcpu=arm7tdmi -march=armv4t \ + -fno-tree-switch-conversion -fno-jump-tables lwl-y += entry.o diff --git a/arch/arm/boards/toshiba-ac100/Makefile b/arch/arm/boards/toshiba-ac100/Makefile index 4ef18c0ce9..2b6c09e279 100644 --- a/arch/arm/boards/toshiba-ac100/Makefile +++ b/arch/arm/boards/toshiba-ac100/Makefile @@ -1,3 +1,5 @@ -CFLAGS_pbl-entry.o := -mcpu=arm7tdmi -march=armv4t +CFLAGS_pbl-entry.o := \ + -mcpu=arm7tdmi -march=armv4t \ + -fno-tree-switch-conversion -fno-jump-tables lwl-y += entry.o obj-y += board.o diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile index 791d5d45a7..e68156a772 100644 --- a/arch/arm/mach-tegra/Makefile +++ b/arch/arm/mach-tegra/Makefile @@ -1,5 +1,13 @@ -CFLAGS_tegra_avp_init.o := -mcpu=arm7tdmi -march=armv4t -fno-jump-tables -CFLAGS_pbl-tegra_avp_init.o := -mcpu=arm7tdmi -march=armv4t -fno-jump-tables +CFLAGS_tegra_avp_init.o := \ + -mcpu=arm7tdmi -march=armv4t \ + -fno-tree-switch-conversion -fno-jump-tables +CFLAGS_pbl-tegra_avp_init.o := \ + -mcpu=arm7tdmi -march=armv4t \ + -fno-tree-switch-conversion -fno-jump-tables +CFLAGS_tegra_maincomplex_init.o := \ + -fno-tree-switch-conversion -fno-jump-tables +CFLAGS_pbl-tegra_maincomplex_init.o := \ + -fno-tree-switch-conversion -fno-jump-tables lwl-y += tegra_avp_init.o lwl-y += tegra_maincomplex_init.o obj-y += tegra20.o |