CLANG LTO compatibility issue with DEBUG_INFO_BTF

From: Jisheng Zhang
Date: Thu Mar 18 2021 - 23:46:44 EST


Hi,

When trying the latest 5.12-rc3 with both LTO_CLANG_THIN and DEBUG_INFO_BTF
enabled, I met lots of warnings such as:

...
tag__recode_dwarf_type: couldn't find 0x4a7ade5 type for 0x4ab9f88 (subroutine_type)!
ftype__recode_dwarf_types: couldn't find 0x4a7ade5 type for 0x4ab9fa4 (formal_parameter)!
...
namespace__recode_dwarf_types: couldn't find 0x4a8ff4a type for 0x4aba05c (member)!
namespace__recode_dwarf_types: couldn't find 0x4a7ae9b type for 0x4aba084 (member)!
...
WARN: multiple IDs found for 'path': 281, 729994 - using 281
WARN: multiple IDs found for 'task_struct': 421, 730101 - using 421
...


then finally get build error:
FAILED unresolved symbol vfs_truncate


Is this a known issue? Do we need to make DEBUG_INFO_BTF depend on !LTO?

pahole version: v1.20
clang version: 11.0


Thanks