[PATCH 2/3] ARM: tegra: fix relocation truncated error when THUMB2_KERNEL enabled

Dave Martin dave.martin at linaro.org
Wed Apr 17 13:01:14 EDT 2013


On Mon, Apr 15, 2013 at 04:50:54PM -0600, Stephen Warren wrote:
> From: Joseph Lo <josephl at nvidia.com>
> 
> The conditional branch instruction in Thumb2 only available to short range.
> The linker will fail when the conditional branch over the range. Then
> resulting in link error when generating kernel image. e.g.:
> 
> arch/arm/mach-tegra/reset-handler.S:47:(.text+0xf8e):
> relocation truncated to fit: R_ARM_THM_JUMP19 against symbol
> `cpu_resume' defined in .data section in arch/arm/kernel/built-in.o
> 
> This patch using a Thumb2 instruction IT (if-then) to have a longer branch
> range.
> 
> Reported-by: Arnd Bergmann <arnd at arndb.de>
> Signed-off-by: Joseph Lo <josephl at nvidia.com>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>

FWIW, Reviewed-by: Dave Martin <dave.martin at linaro.org>

> ---
>  arch/arm/mach-tegra/reset-handler.S |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/mach-tegra/reset-handler.S b/arch/arm/mach-tegra/reset-handler.S
> index 1676aba..e6de88a 100644
> --- a/arch/arm/mach-tegra/reset-handler.S
> +++ b/arch/arm/mach-tegra/reset-handler.S
> @@ -44,6 +44,7 @@ ENTRY(tegra_resume)
>  
>  	cpu_id	r0
>  	cmp	r0, #0				@ CPU0?
> + THUMB(	it	ne )
>  	bne	cpu_resume			@ no
>  
>  #ifdef CONFIG_ARCH_TEGRA_3x_SOC
> -- 
> 1.7.10.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list