Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ARC: BTF generation failure: no support for complex types #87

@geomatsi

Description

@geomatsi

Kernel build fails when CONFIG_DEBUG_INFO_BTF configuration option is enabled:

$ ARCH=arc CROSS_COMPILE=arc32-linux- make loader
  ...
  AR      init/built-in.a
  LD      vmlinux.o
  MODPOST vmlinux.symvers
  MODINFO modules.builtin.modinfo
  GEN     modules.builtin
  LD      .tmp_vmlinux.btf
  BTF     .btf.vmlinux.bin.o
Complex, interval and imaginary float types are not supported: 3
Encountered error while encoding BTF.
  LD      .tmp_vmlinux.kallsyms1
  KSYMS   .tmp_vmlinux.kallsyms1.S
  AS      .tmp_vmlinux.kallsyms1.S
  LD      .tmp_vmlinux.kallsyms2
  KSYMS   .tmp_vmlinux.kallsyms2.S
  AS      .tmp_vmlinux.kallsyms2.S
  LD      vmlinux
  BTFIDS  vmlinux
FAILED: load BTF from vmlinux: No such file or directory
make: *** [Makefile:1161: vmlinux] Error 255
make: *** Deleting file 'vmlinux'

This issue can be reproduced for ARCv2 and ARCv3 (32bit and 64bit). Version of pahole tool:

$ pahole --version
v1.23

Temporary workaround is available: see b3f0ecc.

The root cause is in Dwarf complex/float types available in libgcc object files in ARC toolchains. It looks like proper fix should belong to pahole tool. To be more specific, complex Dwarf types should be handled along the same lines as float types are now handled: see pahole commit.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions