This felt like a sparsely used feature that I found a bug in and could easily fix as a first contribution to the project. Through more testing on my end, it seems that something is not as it appeared at first glance. Switching branches to build this patch and then back to my main development branch resulted in the same strange malloc behavior that I thought I was fixing here, which only resolved after reverting this patch.
I'd like to understand why SPL_CLEAR_BSS needs to be called in both SPL and u-boot, if someone better versed in what's going on here can take the time. On Sun, Jul 19, 2020 at 4:26 PM Brian Moyer <[email protected]> wrote: > > SPL_CLEAR_BSS is called regardless of build type if > CONFIG_SPL_EARLY_BSS is defined. Add a guard for CONFIG_SPL_BUILD > to fix. > > Signed-off-by: Brian Moyer <[email protected]> > --- > > arch/arm/lib/crt0.S | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S > index df9dd83e40..fd6c4874f8 100644 > --- a/arch/arm/lib/crt0.S > +++ b/arch/arm/lib/crt0.S > @@ -109,7 +109,7 @@ ENTRY(_main) > mov r9, r0 > bl board_init_f_init_reserve > > -#if defined(CONFIG_SPL_EARLY_BSS) > +#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_EARLY_BSS) > SPL_CLEAR_BSS > #endif > > -- > 2.17.1 >

