[PATCH 1/2] imx: bootaux: Fix build warning when LTO is enabled

Philippe Schenker dev at pschenker.ch
Wed Jan 4 20:02:15 CET 2023


From: Francesco Dolcini <francesco.dolcini at toradex.com>

Fix conflicting declaration of hostmap[] variable. When building with
CONFIG_LTO=y we get the following warning:

  KSLCC   keep-syms-lto.o
  LTO     u-boot
arch/arm/mach-imx/imx_bootaux.c:24:31: warning: type of ‘hostmap’ does not match original declaration [-Wlto-type-mismatch]
   24 | const __weak struct rproc_att hostmap[] = { };
      |                               ^
arch/arm/mach-imx/imx8m/soc.c:1590:24: note: array types have different bounds
 1590 | const struct rproc_att hostmap[] = {
      |                        ^
arch/arm/mach-imx/imx8m/soc.c:1590:24: note: ‘hostmap’ was previously declared here
  OBJCOPY u-boot.srec
  OBJCOPY u-boot-nodtb.bin

Just remove the __weak declaration and add an extern, in any case this
variable is supposed to be declared in the SOC file and there is no way
to have imx_bootaux build with this variable not declared.

In addition to that the weak variable definition is not correct,
get_host_mapping() will just reference non initialized data, if ever now
will have a build error instead of undefined behavior at runtime.

Signed-off-by: Francesco Dolcini <francesco.dolcini at toradex.com>
Signed-off-by: Philippe Schenker <philippe.schenker at toradex.com>
---

 arch/arm/mach-imx/imx_bootaux.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c
index 8115bf40f1a9..6c00ef6007e7 100644
--- a/arch/arm/mach-imx/imx_bootaux.c
+++ b/arch/arm/mach-imx/imx_bootaux.c
@@ -21,7 +21,7 @@
 #define SRC_M4_REG_OFFSET		0
 #endif
 
-const __weak struct rproc_att hostmap[] = { };
+extern const struct rproc_att hostmap[];
 
 static const struct rproc_att *get_host_mapping(unsigned long auxcore)
 {
-- 
2.39.0



More information about the U-Boot mailing list