From: Wei Liu Date: Wed, 31 Aug 2016 15:26:50 +0000 (+0100) Subject: arm64: use "b" to branch to start_xen X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~506 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0ebbfa4f69cf7bd98ffd50ab35fabf9b36f2deab;p=xen.git arm64: use "b" to branch to start_xen The cbz instruction has range limitation. When compiled with gcov support the object is larger so cbz can't handle that anymore. The error message is like: aarch64-linux-gnu-ld -EL -T xen.lds -N prelink.o \ /local/work/xen.git/xen/common/symbols-dummy.o -o /local/work/xen.git/xen/.xen-syms.0 prelink.o: In function `launch': /local/work/xen.git/xen/arch/arm/arm64/head.S:602:(.text+0x408): relocation truncated to fit: R_AARCH64_CONDBR19 against symbol `start_xen' defined in .init.text section in prelink.o Use "b" instead. Signed-off-by: Wei Liu Reviewed-by: Konrad Rzeszutek Wilk Reviewed-by: Julien Grall --- diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S index 91e2817953..3f63d2a5e6 100644 --- a/xen/arch/arm/arm64/head.S +++ b/xen/arch/arm/arm64/head.S @@ -599,7 +599,9 @@ launch: mov x0, x20 /* Marshal args: - phys_offset */ mov x1, x21 /* - FDT */ mov x2, x24 /* - CPU ID */ - cbz x22, start_xen /* and disappear into the land of C */ + cbnz x22, 1f + b start_xen /* and disappear into the land of C */ +1: b start_secondary /* (to the appropriate entry point) */ /* Fail-stop */