From de577173ce69c5e1e3105ff16c11ebf76f90045f Mon Sep 17 00:00:00 2001 From: Sergei Reznikov Date: Wed, 20 Dec 2017 12:24:43 +0300 Subject: [PATCH] VirtualBox Guest Additions: downgrade gcc2 version * virtualbox_guest_additions-4.3.12 is the latest version which didn't use mlock/munlock --- ...irtualbox_guest_additions-4.3.12.patchset} | 119 ++++++++++-------- ... virtualbox_guest_additions-4.3.12.recipe} | 2 +- 2 files changed, 65 insertions(+), 56 deletions(-) rename app-emulation/virtualbox-guest-additions/patches/{virtualbox_guest_additions-4.3.40.patchset => virtualbox_guest_additions-4.3.12.patchset} (96%) rename app-emulation/virtualbox-guest-additions/{virtualbox_guest_additions-4.3.40.recipe => virtualbox_guest_additions-4.3.12.recipe} (97%) diff --git a/app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.40.patchset b/app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.12.patchset similarity index 96% rename from app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.40.patchset rename to app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.12.patchset index 05cfd798b..080988a49 100644 --- a/app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.40.patchset +++ b/app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.12.patchset @@ -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 -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 # include -@@ -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) diff --git a/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.40.recipe b/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.12.recipe similarity index 97% rename from app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.40.recipe rename to app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.12.recipe index 305c54b9e..d6a3f546e 100644 --- a/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.40.recipe +++ b/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.12.recipe @@ -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"