
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@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-eug...
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,