Re: linux-next: build failure after merge of the hyperv tree

From: Dexuan-Linux Cui
Date: Mon Aug 07 2023 - 22:35:22 EST


On Sun, Aug 6, 2023 at 10:39 PM Wei Liu <wei.liu@xxxxxxxxxx> wrote:
>
> On Mon, Aug 07, 2023 at 02:22:38PM +1000, Stephen Rothwell wrote:
> > Hi all,
> >
> > After merging the hyperv tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> >
> > drivers/pci/controller/pci-hyperv.o: warning: objtool: .altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
> > drivers/hv/hv_balloon.o: warning: objtool: .altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
> > drivers/hv/hv_vmbus.o: warning: objtool: .altinstr_replacement+0x3: weirdly overlapping alternative! 10 != 5
> > vmlinux.o: warning: objtool: .altinstr_replacement+0x633: weirdly overlapping alternative! 11 != 6
> > incomplete ORC unwind tables in file: vmlinux
> > Failed to sort kernel tables
> >
> > I have no idea what caused this.

Hi Stephen,
My kernel source was checked out from the Hyper-V tree's hyperv-next
branch last Friday, which had Tianyu's 8 patches.

I'm able to repro the same build failure in a Ubuntu 22.04 VM with
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4:

I run the below commands:
make mrproper
make allmodconfig
make -j128
make -j128

...
LD [M] net/qrtr/qrtr-tun.ko
LD [M] net/qrtr/qrtr-mhi.ko
LD [M] virt/lib/irqbypass.ko
LD [M] arch/x86/video/fbdev.ko
make: *** [Makefile:234: __sub-make] Error 2

make -j128
DESCEND objtool
INSTALL libsubcmd_headers
CALL scripts/checksyscalls.sh
CHK kernel/kheaders_data.tar.xz
UPD include/generated/utsversion.h
CC init/version-timestamp.o
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 vmlinux
NM System.map
SORTTAB vmlinux
incomplete ORC unwind tables in file: vmlinux
Failed to sort kernel tables
make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1
make[2]: *** Deleting file 'vmlinux'
make[1]: *** [/opt/linux-next/Makefile:1250: vmlinux] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:234: __sub-make] Error 2

If I revert Tianyu's patches by "git diff v6.5-rc4 | patch -Rp1",
the build can succeed.

If I apply the the patches, I get the same failure:

drivers/hv/hv_balloon.o: warning: objtool: .altinstr_replacement+0x0:
weirdly overlapping alternative! 11 != 6
...
drivers/pci/controller/pci-hyperv.o: warning: objtool:
.altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
...
drivers/hv/hv_vmbus.o: warning: objtool: .altinstr_replacement+0x3:
weirdly overlapping alternative! 10 != 5
...
AR built-in.a
AR vmlinux.a
LD vmlinux.o
vmlinux.o: warning: objtool: .altinstr_replacement+0x633: weirdly
overlapping alternative! 11 != 6
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
GEN .vmlinux.objs
MODPOST Module.symvers
CC .vmlinux.export.o
UPD include/generated/utsversion.h
CC init/version-timestamp.o
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 vmlinux
NM System.map
SORTTAB vmlinux
incomplete ORC unwind tables in file: vmlinux
Failed to sort kernel tables
make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1
make[2]: *** Deleting file 'vmlinux'
make[1]: *** [/opt/linux-next/Makefile:1250: vmlinux] Error 2
make[1]: *** Waiting for unfinished jobs....
...
make: *** [Makefile:234: __sub-make] Error 2

It turns out that I already made a fix
https://github.com/dcui/linux/commit/c4db45f6256248435b2a303b264ecbb41320c41d
which can fix the build failure and fix a crash issue (see
https://lwn.net/ml/linux-kernel/SA1PR21MB1335A21D5D037FE88D9CF820BF0EA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
)

Thanks,
Dexuan

> /me scratches head.
>
> > I have used the hyperv tree from next-20230804 for today.
>
> I've reverted that series from my tree. Thanks for the heads up.
>
> Thanks,
> Wei.