[U-Boot] [PATCH v3 2/4] arm: make .vectors section allocatable

Albert ARIBAUD albert.u.boot at aribaud.net
Mon Oct 27 00:20:24 CET 2014


Hello Georges,

On Sun, 26 Oct 2014 23:25:24 +0100, Georges Savoundararadj
<savoundg at gmail.com> wrote:
> 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 at gmail.com>
> Cc: Albert Aribeau <albert.u.boot at aribaud.net>
> 
> ---
> 
> Changes in v3:
> - None
> 
> Changes in v2:
> - Reword the commit message
> 
>  arch/arm/lib/vectors.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 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"
>  
>  /*
>   *************************************************************************
> -- 
> 2.1.2
> 

Acked-by: Albert ARIBAUD <albert.u.boot at aribaud.net>

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list