On Sun, 16 Jun 2024 at 20:31, Heinrich Schuchardt <heinrich.schucha...@canonical.com> wrote: > > If we have multiple weak implementations of functions, the linker might > choose any of these. ARM and RISC-V already provide a weak implementation > of flush_dcache_all(). > > Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> > --- > cmd/cache.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/cmd/cache.c b/cmd/cache.c > index 0254ff17f9b..16fa0f7c652 100644 > --- a/cmd/cache.c > +++ b/cmd/cache.c > @@ -52,11 +52,14 @@ static int do_icache(struct cmd_tbl *cmdtp, int flag, int > argc, > return 0; > } > > +/* ARM and RISC-V define a weak flush_dcache_all() themselves. */ > +#if !defined(CONFIG_ARM) && !defined(CONFIG_RISCV) > void __weak flush_dcache_all(void) > { > puts("No arch specific flush_dcache_all available!\n"); > /* please define arch specific flush_dcache_all */ > }
Aren't we supposed to add a single __weak function so the linker can replace it? IOW why is the declaration for Arm/riscv a weak one? Thanks /Ilias > +#endif > > static int do_dcache(struct cmd_tbl *cmdtp, int flag, int argc, > char *const argv[]) > -- > 2.43.0 >