From d777d86ab2afc03c0a1d98f136e05ef9c64aa5ed Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Thu, 20 Feb 2014 05:10:09 +1100 Subject: CAR_GLOBAL: enforce compiler to check if _start != _end There are some fun rules C compilers can use to optimize their code. One of them is the assumption that two symbols point to two different addresses. In this case this wasn't true, resulting in unintended code execution (and later, a crash) with a clang build. Change-Id: I1496b22e1d1869ed0610e321b6ec6a83252e9d8b Signed-off-by: Patrick Georgi Signed-off-by: Edward O'Callaghan Reviewed-on: http://review.coreboot.org/4719 Tested-by: build bot (Jenkins) --- src/arch/x86/init/romstage.ld | 1 + 1 file changed, 1 insertion(+) (limited to 'src/arch/x86/init') diff --git a/src/arch/x86/init/romstage.ld b/src/arch/x86/init/romstage.ld index f44185f24e..5458cfc23d 100644 --- a/src/arch/x86/init/romstage.ld +++ b/src/arch/x86/init/romstage.ld @@ -37,6 +37,7 @@ SECTIONS . = ALIGN(16); _car_migrate_start = .; *(.car.migrate); + LONG(0); _car_migrate_end = .; . = ALIGN(16); _erom = .; -- cgit v1.2.3