[PATCH RESEND] spl: spl_fit: add weak prototype for fpga_load

Simon Glass sjg at chromium.org
Mon Jun 19 14:37:02 CEST 2023


Hi Eugen,

On Mon, 19 Jun 2023 at 11:29, Eugen Hristev <eugen.hristev at collabora.com> wrote:
>
> In case OPTIMIZE_DEBUG is set, unused code will not be optimized out, hence
> the reference to fpga_load will be compiled.
> if DM_FPGA and SPL_FPGA are not set, the build will fail with :
>
> aarch64-none-linux-gnu-ld.bfd: common/spl/spl_fit.o: in function `spl_fit_upload_fpga':
> u-boot/common/spl/spl_fit.c:595: undefined reference to `fpga_load'
>
> By adding a weak prototype, build is successful.
>
> Signed-off-by: Eugen Hristev <eugen.hristev at collabora.com>
> ---
>  common/spl/spl_fit.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
> index c51482b3b659..ca2e337b1ec4 100644
> --- a/common/spl/spl_fit.c
> +++ b/common/spl/spl_fit.c
> @@ -570,6 +570,12 @@ static void warn_deprecated(const char *msg)
>         printf("\tSee doc/uImage.FIT/source_file_format.txt\n");
>  }
>
> +__weak int fpga_load(int devnum, const void *buf, size_t bsize,
> +                    bitstream_type bstype, int flags)
> +{
> +       return 0;
> +}
> +
>  static int spl_fit_upload_fpga(struct spl_fit_info *ctx, int node,
>                                struct spl_image_info *fpga_image)
>  {
> --
> 2.34.1
>

I'm not sure what to do with this. Perhaps the least worst is to put
your weak function behind an '#ifdef OPTIMIZE_DEBUG'? Or would it work
to create a static inline in the header for this case? Putting #ifdefs
in the header files is more acceptable.

Regards,
Simon


More information about the U-Boot mailing list