Error when compiling Linux Kernel (BSP 6.4)

I am trying to compile the kernel for imx8x using the steps provided in:

Build Linux Kernel from Source Code | Toradex Developer Center.

When compiling I seem to be missing some dependencies but I cant figure out what I need to install :

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/pci/controller/dwc/pci-imx6.o: in function `pci_imx_set_msi_en':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1913: undefined reference to `dw_pcie_find_capability'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readw_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:329: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writew_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:324: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'

Can you please advise as to what I need to install ?

hey @nmohan86,

In the prerequisites section for the link you gave there is a hyperlink for Install Tools and Dependence.

This should help.

-Eric

I installed all the tools and dependencies:

 5   dev  ⌘ ✔  sudo apt-get install bc build-essential git libncurses5-dev lzop perl libssl-dev bison flex                                                      28m41s  /home/nmohan/ivwatch-repos/apollo-app 
[sudo] password for nmohan: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
bc is already the newest version (1.07.1-3build1).
bison is already the newest version (2:3.8.2+dfsg-1build1).
build-essential is already the newest version (12.9ubuntu3).
flex is already the newest version (2.6.4-8build2).
lzop is already the newest version (1.04-2build2).
libncurses5-dev is already the newest version (6.3-2ubuntu0.1).
libssl-dev is already the newest version (3.0.2-0ubuntu1.15).
perl is already the newest version (5.34.0-3ubuntu1.3).
git is already the newest version (1:2.34.1-1ubuntu1.10).
0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.

Hey @nmohan86,

Can you verify that your host machine is setup correctly according to this.

And can you show the error logs from the command you are running to the error message.

-Eric

The command I ran is:

make -j$(nproc) Image.gz 2>&1 | tee build.log

See output:

  SYNC    include/generated/autoconf.h
  CALL    scripts/atomic/check-atomics.sh
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  GEN     .version
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  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/pci/controller/dwc/pci-imx6.o: in function `pci_imx_set_msi_en':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1913: undefined reference to `dw_pcie_find_capability'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readw_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:329: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writew_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:324: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_l1ss_quirk':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2913: undefined reference to `dw_pcie_find_ext_capability'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_l1ss_quirk':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2918: undefined reference to `dw_pcie_read'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2934: undefined reference to `dw_pcie_read'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2936: undefined reference to `dw_pcie_read'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1800: undefined reference to `dw_pcie_find_capability'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1804: undefined reference to `dw_pcie_link_up'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1825: undefined reference to `dw_pcie_wait_for_link'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1873: undefined reference to `dw_pcie_wait_for_link'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readw_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:329: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1825: undefined reference to `dw_pcie_wait_for_link'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/media/platform/mxc/capture/mx6s_capture.o: in function `mx6s_csi_open':
/home/user/linux-toradex/drivers/media/platform/mxc/capture/mx6s_capture.c:1192: undefined reference to `vb2_dma_contig_memops'
aarch64-none-linux-gnu-ld: drivers/media/platform/mxc/capture/mx6s_capture.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `vb2_dma_contig_memops' which may bind externally can not be used when making a shared object; recompile with -fPIC
/home/user/linux-toradex/drivers/media/platform/mxc/capture/mx6s_capture.c:1192:(.text+0x2624): dangerous relocation: unsupported relocation
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/media/platform/mxc/capture/mx6s_capture.c:1192: undefined reference to `vb2_dma_contig_memops'
make: *** [Makefile:1227: vmlinux] Error 1

@nmohan86,

It looks like you have a mismatch somewhere between the source, the toolchain, and/or the environment.

Can you verify.

Kernel source location and toolchain installed and environment variables you are setting.

-Eric

I was able to figure it out thanks! I am using the fix terminal so had to make a few modifications.