Summary: | app-emulation/virtualbox-modules-6.0.24-r2: missing /usr/src/linux/include/linux/compiler-gcc9.h | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Matthias Hanft <gentoo-bugzilla> |
Component: | Current packages | Assignee: | Lars Wendler (Polynomial-C) (RETIRED) <polynomial-c> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | jstein |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Matthias Hanft
2020-12-20 14:14:06 UTC
Note: By softlinking ...gcc9 to ...gcc4 (just in case this means kernel version instead of gcc version), it won't work either: In file included from /var/tmp/portage/app-emulation/virtualbox-modules-6.0.24-r2/work/vboxdrv/SUPDrvInternal.h:12 , from /var/tmp/portage/app-emulation/virtualbox-modules-6.0.24-r2/work/vboxdrv/SUPDrvSem.c:33: /var/tmp/portage/app-emulation/virtualbox-modules-6.0.24-r2/work/vboxdrv/SUPDrvIDC.h:166:22: error: expected ‘:’, ,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘Out’ 166 | } __no_const Out; | ^~~ and /var/tmp/portage/app-emulation/virtualbox-modules-6.0.24-r2/work/vboxdrv/SUPDrv.c: In function ‘supdrvIDC_LdrGetSymbol’: /var/tmp/portage/app-emulation/virtualbox-modules-6.0.24-r2/work/vboxdrv/SUPDrv.c:5698:24: error: ‘union <anonymous>’ has no member named ‘Out’ 5698 | pReq->u.Out.pfnSymbol = (PFNRT)(uintptr_t)g_aFunctions[i].pfn; | ^ Is this still an issue with latest virtualbox-6.1.x releases? I also wonder if this might be hardened related. Yes, the problem still persists, but in a "newer version": Instead of /usr/src/linux-4.1.12-gentoo/include/linux/compiler-gcc.h:121:1: fatal error: linux/compiler-gcc9.h: No such file or directory the error message is now /usr/src/linux-4.1.12-gentoo/include/linux/compiler-gcc.h:121:1: fatal error: linux/compiler-gcc10.h: No such file or directory since I upgraded to gcc 10 meanwhile. Is the current VirtualBox version *really* that kernel-and/or-compiler-version-dependant? Ok, kernel 4.1.12 might be a bit old nowadays, but I wouldn't really like to upgrade it because of some weird video driver modules for media-video/vdr which I couldn't get to work with newer kernels. (This is my kernel 4.1.12:) home01 /usr/src/linux/include/linux # ls -ald compiler* -rw-r--r-- 1 root root 320 Jun 22 2015 compiler-clang.h -rw-r--r-- 1 root root 635 Jun 22 2015 compiler-gcc3.h -rw-r--r-- 1 root root 3089 Jun 22 2015 compiler-gcc4.h -rw-r--r-- 1 root root 2484 Jun 22 2015 compiler-gcc5.h -rw-r--r-- 1 root root 5096 Jun 22 2015 compiler-gcc.h -rw-r--r-- 1 root root 14324 Jun 22 2015 compiler.h -rw-r--r-- 1 root root 1156 Nov 28 2015 compiler-intel.h But the current kernel (gentoo-sources) 5.10.27 wouldn't have this "compiler-gcc10.h" either: home01 /usr/src/linux-5.10.27-gentoo/include/linux # ls -ald compiler* -rw-r--r-- 1 root root 11667 Dec 13 23:41 compiler_attributes.h -rw-r--r-- 1 root root 2341 Apr 3 10:17 compiler-clang.h -rw-r--r-- 1 root root 5272 Apr 3 10:17 compiler-gcc.h -rw-r--r-- 1 root root 7677 Dec 13 23:41 compiler.h -rw-r--r-- 1 root root 949 Dec 13 23:41 compiler-intel.h -rw-r--r-- 1 root root 10631 Dec 13 23:41 compiler_types.h I'm no expert at this point, but I wonder why "compiler-gcc.h" seems to include something like "compiler-gcc$MAJOR_VERSION.h" (which doesn't exist) - and why this happens *only* for VirtualBox (and not *any* other package)... virtualbox has quite an exotic build system so I wouldn't be surprised if they pull such a stunt for some corner configuration. My problem is that I cannot really reproduce this issue. I neither have any hardened Gentoo at hand nor am I still using such an ancient kernel. Any chance you can upgrade to some newer kernel release like 4.19.x, 5.4.x or even 5.10.x just to rule out it's the old kernel that causes the issue? Ok, it does work with kernel 5.10.27 so you can close this issue (and https://bugs.gentoo.org/760896 as well). Thank you. -------------------- If you're interested, here's why it took me that long to answer: I wanted to try the current 5.10.27 kernel just a few minutes in order to test if virtualbox can be compiled here. But after reverting to 4.1.12, I got tons of messages like Apr 22 19:19:14 home01 kernel: XFS (sda4): Metadata corruption detected at xfs_agf_read_verify+0x5c/0x100, block 0x7ffffff81 Apr 22 19:19:14 home01 kernel: XFS (sda4): Unmount and run xfs_repair Obviously, the new kernel brought a newer XFS version (and wrote it to disk) which the older kernel couldn't understand. After rebooting with the new kernel again, those messages had disappeared, but media-video/vdr didn't work any more because of some kernel module trouble. So I had to debug (and "try and error") how I should configure and use the kernel modules for vdr. In the old kernel, I had a package called "media-build-experimental" from the "vdr-devel" overlay, but this wouldn't work with the new kernel. But it's at all unnecessary, because everything needed for vdr is, meanwhile, kernel-built-in anyway. However, at first, it didn't work because I included the device drivers (with "make menuconfig") directly in the kernel. The solution was to select "M" here (and build separate driver modules). Now vdr works again, and virtualbox runs, too... (besides the fact that a guest Windows 10 is slow and the host CPU load is high - but that seems to be a pretty common issue which I will investigate further elsewhere). Hey Matthias, thanks for your really thorough reply and sorry that you had such a trouble going on a new kernel release. Yeah, they changed quite a lot in the XFS filesystem code but for the better. I have started to replace btrfs with xfs because it "feels" much more responsive (and I do not have to defrag xfs once a month). Ultimately with kernel-5.10 you should now have a top notch release that even is LTS (Long Term Support). I am using that kernel series on most of my systems. I hope you won't find any annoying regressions while using it. |