[PATCH 1/3] cmd: avoid duplicate weak flush_dcache_all()
Ilias Apalodimas
ilias.apalodimas at linaro.org
Wed Jun 19 14:23:36 CEST 2024
On Sun, 16 Jun 2024 at 20:31, Heinrich Schuchardt
<heinrich.schuchardt at 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.schuchardt at 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
>
More information about the U-Boot
mailing list