Without this flag, gcc generates code to save the Q/V registers to the stack for handling the va_list in pr_print(). Saving the registers is useless, as the registers are never restored, but accessing the registers to save them hangs the CPU. Follow the Linux arch/arm64/Makefile and use the general-regs-only flag to prevent usage of floating point and Advanced SIMD register. Signed-off-by: Michael Tretter <m.tretter@xxxxxxxxxxxxxx> --- arch/arm/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 5db67b9db8..50958b787f 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -27,6 +27,10 @@ else CFLAGS += -mstrict-align endif +# Prevent use of floating point and Advanced SIMD registers. +ifeq ($(CONFIG_CPU_V8),y) +CFLAGS += -mgeneral-regs-only +endif # This selects which instruction set is used. # Note that GCC does not numerically define an architecture version -- 2.19.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox