summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLucas Stach <dev@lynxeye.de>2014-04-13 15:27:33 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-04-23 11:39:13 +0200
commitbd4cbd927cf4c90f9af904ec49bc80bb19f040b9 (patch)
treee7aced4d125f4b9c8b8e488f91c96455f9990fa5 /arch
parent47ed9044951b34990c77f747264d72f427ad5fed (diff)
downloadbarebox-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/Makefile4
-rw-r--r--arch/arm/boards/toshiba-ac100/Makefile4
-rw-r--r--arch/arm/mach-tegra/Makefile12
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