emulators/virtualbox-ose vs non-base gcc

Andriy Gapon avg at freebsd.org
Tue Jul 6 07:45:00 UTC 2010


on 08/06/2010 11:02 Andriy Gapon said the following:
> I am trying to compile my ports with gcc44 instead of a base gcc.
> It seems that currently VirtualBox build system assumes that FreeBSD means base
> GCC only.  For example, it unconditionally uses -fno-format-extensions and
> -fformat-extensions options.  Those are extensions available in base GCC, but
> not in ports GCCs (at least for time being).
> I am not proficient in KBuild, so I don't have a patch, but I can make a
> suggestion that for these options CC and CXX should be tested in addition to
> KBUILD_TARGET.
> 
> Additionally, two files seem to miss some include directives because of GCC
> changes outlined here:
> http://gcc.gnu.org/gcc-4.3/porting_to.html

I would like to remind that the reported issues are still there with VirtualBox
3.2.6 and something like the following patch is still required.

--- src/VBox/Main/freebsd/NetIf-freebsd.cpp.orig	2010-07-06 10:31:07.328680775 +0300
+++ src/VBox/Main/freebsd/NetIf-freebsd.cpp	2010-07-06 10:31:28.000532682 +0300
@@ -44,6 +44,7 @@
 #include <netinet/in.h>

 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
 #include <errno.h>

--- src/VBox/Main/freebsd/HostHardwareFreeBSD.cpp.orig	2010-07-06
10:29:23.130414466 +0300
+++ src/VBox/Main/freebsd/HostHardwareFreeBSD.cpp	2010-07-06 10:32:59.702484321
+0300
@@ -40,6 +40,7 @@
 # include <unistd.h>
 # include <sys/ioctl.h>
 # include <fcntl.h>
+# include <stdio.h>
 # include <cam/cam.h>
 # include <cam/cam_ccb.h>
 # include <cam/scsi/scsi_pass.h>


And probably the following should just work too.

--- Config.kmk.orig	2010-06-25 17:23:52.000000000 +0300
+++ Config.kmk	2010-07-05 20:59:21.772469818 +0300
@@ -2612,7 +2613,7 @@
 	$(VBOX_GCC_WARN) -Wpointer-arith -Winline $(VBOX_GCC_Wno-pointer-sign) \
 	-Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs \
 	-Wimplicit-function-declaration -Werror-implicit-function-declaration \
-	-O2 -fformat-extensions -ffreestanding -fno-strict-aliasing -fno-common
-finline-limit=8000 \
+	-O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
 	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
 	-nostdinc -std=c99
 TEMPLATE_VBOXR0DRV_CFLAGS.x86          = -m32 -mno-align-long-strings
-mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2
@@ -2621,7 +2622,7 @@
 	-mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -Wundef
 TEMPLATE_VBOXR0DRV_CXXFLAGS            = -fno-exceptions -fno-rtti \
 	$(VBOX_GCC_WARN) -Wpointer-arith -Winline \
-	-O2 -fno-format-extensions -fno-strict-aliasing -fno-common -finline-limit=8000 \
+	-O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
 	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
 	-nostdinc
 TEMPLATE_VBOXR0DRV_CXXFLAGS.x86        = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86)

-- 
Andriy Gapon


More information about the freebsd-emulation mailing list