From 3223ca99ee5ff98b4189f1c66af64e14c7b472b1 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Sat, 9 May 2020 22:02:50 +0200 Subject: [PATCH] sh: Set gd->malloc_base if MALLOC_F_LEN is set The gd->malloc_base must be set before the C runtime if the MALLOC_F_LEN is non-zero, otherwise we hit assertion in dlmalloc.c initf_malloc(). So set it. Signed-off-by: Marek Vasut Cc: Nobuhiro Iwamatsu --- arch/sh/lib/start.S | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/sh/lib/start.S b/arch/sh/lib/start.S index f9f26d3779..ddb9aa9f87 100644 --- a/arch/sh/lib/start.S +++ b/arch/sh/lib/start.S @@ -53,7 +53,10 @@ _start: mov.l ._gd_init, r13 /* global data */ mov.l ._stack_init, r15 /* stack */ - +#if CONFIG_VAL(SYS_MALLOC_F_LEN) + mov.l ._gd_malloc_base, r14 + mov.l r15, @r14 +#endif mov.l ._sh_generic_init, r0 jsr @r0 mov #0, r4 @@ -70,5 +73,8 @@ loop: ._bss_start: .long bss_start ._bss_end: .long bss_end ._gd_init: .long (_start - GENERATED_GBL_DATA_SIZE) +#if CONFIG_VAL(SYS_MALLOC_F_LEN) +._gd_malloc_base: .long (_start - GENERATED_GBL_DATA_SIZE + GD_MALLOC_BASE) +#endif ._stack_init: .long (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16) ._sh_generic_init: .long board_init_f