| DWARF loader: |
| |
| - Handle DWARF5 DW_OP_addrx properly |
| |
| Part of the effort to support the subset of DWARF5 that is generated when building the kernel. |
| |
| - Handle subprogram ret type with abstract_origin properly |
| |
| Adds a second pass to resolve abstract origin DWARF description of functions to aid |
| the BTF encoder in getting the right return type. |
| |
| - Check .notes section for LTO build info |
| |
| When LTO is used, currently only with clang, we need to do extra steps to handle references |
| from one object (compile unit, aka CU) to another, a way for DWARF to avoid duplicating |
| information. |
| |
| - Check .debug_abbrev for cross-CU references |
| |
| When the kernel build process doesn't add an ELF note in vmlinux indicating that LTO was |
| used and thus intra-CU references are present and thus we need to use a more expensive |
| way to resolve types and (again) thus to encode BTF, we need to look at DWARF's .debug_abbrev |
| ELF section to figure out if such intra-CU references are present. |
| |
| - Permit merging all DWARF CU's for clang LTO built binary |
| |
| Allow not trowing away previously supposedly self contained compile units |
| (objects, aka CU, aka Compile Units) as they have type descriptions that will |
| be used in later CUs. |
| |
| - Permit a flexible HASHTAGS__BITS |
| |
| So that we can use a more expensive algorithm when we need to keep previously processed |
| compile units that will then be referenced by later ones to resolve types. |
| |
| - Use a better hashing function, from libbpf |
| |
| Enabling patch to combine compile units when using LTO. |
| |
| BTF encoder: |
| |
| - Add --btf_gen_all flag |
| |
| A new command line to allow asking for the generation of all BTF encodings, so that we |
| can stop adding new command line options to enable new encodings in the kernel Makefile. |
| |
| - Match ftrace addresses within ELF functions |
| |
| To cope with differences in how DWARF and ftrace describes function boundaries. |
| |
| - Funnel ELF error reporting through a macro |
| |
| To use libelf's elf_error() function, improving error messages. |
| |
| - Sanitize non-regular int base type |
| |
| Cope with clang with dwarf5 non-regular int base types, tricky stuff, see yhs |
| full explanation in the relevant cset. |
| |
| - Add support for the floating-point types |
| |
| S/390 has floats'n'doubles in its arch specific linux headers, cope with that. |
| |
| Pretty printer: |
| |
| - Honour conf_fprintf.hex when printing enumerations |
| |
| If the user specifies --hex in the command line, honour it when printing enumerations. |
| |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |