Skip to content

Conversation

@kernel-patches-daemon-bpf
Copy link

Pull request for series with
subject: libbpf: fix BTF dedup to support recursive typedef definitions
version: 1
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=1020974

Handle recursive typedefs in BTF deduplication

Pahole fails to encode BTF for some Go projects (e.g. Kubernetes and
Podman) due to recursive type definitions that create reference loops
not representable in C. These recursive typedefs trigger a failure in
the BTF deduplication algorithm.

This patch extends btf_dedup_ref_type() to properly handle potential
recursion for BTF_KIND_TYPEDEF, similar to how recursion is already
handled for BTF_KIND_STRUCT. This allows pahole to successfully
generate BTF for Go binaries using recursive types without impacting
existing C-based workflows.

Co-developed-by: Martin Horth <[email protected]>
Signed-off-by: Martin Horth <[email protected]>
Co-developed-by: Ouail Derghal <[email protected]>
Signed-off-by: Ouail Derghal <[email protected]>
Co-developed-by: Guilhem Jazeron <[email protected]>
Signed-off-by: Guilhem Jazeron <[email protected]>
Co-developed-by: Ludovic Paillat <[email protected]>
Signed-off-by: Ludovic Paillat <[email protected]>
Co-developed-by: Robin Theveniaut <[email protected]>
Signed-off-by: Robin Theveniaut <[email protected]>
Suggested-by: Tristan d'Audibert <[email protected]>
Signed-off-by: Paul Houssel <[email protected]>
@kernel-patches-daemon-bpf
Copy link
Author

Upstream branch: f8c67d8
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1020974
version: 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants