[llvm] [RFC] Emit dwarf data for signature-changed or new functions (PR #157349)

via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 2 23:09:14 PDT 2025


yonghong-song wrote:

Just uploaded a new revision which used DW_TAG_inlined_subroutine to represent the function with original signature. The DW_TAG_inlined_subroutine will be the children of the DW_TAG_subprogram.

With pahole change
```
diff --git a/btf_encoder.c b/btf_encoder.c
index 0bc2334..18f0162 100644
--- a/btf_encoder.c
+++ b/btf_encoder.c
@@ -2652,6 +2652,8 @@ int btf_encoder__encode_cu(struct btf_encoder *encoder, struct cu *cu, struct co
                 */
                if (fn->declaration)
                        continue;
+               if (function__inlined(fn))
+                       continue;
                if (!ftype__has_arg_names(&fn->proto))
                        continue;
                if (funcs->cnt) {
```

Linux kernel can be built successfully and I am running bpf selftest. There are only a couple of selftest failures due to the kernel/module func signature change which can be resolved by modifying the code with proper actual signature.

https://github.com/llvm/llvm-project/pull/157349


More information about the llvm-commits mailing list