From: "Daniel Xu" <dxu@dxuuu.xyz>
To: "bpf@vger.kernel.org" <bpf@vger.kernel.org>
Cc: "Arnaldo Carvalho de Melo" <acme@kernel.org>
Subject: Re: Kernel build fail with 'btf_encoder__encode: btf__dedup failed!'
Date: Sun, 22 Jan 2023 14:25:47 -0700 [thread overview]
Message-ID: <cf0f4f1f-b2b4-40e8-bc51-ef1e1771e1e2@app.fastmail.com> (raw)
In-Reply-To: <57830c30-cd77-40cf-9cd1-3bb608aa602e@app.fastmail.com>
On Sun, Jan 22, 2023, at 10:48 AM, Daniel Xu wrote:
> Hi,
>
> I'm getting the following error during build:
>
> $ ./tools/testing/selftests/bpf/vmtest.sh -j30
> [...]
> BTF .btf.vmlinux.bin.o
> btf_encoder__encode: btf__dedup failed!
> Failed to encode BTF
> LD .tmp_vmlinux.kallsyms1
> NM .tmp_vmlinux.kallsyms1.syms
> KSYMS .tmp_vmlinux.kallsyms1.S
> AS .tmp_vmlinux.kallsyms1.S
> LD .tmp_vmlinux.kallsyms2
> NM .tmp_vmlinux.kallsyms2.syms
> KSYMS .tmp_vmlinux.kallsyms2.S
> AS .tmp_vmlinux.kallsyms2.S
> LD .tmp_vmlinux.kallsyms3
> NM .tmp_vmlinux.kallsyms3.syms
> KSYMS .tmp_vmlinux.kallsyms3.S
> AS .tmp_vmlinux.kallsyms3.S
> LD vmlinux
> BTFIDS vmlinux
> FAILED: load BTF from vmlinux: No such file or directory
> make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Error 255
> make[1]: *** Deleting file 'vmlinux'
> make: *** [Makefile:1264: vmlinux] Error 2
>
> This happens on both bpf-next/master (84150795a49) and 6.2-rc5
> (2241ab53cb).
>
> I've also tried arch linux pahole 1:1.24+r29+g02d67c5-1 as well as
> upstream pahole on master (02d67c5176) and upstream pahole on
> next (2ca56f4c6f659).
>
> Of the above 6 combinations, I think I've tried all of them (maybe
> missing 1 or 2).
>
> Looks like GCC got updated recently on my machine, so perhaps
> it's related?
>
> CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.1 20230111"
>
> I'll try some debugging, but just wanted to report it first.
>
> Thanks,
> Daniel
Applying the following diff:
diff --git a/src/btf.c b/src/btf.c
index ae1520f..8a2fa36 100644
--- a/src/btf.c
+++ b/src/btf.c
@@ -4576,8 +4576,11 @@ static int btf_dedup_ref_type(struct btf_dedup *d, __u32 type_id)
int ref_type_id;
long h;
- if (d->map[type_id] == BTF_IN_PROGRESS_ID)
+ if (d->map[type_id] == BTF_IN_PROGRESS_ID) {
+ struct btf_type *t = btf_type_by_id(d->btf, type_id);
+ pr_warn("eloop type_id=%d, kind=%d, type=%d\n", type_id, btf_kind(t), t->type);
return -ELOOP;
+ }
if (d->map[type_id] <= BTF_MAX_NR_TYPES)
return resolve_type_id(d, type_id);
Yields:
BTF .btf.vmlinux.bin.o
libbpf: eloop type_id=2, kind=10, type=2
btf_encoder__encode: btf__dedup failed!
Failed to encode BTF
So it's a CONST pointing to itself?
I'm somewhat out of ideas here.
next prev parent reply other threads:[~2023-01-22 21:26 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-22 17:48 Kernel build fail with 'btf_encoder__encode: btf__dedup failed!' Daniel Xu
2023-01-22 21:25 ` Daniel Xu [this message]
2023-01-23 8:06 ` Jiri Olsa
2023-01-24 6:13 ` Daniel Xu
2023-01-27 22:28 ` Alexandre Peixoto Ferreira
2023-01-28 0:00 ` Jiri Olsa
2023-01-28 0:21 ` Daniel Xu
2023-01-28 0:23 ` Daniel Xu
2023-01-28 19:23 ` Alexandre Peixoto Ferreira
2023-01-31 15:18 ` Jiri Olsa
2023-02-09 0:21 ` Vicki Pfau
2023-02-09 4:15 ` Alexandre Peixoto Ferreira
2023-02-09 13:07 ` Alan Maguire
2023-02-10 14:02 ` Alexandre Peixoto Ferreira
2023-02-10 14:34 ` Jiri Olsa
2023-02-10 15:37 ` Alexandre Ferreira
2023-02-14 6:33 ` Tianyi Liu
2023-04-11 17:00 ` [PATCH] vmlinux.lds.h: Force-align ELF notes section to four bytes Josh Poimboeuf
2023-04-12 7:10 ` Tianyi Liu
2023-04-12 16:30 ` Josh Poimboeuf
2023-04-13 2:21 ` Joan Bruguera Micó
2023-04-13 9:23 ` Tianyi Liu
2023-04-13 18:59 ` [PATCH] vmlinux.lds.h: Discard .note.gnu.property section Josh Poimboeuf
2023-04-16 19:02 ` Joan Bruguera Micó
2023-04-18 21:47 ` Josh Poimboeuf
2023-04-18 21:49 ` [PATCH v2] " Josh Poimboeuf
2023-04-13 4:54 ` [PATCH] vmlinux.lds.h: Force-align ELF notes section to four bytes Tianyi Liu
2023-04-16 18:52 ` Joan Bruguera Micó
2023-04-27 5:14 ` Joan Bruguera Micó
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cf0f4f1f-b2b4-40e8-bc51-ef1e1771e1e2@app.fastmail.com \
--to=dxu@dxuuu.xyz \
--cc=acme@kernel.org \
--cc=bpf@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox