VirtualBox Guest Additions: downgrade gcc2 version

* virtualbox_guest_additions-4.3.12 is the latest version which didn't use mlock/munlock
This commit is contained in:
Sergei Reznikov
2017-12-20 12:24:43 +03:00
parent ead1fcdb5c
commit de577173ce
2 changed files with 65 additions and 56 deletions

View File

@@ -1,14 +1,14 @@
From d1ae4e6f3770e637953d92b49787476b4d8d5f50 Mon Sep 17 00:00:00 2001
From 7ecfc9a6fb10d5a6add5d8a2fe1724a3c5b7236d Mon Sep 17 00:00:00 2001
From: Sergei Reznikov <diver@gelios.net>
Date: Mon, 4 Dec 2017 12:57:21 +0300
Date: Wed, 20 Dec 2017 12:07:29 +0300
Subject: Add Haiku support
diff --git a/Config.kmk b/Config.kmk
index 4fc332c..781a7e5 100644
index 5cae164..ac714bb 100644
--- a/Config.kmk
+++ b/Config.kmk
@@ -1357,7 +1357,7 @@ ifndef VBOX_GCC_TOOL
@@ -1334,7 +1334,7 @@ ifndef VBOX_GCC_TOOL
VBOX_GCC_TOOL := GXX4MACHO
else ifeq ($(KBUILD_TARGET),haiku)
# Haiku shouldn't pass '-r' to the linker by default
@@ -17,7 +17,7 @@ index 4fc332c..781a7e5 100644
else ifeq ($(KBUILD_TARGET),solaris)
VBOX_GCC_TOOL := GXX3PLAIN
VBOX_GCC32_TOOL := GXX3PLAIN
@@ -1498,8 +1498,14 @@ VBOX_GCC_WARN_PEDANTIC = -Wshadow $(VBOX_GCC_WARN) -Wno-long-long
@@ -1475,8 +1475,14 @@ VBOX_GCC_WARN_PEDANTIC = -Wshadow $(VBOX_GCC_WARN) -Wno-long-long
ifdef VBOX_WITH_MASOCHISTIC_WARNINGS
VBOX_GCC_WARN_PEDANTIC += -Wunused-variable -Wunused-function -Wunused-label -Wunused-parameter
endif
@@ -34,7 +34,7 @@ index 4fc332c..781a7e5 100644
ifeq ($(KBUILD_TARGET),win)
VBOX_C_CXX_FLAGS_NO_UNUSED_PARAMETERS = #-Wdxxxx
else
@@ -2895,17 +2901,18 @@ ifeq ($(KBUILD_HOST),haiku)
@@ -2728,17 +2734,18 @@ ifeq ($(KBUILD_HOST),haiku)
# @param 1 The file to add resources to.
# @param 2 The resource files.
# @param 3 The target name.
@@ -62,7 +62,7 @@ index 4fc332c..781a7e5 100644
VBOX_HAIKU_XRES_SETVER_CMDS ?= $(if $(eq $(tool_do),LINK_PROGRAM),$(call VBOX_HAIKU_XRES_SETVER_FN,$(out),$($(target)_RSRCS),$(target)),)
endif
@@ -3647,7 +3654,7 @@ endif # FreeBSD
@@ -3460,24 +3467,26 @@ endif # FreeBSD
ifeq ($(KBUILD_TARGET),haiku)
## The Haiku include directories
@@ -71,7 +71,11 @@ index 4fc332c..781a7e5 100644
TEMPLATE_VBOXR0DRV_TOOL = $(VBOX_GCC_TOOL)
TEMPLATE_VBOXR0DRV_LDTOOL = $(VBOX_GCC_TOOL)
@@ -3658,13 +3665,15 @@ TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -nostdlib
TEMPLATE_VBOXR0DRV_DEFS = _KERNEL_MODE=1 _STRICT_STDC IN_RING0 IN_RT_R0
TEMPLATE_VBOXR0DRV_INCS = $(VBOX_HAIKU_SYS_INCS)
#TODO: sort this out
-TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -nostdlib -rpath-link /boot/develop/lib/x86 --no-add-needed /boot/develop/lib/x86/_KERNEL_ --no-add-needed /boot/develop/lib/x86/haiku_version_glue.o
+TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -nostdlib -rpath-link /system/develop/lib --no-add-needed /system/develop/lib/_KERNEL_ --no-add-needed /system/develop/lib/haiku_version_glue.o
TEMPLATE_VBOXR0DRV_CFLAGS = -no-fpic \
$(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \
$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
@@ -90,7 +94,7 @@ index 4fc332c..781a7e5 100644
-Wformat \
-O2 -nodefaultlibs -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -fno-exceptions -fno-rtti
TEMPLATE_VBOXR0DRV_CXXFLAGS.x86 = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86) -fno-exceptions -fno-rtti
@@ -3772,7 +3781,9 @@ ifeq ($(KBUILD_TARGET),win)
@@ -3580,7 +3589,9 @@ ifeq ($(KBUILD_TARGET),win)
else # the gcc guys
TEMPLATE_VBOXR3EXE_TOOL = $(VBOX_GCC_TOOL)
TEMPLATE_VBOXR3EXE_CXXFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden)
@@ -100,7 +104,7 @@ index 4fc332c..781a7e5 100644
TEMPLATE_VBOXR3EXE_CXXFLAGS.amd64 = -m64
TEMPLATE_VBOXR3EXE_CXXFLAGS.sparc32 = -m32
TEMPLATE_VBOXR3EXE_CXXFLAGS.sparc64 = -m64
@@ -3794,7 +3805,9 @@ TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.x86 = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.x86)
@@ -3602,7 +3613,9 @@ TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.x86 = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.x86)
TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.amd64 = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.amd64)
TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.debug = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.debug)
TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBOXR3EXE_CXXFLAGS.kprofile)
@@ -110,7 +114,7 @@ index 4fc332c..781a7e5 100644
TEMPLATE_VBOXR3EXE_LDFLAGS.amd64 = -m64
TEMPLATE_VBOXR3EXE_LDFLAGS.sparc32 = -m32
TEMPLATE_VBOXR3EXE_LDFLAGS.sparc64 = -m64
@@ -3820,9 +3833,11 @@ TEMPLATE_VBOXR3EXE_LDFLAGS.darwin.x86 = -read_only_relocs suppress
@@ -3628,9 +3641,11 @@ TEMPLATE_VBOXR3EXE_LDFLAGS.darwin.x86 = -read_only_relocs suppress
TEMPLATE_VBOXR3EXE_CXXFLAGS := $(filter-out -pedantic,$(TEMPLATE_VBOXR3EXE_CXXFLAGS)) -fdollars-in-identifiers # annoying gcc option precedence.
endif
else ifeq ($(KBUILD_TARGET),haiku)
@@ -124,47 +128,50 @@ index 4fc332c..781a7e5 100644
TEMPLATE_VBOXR3EXE_LIBPATH += \
/boot/common/lib
# Haiku uses PIC by default...
@@ -5090,7 +5105,9 @@ else
@@ -4804,7 +4819,9 @@ else
# (gcc of some kind )
TEMPLATE_VBoxBldProg_TOOL = GXX3
TEMPLATE_VBoxBldProg_CFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros)
TEMPLATE_VBOXBLDPROG_TOOL = GXX3
TEMPLATE_VBOXBLDPROG_CFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros)
-TEMPLATE_VBOXBLDPROG_CFLAGS.x86 = -m32
+ifneq ($(KBUILD_TARGET),haiku)
TEMPLATE_VBoxBldProg_CFLAGS.x86 = -m32
+TEMPLATE_VBoxBldProg_CFLAGS.x86 = -m32
+endif
TEMPLATE_VBoxBldProg_CFLAGS.sparc32 = -m32
TEMPLATE_VBoxBldProg_CFLAGS.amd64 = -m64
TEMPLATE_VBoxBldProg_CFLAGS.sparc64 = -m64
@@ -5098,7 +5115,9 @@ TEMPLATE_VBoxBldProg_CFLAGS.release = -O2 -fno-omit-frame-pointer -fno-stri
TEMPLATE_VBoxBldProg_CFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
TEMPLATE_VBoxBldProg_CFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
TEMPLATE_VBoxBldProg_CXXFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros)
TEMPLATE_VBOXBLDPROG_CFLAGS.sparc32 = -m32
TEMPLATE_VBOXBLDPROG_CFLAGS.amd64 = -m64
TEMPLATE_VBOXBLDPROG_CFLAGS.sparc64 = -m64
@@ -4812,7 +4829,9 @@ TEMPLATE_VBOXBLDPROG_CFLAGS.release = -O2 -fno-omit-frame-pointer -fno-stri
TEMPLATE_VBOXBLDPROG_CFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile)
TEMPLATE_VBOXBLDPROG_CFLAGS.kprofile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile)
TEMPLATE_VBOXBLDPROG_CXXFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros)
-TEMPLATE_VBOXBLDPROG_CXXFLAGS.x86 = -m32
+ifneq ($(KBUILD_TARGET),haiku)
TEMPLATE_VBoxBldProg_CXXFLAGS.x86 = -m32
+TEMPLATE_VBoxBldProg_CXXFLAGS.x86 = -m32
+endif
TEMPLATE_VBoxBldProg_CXXFLAGS.sparc32 = -m32
TEMPLATE_VBoxBldProg_CXXFLAGS.amd64 = -m64
TEMPLATE_VBoxBldProg_CXXFLAGS.sparc64 = -m64
@@ -5117,7 +5136,9 @@ TEMPLATE_VBoxBldProg_OBJCXXFLAGS.amd64 = $(TEMPLATE_VBoxBldProg_CXXFLAGS.amd64
TEMPLATE_VBoxBldProg_OBJCXXFLAGS.release = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
TEMPLATE_VBoxBldProg_OBJCXXFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
TEMPLATE_VBoxBldProg_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
TEMPLATE_VBOXBLDPROG_CXXFLAGS.sparc32 = -m32
TEMPLATE_VBOXBLDPROG_CXXFLAGS.amd64 = -m64
TEMPLATE_VBOXBLDPROG_CXXFLAGS.sparc64 = -m64
@@ -4831,7 +4850,9 @@ TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.amd64 = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.amd64
TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.release = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release)
TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.profile = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile)
TEMPLATE_VBOXBLDPROG_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile)
-TEMPLATE_VBOXBLDPROG_LDFLAGS.x86 = -m32
+ifneq ($(KBUILD_TARGET),haiku)
TEMPLATE_VBoxBldProg_LDFLAGS.x86 = -m32
+TEMPLATE_VBoxBldProg_LDFLAGS.x86 = -m32
+endif
TEMPLATE_VBoxBldProg_LDFLAGS.sparc32 = -m32
TEMPLATE_VBoxBldProg_LDFLAGS.amd64 = -m64
TEMPLATE_VBoxBldProg_LDFLAGS.sparc64 = -m64
@@ -5159,7 +5180,7 @@ TEMPLATE_VBoxBldProg_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)
TEMPLATE_VBOXBLDPROG_LDFLAGS.sparc32 = -m32
TEMPLATE_VBOXBLDPROG_LDFLAGS.amd64 = -m64
TEMPLATE_VBOXBLDPROG_LDFLAGS.sparc64 = -m64
@@ -4873,7 +4894,7 @@ TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)
endif
TEMPLATE_VBoxBldProg_LIBS =
TEMPLATE_VBOXBLDPROG_LIBS =
else ifeq ($(KBUILD_HOST),haiku)
-TEMPLATE_VBoxBldProg_TOOL = GXX3
+TEMPLATE_VBoxBldProg_TOOL = GXX2
TEMPLATE_VBoxBldProg_LIBS = network iconv
TEMPLATE_VBoxBldProg_LIBPATH += \
-TEMPLATE_VBOXBLDPROG_TOOL = GXX3
+TEMPLATE_VBOXBLDPROG_TOOL = GXX2
TEMPLATE_VBOXBLDPROG_LIBS = network iconv
TEMPLATE_VBOXBLDPROG_LIBPATH += \
/boot/common/lib
diff --git a/configure b/configure
index e892b27..6531dbd 100755
index 126e782..b4a3f25 100755
--- a/configure
+++ b/configure
@@ -417,6 +417,9 @@ check_gcc()
@@ -177,7 +184,7 @@ index e892b27..6531dbd 100755
elif [ $cc_maj -lt 3 \
-o \( $cc_maj -eq 3 -a $cc_min -lt 2 \) \
-o \( $cc_maj -eq 4 -a $cc_min -lt 1 -a "$OS" != "darwin" \) \
@@ -2598,6 +2601,12 @@ if [ $OSE -ge 1 ]; then
@@ -2597,6 +2600,12 @@ if [ $OSE -ge 1 ]; then
else
cnf_append "VBOX_WITH_LINUX_ADDITIONS" ""
fi
@@ -191,7 +198,7 @@ index e892b27..6531dbd 100755
fi
diff --git a/include/iprt/cdefs.h b/include/iprt/cdefs.h
index 27f87af..c85df64 100644
index 744fd48..51a8f65 100644
--- a/include/iprt/cdefs.h
+++ b/include/iprt/cdefs.h
@@ -1142,7 +1142,7 @@
@@ -217,10 +224,10 @@ index 0edad23..217d555 100644
{
return NIL_RTFILE;
diff --git a/include/iprt/types.h b/include/iprt/types.h
index dee2257..741da61 100644
index 3c88ec2..f4382e8 100644
--- a/include/iprt/types.h
+++ b/include/iprt/types.h
@@ -150,6 +150,13 @@ RT_C_DECLS_END
@@ -149,6 +149,13 @@ RT_C_DECLS_END
# undef false
# undef true
# undef bool
@@ -234,7 +241,7 @@ index dee2257..741da61 100644
# else
# include <stddef.h>
# include <sys/types.h>
@@ -207,8 +214,13 @@ typedef uint8_t bool;
@@ -206,8 +213,13 @@ typedef uint8_t bool;
# ifndef __bool_true_false_are_defined
typedef _Bool bool;
# endif
@@ -1710,7 +1717,7 @@ index 8216332..c17cbcd 100644
{
pSession->u32MousePosChangedSeq = u32CurSeq;
diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
index a35329b..fb5a05d 100644
index 5aa3170..6a13751 100644
--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
+++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
@@ -69,6 +69,7 @@
@@ -1721,7 +1728,7 @@ index a35329b..fb5a05d 100644
/*
* IRQ related functions.
@@ -301,9 +302,10 @@ static status_t VBoxGuestHaikuDetach(void)
@@ -302,9 +303,10 @@ static status_t VBoxGuestHaikuDetach(void)
*/
static int32 VBoxGuestHaikuISR(void *pvState)
{
@@ -1733,7 +1740,7 @@ index a35329b..fb5a05d 100644
if (fOurIRQ)
return B_HANDLED_INTERRUPT;
return B_UNHANDLED_INTERRUPT;
@@ -312,9 +314,10 @@ static int32 VBoxGuestHaikuISR(void *pvState)
@@ -313,9 +315,10 @@ static int32 VBoxGuestHaikuISR(void *pvState)
void VBoxGuestNativeISRMousePollEvent(PVBOXGUESTDEVEXT pDevExt)
{
@@ -2258,10 +2265,10 @@ index 778c576..e70ac71 100644
VBoxDisplayService *fDisplayService;
};
diff --git a/src/VBox/Runtime/VBox/log-vbox.cpp b/src/VBox/Runtime/VBox/log-vbox.cpp
index ef53798..d271b03 100644
index 390a9a5..46eae72 100644
--- a/src/VBox/Runtime/VBox/log-vbox.cpp
+++ b/src/VBox/Runtime/VBox/log-vbox.cpp
@@ -423,7 +423,7 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void)
@@ -424,7 +424,7 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void)
# else /* IN_GUEST */
/* The user destination is backdoor logging. */
@@ -2270,7 +2277,7 @@ index ef53798..d271b03 100644
# endif /* IN_GUEST */
#else /* IN_RING0 */
@@ -491,6 +491,11 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void)
@@ -492,6 +492,11 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void)
RTLogGroupSettings(pLogger, "all=~0 -default.l6.l5.l4.l3");
RTLogFlags(pLogger, "enabled unbuffered tid");
pLogger->fDestFlags |= RTLOGDEST_DEBUGGER | RTLOGDEST_STDOUT;
@@ -2295,7 +2302,7 @@ index 7d67906..0d4528e 100644
return;
}
diff --git a/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c
index 58c7203..2483ef3 100644
index 58c7203..1397718 100644
--- a/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c
+++ b/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c
@@ -44,10 +44,12 @@
@@ -2322,12 +2329,14 @@ index 58c7203..2483ef3 100644
/*
* Validate input.
*/
@@ -87,8 +92,7 @@ RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) RT_NO_THROW
@@ -86,9 +91,8 @@ RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) RT_NO_THROW
* Allocate the memory and ensure that the API is still providing
* memory that's always below 4GB.
*/
cb = RT_ALIGN_Z(cb, PAGE_SIZE);
- cb = RT_ALIGN_Z(cb, PAGE_SIZE);
- void *pv;
- area_id area = create_area("VirtualBox Contig Alloc", &pv, B_ANY_KERNEL_ADDRESS, cb, B_32_BIT_CONTIGUOUS,
+ cb = RT_ALIGN_Z(cb, B_PAGE_SIZE);
+ area = create_area("VirtualBox Contig Alloc", &pv, B_ANY_KERNEL_ADDRESS, cb, B_32_BIT_CONTIGUOUS,
B_READ_AREA | B_WRITE_AREA);
if (area >= 0)

View File

@@ -14,7 +14,7 @@ LICENSE="GNU GPL v2
REVISION="1"
SOURCE_URI="http://download.virtualbox.org/virtualbox/$portVersion/VirtualBox-$portVersion.tar.bz2"
SOURCE_DIR="VirtualBox-$portVersion"
CHECKSUM_SHA256="4bbea49ee1eaa600db7af64b05c8ce6a1f7585de08f4f85cd7b6f0f7a798bcc6"
CHECKSUM_SHA256="db84ddf47d1ecd316ec46417595f0252e3ec2f67e35e1e17320aba87b7c2934f"
PATCHES="virtualbox_guest_additions-$portVersion.patchset"
ARCHITECTURES="x86_gcc2"