Thanks Mark, I'll look into that, follow up:
Ticket #19391 (assigned defect)
Guest additions kernel module compilation error on CentOS 8 Stream guest
https://www.virtualbox.org/ticket/19391
On Tue, 10 Mar 2020 10:05:27 +0100, Mark Thebridge
<mark.thebri...@metaswitch.com> wrote:
Hi,
The latest version of the Guest Additions (both 6.1.4 and master) fail
to compile the kernel modules on a CentOS 8.1 guest using kernel
4.18.0-177.el8.x86_64 - the latest kernel available through the
"Streams" release (which allows CentOS users to get early versions of
packages that will be in the next minor release).
I've provided an initial patch that partly fixes this below (authored by
me, released under the MIT license). With this patch the video module
compiles and works - *but* I'm not sure exactly what the #include
guards ought to be. We can't actually test for RHEL_81 being defined,
because then guest additions will stop compiling for anyone on the main
RHEL/CentOS 8.1 release. Unfortunately there's no real way I can see to
tell if we are using at least 4.18.0-177.el8 (which needs these
changes) or an earlier 8.1 kernel. The kernel release number is
available as the RHEL_RELEASE #define in the kernel tree, but that's a
string, not an integer, and the C pre-processor can't do string
comparisons. I think we'd need some Makefile enhancements to pass in
extra #defines, but not sure exactly where in the Makefiles those should
live...
Even if this isn't fixed for CentOS 8 Streams guests, this patch will
almost certainly be needed for RHEL/CentOS 8.2 when that comes out
Thanks,
Mark
diff -uNr -w a/vbox_fb.c b/vbox_fb.c
--- a/vbox_fb.c 2020-02-18 15:31:10.000000000 +0000
+++ b/vbox_fb.c 2020-03-03 16:33:07.197239177 +0000
@@ -335,14 +331,14 @@
info->apertures->ranges[0].base = pci_resource_start(dev->pdev, 0);
info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 0);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0) || defined(RHEL_81)
drm_fb_helper_fill_info(info, &fbdev->helper, sizes);
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75)
drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
#else
drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth);
#endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0) && !defined(RHEL_81)
drm_fb_helper_fill_var(info, &fbdev->helper, sizes->fb_width,
sizes->fb_height);
#endif
diff -uNr -w a/vbox_ttm.c b/vbox_ttm.c
--- a/vbox_ttm.c 2020-02-14 11:35:05.000000000 +0000
+++ b/vbox_ttm.c 2020-03-03 16:33:07.199239341 +0000
@@ -312,7 +308,7 @@
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0)
dev->vma_offset_manager,
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0) && !defined(RHEL_81)
DRM_FILE_PAGE_OFFSET,
#endif
true);
--
frankB
Oracle Virtualbox Development
_______________________________________________
vbox-dev mailing list
vbox-dev@virtualbox.org
https://www.virtualbox.org/mailman/listinfo/vbox-dev