summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Savoundararadj <savoundg@gmail.com>2014-10-28 23:16:10 +0100
committerTom Rini <trini@ti.com>2014-10-29 09:02:17 -0400
commitc57a642384df0dfaacc8e9c6c06d76b5aecb965d (patch)
tree21d4a0517697d3cc6df18a6f8095023fd88f9245
parent2e07c249a67e055db294818ff063d502d15db0f8 (diff)
downloadu-boot-imx-c57a642384df0dfaacc8e9c6c06d76b5aecb965d.zip
u-boot-imx-c57a642384df0dfaacc8e9c6c06d76b5aecb965d.tar.gz
u-boot-imx-c57a642384df0dfaacc8e9c6c06d76b5aecb965d.tar.bz2
arm: make .vectors section allocatable
A regression was introduced in commit 41623c91. The consequence of that is the non-relocation of the section .vectors symbols : _undefined_instruction, _software_interrupt, _prefetch_abort, _data_abort, _not_used, _irq and _fiq. Before commit 41623c91, the exception vectors were in a .text section. The .text section has the attributes allocatable and executable [1]. In commit 41623c91, a specific section is created, called .vectors, with the attribute executable only. What have changed between commit 41623c91^ and 41623c91 is the attribute of the section which contains the exception vectors. An allocatable section is "a section [that] occupies memory during process execution" [1] which is the case of the section .vectors. Adding the lacking attribute (SHF_ALLOC or "a") for the definition of the section .vectors fixed the issue. To summarize, the fix has to mark .vectors as allocatable because the exception vectors reside in "memory during execution" and they need to be relocated. [1] http://man7.org/linux/man-pages/man5/elf.5.html Signed-off-by: Georges Savoundararadj <savoundg@gmail.com> Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
-rw-r--r--arch/arm/lib/vectors.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/lib/vectors.S b/arch/arm/lib/vectors.S
index 0cb87ce..49238ed 100644
--- a/arch/arm/lib/vectors.S
+++ b/arch/arm/lib/vectors.S
@@ -33,7 +33,7 @@
*************************************************************************
*/
- .section ".vectors", "x"
+ .section ".vectors", "ax"
/*
*************************************************************************