[PATCH RESEND v3] fpga: add inline stub for fpga_load

Michal Simek michal.simek at amd.com
Mon Aug 28 12:53:16 CEST 2023


Hi Eugen, + Chanho,

On 8/8/23 12:22, Eugen Hristev wrote:
> In case CC_OPTIMIZE_FOR_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 :

this is not correct. It is not DM_FPGA but only FPGA.


> 
> 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'
> 
> To solve this, added an inline empty stub in the header if
> CC_OPTIMIZE_FOR_DEBUG is set such that the build will succeed.
> 
> Signed-off-by: Eugen Hristev <eugen.hristev at collabora.com>
> ---
> Changes in v3:
> - return -ENOSYS
> Changes in v2:
> - this is a rework as suggested by Simon of this previous patch :
> https://patchwork.ozlabs.org/project/uboot/patch/20230619102839.277902-1-eugen.hristev@collabora.com/
> 
>   include/fpga.h | 9 +++++++++
>   1 file changed, 9 insertions(+)
> 
> diff --git a/include/fpga.h b/include/fpga.h
> index ed688cc0fa3b..33d0dbbe2ba4 100644
> --- a/include/fpga.h
> +++ b/include/fpga.h
> @@ -60,8 +60,17 @@ int fpga_add(fpga_type devtype, void *desc);
>   int fpga_count(void);
>   const fpga_desc *const fpga_get_desc(int devnum);
>   int fpga_is_partial_data(int devnum, size_t img_len);
> +#if defined(CONFIG_CC_OPTIMIZE_FOR_DEBUG)

And when you enable CONFIG_CC_OPTIMIZE_FOR_DEBUG and FPGA you get compilation 
warnings.

drivers/fpga/fpga.c:265:5: error: redefinition of 'fpga_load'
   265 | int fpga_load(int devnum, const void *buf, size_t bsize, bitstream_type 
bstype,
       |     ^~~~~~~~~
In file included from include/xilinx.h:7,
                  from drivers/fpga/fpga.c:11:
include/fpga.h:64:19: note: previous definition of 'fpga_load' with type 
'int(int,  const void *, size_t,  bitstream_type,  int)' {aka 'int(int,  const 
void *, long unsigned int,  bitstream_type,  int)'}
    64 | static inline int fpga_load(int devnum, const void *buf, size_t bsize,
       |                   ^~~~~~~~~
make[2]: *** [scripts/Makefile.build:257: drivers/fpga/fpga.o] Error 1

I means please tune that condition properly not to create additional compilation 
warnings for other combinations.

Thanks,
Michal


> +static inline int fpga_load(int devnum, const void *buf, size_t bsize,
> +			    bitstream_type bstype, int flags)
> +{
> +	return -ENOSYS;
> +}
> +#else
>   int fpga_load(int devnum, const void *buf, size_t bsize,
>   	      bitstream_type bstype, int flags);
> +#endif
> +
>   int fpga_fsload(int devnum, const void *buf, size_t size,
>   		fpga_fs_info *fpga_fsinfo);
>   int fpga_loads(int devnum, const void *buf, size_t size,


More information about the U-Boot mailing list