Re: [PATCH] power: reset: vexpress: fix build issue

From: Nathan Chancellor
Date: Sun May 24 2020 - 18:20:35 EST


On Sat, May 23, 2020 at 12:01:03AM +0200, Anders Roxell wrote:
> An allmodconfig kernel makes CONFIG_VEXPRESS_CONFIG a module and
> CONFIG_POWER_RESET_VEXPRESS builtin. That makes us see this build
> error:
>
> aarch64-linux-gnu-ld: drivers/power/reset/vexpress-poweroff.o: in function `vexpress_reset_probe':
> ../drivers/power/reset/vexpress-poweroff.c:119: undefined reference to `devm_regmap_init_vexpress_config'
> ../drivers/power/reset/vexpress-poweroff.c:119:(.text+0x48c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `devm_regmap_init_vexpress_config'
> make[1]: *** [/srv/src/kernel/next/Makefile:1126: vmlinux] Error 1
>
> Rework so that POWER_RESET_VEXPRESS depends on 'VEXPRESS_CONFIG=y'.
>
> Fixes: d06cfe3f123c ("bus: vexpress-config: Merge vexpress-syscfg into vexpress-config")
> Acked-by: Rob Herring <robh@xxxxxxxxxx>
> Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
> ---
> drivers/power/reset/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
> index 4dfac618b942..f07b982c8dff 100644
> --- a/drivers/power/reset/Kconfig
> +++ b/drivers/power/reset/Kconfig
> @@ -191,7 +191,7 @@ config POWER_RESET_VERSATILE
> config POWER_RESET_VEXPRESS
> bool "ARM Versatile Express power-off and reset driver"
> depends on ARM || ARM64
> - depends on VEXPRESS_CONFIG
> + depends on VEXPRESS_CONFIG=y
> help
> Power off and reset support for the ARM Ltd. Versatile
> Express boards.
> --
> 2.26.2
>

This causes a warning for ARCH=arm allmodconfig:

$ make -j"$(nproc)" -s ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- O=out/arm allmodconfig

WARNING: unmet direct dependencies detected for POWER_RESET_VEXPRESS
Depends on [n]: POWER_RESET [=y] && (ARM [=y] || ARM64) && VEXPRESS_CONFIG [=m]=y
Selected by [y]:
- ARCH_VEXPRESS [=y] && ARCH_MULTI_V7 [=y]

and still doesn't fix the error:

arm-linux-gnueabi-ld: drivers/power/reset/vexpress-poweroff.o: in function `vexpress_reset_probe':
vexpress-poweroff.c:(.text+0x36c): undefined reference to `devm_regmap_init_vexpress_config'

Cheers,
Nathan