Unable bisect issue because kernel not building from old commits

From: Mikhail Gavrilov
Date: Sat Sep 24 2022 - 18:22:50 EST


Hi!
I want to make bisect between commits fdaf9a5840ac and babf0bb978e3,
because after commit babf0bb978e3 Wi-Fi (mt7921e) upload speed became
limited to 170Mbps. On commit fdaf9a5840ac upload speed was 784Mbps.

But I ran into a problem that the gcc-12.2.1 compiler on my
distribution (Fedora) can't build the kernel from old commits. The
build fails with the following error:
ld: warning: arch/x86/power/hibernate_asm_64.o: missing
.note.GNU-stack section implies executable stack
ld: NOTE: This behaviour is deprecated and will be removed in a future
version of the linker
MODPOST vmlinux.symvers
MODINFO modules.builtin.modinfo
GEN modules.builtin
CC .vmlinux.export.o
LD .tmp_vmlinux.btf
ld: warning: arch/x86/power/hibernate_asm_64.o: missing
.note.GNU-stack section implies executable stack
ld: NOTE: This behaviour is deprecated and will be removed in a future
version of the linker
ld: warning: .tmp_vmlinux.btf has a LOAD segment with RWX permissions
BTF .btf.vmlinux.bin.o
LD .tmp_vmlinux.kallsyms1
ld: warning: .btf.vmlinux.bin.o: missing .note.GNU-stack section
implies executable stack
ld: NOTE: This behaviour is deprecated and will be removed in a future
version of the linker
ld: warning: .tmp_vmlinux.kallsyms1 has a LOAD segment with RWX permissions
KSYMS .tmp_vmlinux.kallsyms1.S
AS .tmp_vmlinux.kallsyms1.S
LD .tmp_vmlinux.kallsyms2
ld: warning: .btf.vmlinux.bin.o: missing .note.GNU-stack section
implies executable stack
ld: NOTE: This behaviour is deprecated and will be removed in a future
version of the linker
ld: warning: .tmp_vmlinux.kallsyms2 has a LOAD segment with RWX permissions
KSYMS .tmp_vmlinux.kallsyms2.S
AS .tmp_vmlinux.kallsyms2.S
LD vmlinux
ld: warning: .btf.vmlinux.bin.o: missing .note.GNU-stack section
implies executable stack
ld: NOTE: This behaviour is deprecated and will be removed in a future
version of the linker
ld: warning: vmlinux has a LOAD segment with RWX permissions
BTFIDS vmlinux
FAILED: load BTF from vmlinux: Invalid argument
make: *** [Makefile:1160: vmlinux] Error 255
make: *** Deleting file 'vmlinux'


I found a commit that fixes the build:
dffbbdc2d9889670c30e07d05fc0dd712e8ad430 is the first bad commit
commit dffbbdc2d9889670c30e07d05fc0dd712e8ad430
Author: Yonghong Song <yhs@xxxxxx>
Date: Mon Jun 6 23:26:21 2022 -0700

libbpf: Add enum64 parsing and new enum64 public API

Add enum64 parsing support and two new enum64 public APIs:
btf__add_enum64
btf__add_enum64_value

Also add support of signedness for BTF_KIND_ENUM. The
BTF_KIND_ENUM API signatures are not changed. The signedness
will be changed from unsigned to signed if btf__add_enum_value()
finds any negative values.

Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
Signed-off-by: Yonghong Song <yhs@xxxxxx>
Link: https://lore.kernel.org/r/20220607062621.3719391-1-yhs@xxxxxx
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx>

tools/lib/bpf/btf.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++
tools/lib/bpf/btf.h | 12 ++++++
tools/lib/bpf/libbpf.map | 2 +
3 files changed, 117 insertions(+)


But I can't cherry pick it because there are conflicts:
$ git bisect start
status: waiting for both good and bad commits
$ git bisect good fdaf9a5840ac
status: waiting for bad commit, 1 good commit known
$ git bisect bad babf0bb978e3
Bisecting: 2687 revisions left to test after this (roughly 11 steps)
[86c87bea6b42100c67418af690919c44de6ede6e] Merge tag
'devicetree-for-5.19' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
$ git cherry-pick -n dffbbdc2d9889670c30e07d05fc0dd712e8ad430
Auto-merging tools/lib/bpf/btf.c
CONFLICT (content): Merge conflict in tools/lib/bpf/btf.c
Auto-merging tools/lib/bpf/libbpf.map
CONFLICT (content): Merge conflict in tools/lib/bpf/libbpf.map
error: could not apply dffbbdc2d988... libbpf: Add enum64 parsing and
new enum64 public API
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'

Are there any other options to fix the kernel build?

Thanks.


--
Best Regards,
Mike Gavrilov.