Hi,
I am using Yocto Honister with Linux 5.10.74 (linux-fslc-imx branch) to build image for iMX8MP . There is a strange linker error happening while trying to package the CDNS_HDMI . In the defconfig i have enabled all the CDNS required packages but still the following error exists,
| CC drivers/mxc/hantro_v4l2/vsi-v4l2-enc.o
| CC drivers/mxc/vpu_malone/insert_startcode.o
| AR drivers/mxc/vpu_windsor/built-in.a
| CC drivers/mxc/vpu_malone/vpu_debug_log.o
| CC drivers/mxc/vpu_malone/vpu_mu.o
| CC drivers/mxc/vpu_malone/vpu_pm.o
| AR drivers/mxc/hantro_v4l2/built-in.a
| AR drivers/mxc/vpu_malone/built-in.a
| AR drivers/mxc/built-in.a
| AR drivers/built-in.a
| GEN .version
| CHK include/generated/compile.h
| LD vmlinux.o
| MODPOST vmlinux.symvers
| MODINFO modules.builtin.modinfo
| GEN modules.builtin
| LD .tmp_vmlinux.kallsyms1
| aarch64-fslc-linux-ld.bfd: Unexpected GOT/PLT entries detected!
| aarch64-fslc-linux-ld.bfd: Unexpected run-time procedure linkages detected!
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:/usr/src/kernel/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.c:117: undefined reference to `cdns_dp_bind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:(.data+0xd0): undefined reference to `cdns_dp_unbind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:/usr/src/kernel/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.c:102: undefined reference to `cdns_dp_bind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:(.data+0x148): undefined reference to `cdns_dp_unbind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:/usr/src/kernel/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.c:85: undefined reference to `cdns_hdmi_bind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:(.data+0x1c0): undefined reference to `cdns_hdmi_unbind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:/usr/src/kernel/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.c:77: undefined reference to `cdns_dp_bind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:(.data+0x238): undefined reference to `cdns_dp_unbind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:/usr/src/kernel/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.c:68: undefined reference to `cdns_hdmi_bind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.o:(.data+0x2b0): undefined reference to `cdns_hdmi_unbind'
| aarch64-fslc-linux-ld.bfd: drivers/gpu/drm/imx/mhdp/cdns-mhdp-dp-phy.o: in function `dp_phy_power_up':
| /usr/src/kernel/drivers/gpu/drm/imx/mhdp/cdns-mhdp-dp-phy.c:422: undefined reference to `cdns_phy_reg_read'
Though all the libraries are created and header files exported still the reference are missing with linker . Your help is highly appreciated. Thanks
Solved! Go to Solution.
Hi ,
The solution is to add the Kconfig path of the drivers which was moved to different directory in Linux5.10.
hi experts
I am using the Real-Time-Edge-v2.3-202207,I met the similar issue
CC init/version.o
AR init/built-in.a
LD vmlinux.o
MODPOST vmlinux.symvers
MODINFO modules.builtin.modinfo
GEN modules.builtin
LD .tmp_vmlinux.kallsyms1
aarch64-none-linux-gnu-ld: Unexpected GOT/PLT entries detected!
aarch64-none-linux-gnu-ld: Unexpected run-time procedure linkages detected!
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.o: in function `cdns_hdmi_bridge_enable':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c:339: undefined reference to `cdns_hdcp_enable'
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.o: in function `cdns_hdmi_bridge_disable':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c:330: undefined reference to `cdns_hdcp_disable'
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.o: in function `cdns_hdmi_connector_atomic_check':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c:354: undefined reference to `cdns_hdcp_atomic_check'
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.o: in function `__cdns_hdmi_probe':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c:703: undefined reference to `cdns_hdcp_init'
aarch64-none-linux-gnu-ld: /home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c:707: undefined reference to `cnds_hdcp_create_device_files'
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-dp-core.o: in function `cdn_dp_bridge_enable':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c:512: undefined reference to `cdns_hdcp_enable'
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-dp-core.o: in function `cdn_dp_bridge_disable':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c:520: undefined reference to `cdns_hdcp_disable'
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-dp-core.o: in function `cdns_dp_connector_atomic_check':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c:351: undefined reference to `cdns_hdcp_atomic_check'
aarch64-none-linux-gnu-ld: drivers/gpu/drm/bridge/cadence/cdns-dp-core.o: in function `__cdns_dp_probe':
/home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c:730: undefined reference to `cnds_hdcp_create_device_files'
aarch64-none-linux-gnu-ld: /home/forlinx/work/openIL/OpenIL/real-time-edge-linux/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c:746: undefined reference to `cdns_hdcp_init'
Makefile:1183: recipe for target 'vmlinux' failed
make: *** [vmlinux] Error 1
how to fix this issue?
Hi ,
The solution is to add the Kconfig path of the drivers which was moved to different directory in Linux5.10.
Hi @raajeshk88
Please can you elaborate more on the solution, what exactly do we need to do?
what! 74 come out already i think still just 72?
Linux 5.10.72_2.2.0
BTW, nxp does not support linux-fslc, please post this on meta-fsl-arm mailing list
https://lists.yoctoproject.org/g/meta-freescale
Hi josephzhou1 ,
I thought linux-fslc-imx is supported by NXP combining the community fixes and nxp specific fixes.