Re: [PATCH] soc: qcom: QCOM_RPMH fix build with modular QCOM_RPMH
From: Naresh Kamboju
Date: Tue Oct 27 2020 - 07:44:54 EST
On Tue, 27 Oct 2020 at 16:45, Anders Roxell <anders.roxell@xxxxxxxxxx> wrote:
>
> When building allmodconfig leading to the following link error with
> CONFIG_QCOM_RPMH=y and CONFIG_QCOM_COMMAND_DB=m:
>
> aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':
> drivers/clk/qcom/clk-rpmh.c:474: undefined reference to `cmd_db_read_addr'
> drivers/clk/qcom/clk-rpmh.c:474:(.text+0x254): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `cmd_db_read_addr'
>
> Fix this by adding a Kconfig depenency and forcing QCOM_RPMH to be a
> module when QCOM_COMMAND_DB is a module. Also removing the dependency on
> 'ARCH_QCOM || COMPILE_TEST' since that is already a dependency for
> QCOM_COMMAND_DB.
>
> Fixes: 778279f4f5e4 ("soc: qcom: cmd-db: allow loading as a module")
> Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
Tested-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
This patch fixed the arm64 build error.
> ---
> drivers/soc/qcom/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
> index 9b4ae9c16ba7..3bdd1604f78f 100644
> --- a/drivers/soc/qcom/Kconfig
> +++ b/drivers/soc/qcom/Kconfig
> @@ -109,7 +109,7 @@ config QCOM_RMTFS_MEM
>
> config QCOM_RPMH
> tristate "Qualcomm RPM-Hardened (RPMH) Communication"
> - depends on ARCH_QCOM || COMPILE_TEST
> + depends on QCOM_COMMAND_DB
> help
> Support for communication with the hardened-RPM blocks in
> Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
Build error noticed on linux next 20201027 tag.
LD .tmp_vmlinux.kallsyms1
aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!
aarch64-linux-gnu-ld: Unexpected run-time procedure linkages detected!
aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':
/home/naresh/kernel/next/linux-next/drivers/clk/qcom/clk-rpmh.c:474:
undefined reference to `cmd_db_read_addr'
aarch64-linux-gnu-ld:
/home/naresh/kernel/next/linux-next/drivers/clk/qcom/clk-rpmh.c:481:
undefined reference to `cmd_db_read_aux_data'
aarch64-linux-gnu-ld: drivers/soc/qcom/rpmh-rsc.o: in function `rpmh_rsc_probe':
/home/naresh/kernel/next/linux-next/drivers/soc/qcom/rpmh-rsc.c:948:
undefined reference to `cmd_db_ready'
aarch64-linux-gnu-ld: drivers/regulator/qcom-rpmh-regulator.o: in
function `rpmh_regulator_init_vreg':
/home/naresh/kernel/next/linux-next/drivers/regulator/qcom-rpmh-regulator.c:438:
undefined reference to `cmd_db_read_addr'
make: *** [Makefile:1164: vmlinux] Error 1
- Naresh