#20178 closed defect (fixed)
Building DKMS modules fails with some kernel configs, when using binutils 2.36
回報者: | nanana | 負責人: | |
---|---|---|---|
元件: | other | 版本: | VirtualBox 6.1.18 |
關鍵字: | 副本: | ||
Guest type: | other | Host type: | Linux |
描述
Building DKMS modules on Arch linux fails after upgrading to binutils 2.36, against custom configured kernel, while building against a kernel built with the default Arch Linux kernel config works without issues.
I haven't managed to narrow down the specific configuration that causes the build to fail, but since the issue wasn't present with earlier binutils versions, I'd imagine this was something that should be fixed in the DKMS modules.
Based on the build error, and an kernel commit to fix a similar error (https://git.kernel.org/linus/5e6dca82bcaa49348f9e5fcb48df4881f6d6c4ae), I think this might be related to this binutils commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=d1bcae833b32f1408485ce69f844dcd7ded093a8. Although I must admit I have very little understanding about what this change does, so I could be completely wrong.
Logs from the failing build:
DKMS make.log for vboxhost-6.1.18_OSE for kernel 5.10.13-ooo (x86_64) Mon 8 Feb 03:18:29 EET 2021 make: Entering directory '/usr/src/linux-5.10' CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetflt/linux/VBoxNetFlt-linux.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetflt/VBoxNetFlt.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetadp/linux/VBoxNetAdp-linux.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/linux/SUPDrv-linux.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetadp/VBoxNetAdp.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetflt/SUPR0IdcClient.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrv.o LD [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetadp/vboxnetadp.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetflt/SUPR0IdcClientComponent.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrvGip.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetflt/linux/SUPR0IdcClient-linux.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrvSem.o LD [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxnetflt/vboxnetflt.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrvTracer.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPLibAll.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/r0drv/alloc-r0drv.o CC [M] /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/r0drv/initterm-r0drv.o /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrvTracer.o: warning: objtool: supdrvTracerProbeFireStub() is missing an ELF size annotation /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrvTracer.o: warning: objtool: missing symbol for insn at offset 0x0 make[2]: *** [scripts/Makefile.build:279: /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrvTracer.o] Error 255 make[2]: *** Deleting file '/var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv/SUPDrvTracer.o' make[2]: *** Waiting for unfinished jobs.... make[1]: *** [scripts/Makefile.build:496: /var/lib/dkms/vboxhost/6.1.18_OSE/build/vboxdrv] Error 2 make: *** [Makefile:1805: /var/lib/dkms/vboxhost/6.1.18_OSE/build] Error 2 make: Leaving directory '/usr/src/linux-5.10'
The working kernel config is available here https://github.com/archlinux/svntogit-packages/blob/37abf96cac628b7f516c266a8c0288671ed96a2a/trunk/config
The kernel config that results in this issue here: https://pastebin.com/Wtyp2iqJ
Related thread in Arch Linux forums: https://bbs.archlinux.org/viewtopic.php?pid=1954957
I also stumbled upon a similar error message, which I suspect to be related to this issue:
So far local patching vboxdrv/SUPDrvTracer.c with code from https://forums.virtualbox.org/viewtopic.php?f=7&t=101686# helped to compile successfully with my customized 5.10.13 kernel and both binutils 2.35.2 and 2.36.1. This for sure is just a try and error finding as I have to admit I do not understand this problem to its full extend. It could be a bad idea to discard the retpoline mitigation.
Applied patch: