Changeset View
Changeset View
Standalone View
Standalone View
emulators/virtualbox-ose/files/patch-Config.kmk
--- Config.kmk.orig 2020-07-09 16:49:46 UTC | --- Config.kmk.orig 2021-01-07 15:31:21 UTC | ||||
+++ Config.kmk | +++ Config.kmk | ||||
@@ -445,11 +445,11 @@ ifn1of ($(KBUILD_TARGET), win darwin) | @@ -469,11 +469,11 @@ ifn1of ($(KBUILD_TARGET), win darwin) | ||||
# Enable OSS audio support. | # Enable OSS audio support. | ||||
VBOX_WITH_AUDIO_OSS = 1 | VBOX_WITH_AUDIO_OSS = 1 | ||||
endif | endif | ||||
-if1of ($(KBUILD_TARGET), linux) | -if1of ($(KBUILD_TARGET), linux) | ||||
+if1of ($(KBUILD_TARGET), freebsd linux) | +if1of ($(KBUILD_TARGET), freebsd linux) | ||||
# Enable ALSA audio support. | # Enable ALSA audio support. | ||||
VBOX_WITH_AUDIO_ALSA = 1 | VBOX_WITH_AUDIO_ALSA = 1 | ||||
endif | endif | ||||
-if1of ($(KBUILD_TARGET), linux) | -if1of ($(KBUILD_TARGET), linux) | ||||
+if1of ($(KBUILD_TARGET), freebsd linux) | +if1of ($(KBUILD_TARGET), freebsd linux) | ||||
# Enable PulseAudio audio support. | # Enable PulseAudio audio support. | ||||
VBOX_WITH_AUDIO_PULSE = 1 | VBOX_WITH_AUDIO_PULSE = 1 | ||||
endif | endif | ||||
@@ -464,11 +464,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1 | @@ -489,11 +489,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1 | ||||
# Enable PCI passthrough support. | # (disabled with 6.1, since it's not complete/useful enough) | ||||
VBOX_WITH_PCI_PASSTHROUGH = 1 | VBOX_WITH_PCI_PASSTHROUGH = | ||||
# Enable statically linked dbus support. | # Enable statically linked dbus support. | ||||
-if1of ($(KBUILD_TARGET), linux solaris) | -if1of ($(KBUILD_TARGET), linux solaris) | ||||
+if1of ($(KBUILD_TARGET), freebsd linux solaris) | +if1of ($(KBUILD_TARGET), freebsd linux solaris) | ||||
VBOX_WITH_DBUS = 1 | VBOX_WITH_DBUS = 1 | ||||
endif | endif | ||||
# Enable building PAM modules. | # Enable building PAM modules. | ||||
-if1of ($(KBUILD_TARGET), linux solaris) | -if1of ($(KBUILD_TARGET), linux solaris) | ||||
+if1of ($(KBUILD_TARGET), freebsd linux solaris) | +if1of ($(KBUILD_TARGET), freebsd linux solaris) | ||||
VBOX_WITH_PAM = 1 | VBOX_WITH_PAM = 1 | ||||
endif | endif | ||||
# Enable internal networking. | # Enable internal networking. | ||||
@@ -664,7 +664,7 @@ VBOX_WITH_TESTCASES = 1 | @@ -501,7 +501,7 @@ VBOX_WITH_INTERNAL_NETWORKING = 1 | ||||
VBOX_WITH_VDITOOL = | # Enable vmsvga (svga2) graphics device variant, 2D part | ||||
# Enable this to build vbox-img even if VBOX_WITH_TESTCASES is disabled | VBOX_WITH_VMSVGA = 1 | ||||
VBOX_WITH_VBOX_IMG = | # Enable vmsvga (svga2) graphics device variant, 3D part | ||||
-if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.x86 darwin.amd64 linux.x86 linux.amd64 solaris.amd64 win.x86 win.amd64) | -if1of ($(KBUILD_TARGET), darwin linux win) | ||||
+if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.x86 darwin.amd64 freebsd.x86 freebsd.amd64 linux.x86 linux.amd64 solaris.amd64 win.x86 win.amd64) | +if1of ($(KBUILD_TARGET), darwin freebsd linux win) | ||||
# Enables the video capturing support. | VBOX_WITH_VMSVGA3D = 1 | ||||
VBOX_WITH_VIDEOREC = 1 | endif | ||||
# Enable VPX (VP8 / VP9 codec), used for video capturing. | # Enable the generic 3D settings support if at least one 3D capable solution is enabled | ||||
@@ -992,10 +992,6 @@ ifeq ($(KBUILD_TARGET),darwin) | @@ -647,7 +647,7 @@ VBOX_WITH_MAIN_USB_ID_DATABASE = 1 | ||||
#endif | |||||
# Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems | |||||
# caused by our XPCOM library polluting the symbol namespace for system libs. | |||||
-if1of ($(KBUILD_TARGET), linux solaris) | |||||
+if1of ($(KBUILD_TARGET), freebsd linux solaris) | |||||
VBOX_WITH_XPCOM_NAMESPACE_CLEANUP = 1 | |||||
endif | |||||
# The webservices api. | |||||
@@ -1064,10 +1064,6 @@ ifeq ($(KBUILD_TARGET),darwin) | |||||
VBOX_WITH_VBOXSDL= | VBOX_WITH_VBOXSDL= | ||||
endif | endif | ||||
-ifeq ($(KBUILD_TARGET),freebsd) | -ifeq ($(KBUILD_TARGET),freebsd) | ||||
- VBOX_WITH_DOCS= | - VBOX_WITH_DOCS= | ||||
-endif | -endif | ||||
- | - | ||||
ifeq ($(KBUILD_TARGET),haiku) | ifeq ($(KBUILD_TARGET),haiku) | ||||
# Don't bother with SDL ttf for now. | # Don't bother with SDL ttf for now. | ||||
VBOX_WITH_SECURELABEL= | VBOX_WITH_SECURELABEL= | ||||
@@ -1155,7 +1151,7 @@ ifdef VBOX_OSE | @@ -1228,7 +1224,7 @@ ifdef VBOX_OSE | ||||
VBOX_WITH_KCHMVIEWER= | VBOX_WITH_KCHMVIEWER= | ||||
VBOX_WITH_PLUGIN_CRYPT= | VBOX_WITH_PLUGIN_CRYPT= | ||||
VBOX_WITH_DRAG_AND_DROP_PROMISES= | VBOX_WITH_DRAG_AND_DROP_PROMISES= | ||||
- ifn1of ($(KBUILD_TARGET), linux) | - ifn1of ($(KBUILD_TARGET), linux) | ||||
+ ifn1of ($(KBUILD_TARGET), freebsd linux) | + ifn1of ($(KBUILD_TARGET), freebsd linux) | ||||
VBOX_WITH_DOCS= | VBOX_WITH_DOCS= | ||||
VBOX_WITH_DOCS_PACKING= | VBOX_WITH_DOCS_PACKING= | ||||
endif | endif | ||||
@@ -1176,14 +1172,14 @@ ifdef VBOX_OSE | @@ -4928,7 +4924,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS | ||||
ifn1of ($(KBUILD_TARGET), darwin linux solaris win) | |||||
VBOX_WITH_INSTALLER= | |||||
endif | |||||
- if1of ($(KBUILD_TARGET), win) | |||||
+ # if1of ($(KBUILD_TARGET), win) | |||||
# Undefine codec libraries which are not needed. | |||||
VBOX_WITH_LIBVPX= | |||||
VBOX_WITH_LIBOPUS= | |||||
# Disable video recording (with audio support). | |||||
VBOX_WITH_VIDEOREC= | |||||
VBOX_WITH_AUDIO_VIDEOREC= | |||||
- endif | |||||
+ # endif | |||||
# branding | |||||
VBOX_BRAND_LICENSE_HTML := $(PATH_ROOT)/doc/License-gpl-2.0.html | |||||
VBOX_BRAND_LICENSE_RTF := $(PATH_ROOT)/doc/License-gpl-2.0.rtf | |||||
@@ -1810,6 +1806,7 @@ ifndef VBOX_BLD_PYTHON | |||||
else | |||||
VBOX_BLD_PYTHON := $(firstword $(which python2.7$(HOSTSUFF_EXE)) $(which python2.6$(HOSTSUFF_EXE)) \ | |||||
$(which python$(HOSTSUFF_EXE)) $(which python3$(HOSTSUFF_EXE)) \ | |||||
+ $(which %%PYTHON_VERSION%%) \ | |||||
python-not-found) | |||||
endif | |||||
endif | |||||
@@ -2550,6 +2547,10 @@ ifeq ($(KBUILD_HOST),win) ## @todo can drop this now, | |||||
# This isn't important (yet) on windows, so cook the result until | |||||
# cygwin is feeling better. | |||||
VBOX_GCC_VERSION := $(int-add $(int-mul 10000, 3), $(int-mul 100, 3), 3) | |||||
+else ifeq($(KBUILD_HOST,freebsd)) | |||||
+ # At a minimum, we'll be building with GCC 4.2 on FreeBSD. LLVM will always | |||||
+ # pose as GCC 4.2 anyways, so this seems safe. | |||||
+ VBOX_GCC_VERSION := $(int-add $(int-mul 10000, 4), $(int-mul 100, 2), 0) | |||||
else | |||||
# This is kind of bad, the returned string needs to be re-evaluated before use. | |||||
# The reason for this hack is that the windows kmk_ash cannot deal with $((1+1)). | |||||
@@ -4218,6 +4219,7 @@ ifdef VBOX_WITH_RAW_MODE | |||||
TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC32_TOOL) | |||||
TEMPLATE_VBoxRc_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) | |||||
TEMPLATE_VBoxRc_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK) | |||||
+ TEMPLATE_VBoxRc_CXXFLAGS.freebsd = -fno-builtin | |||||
ifeq ($(KBUILD_TARGET),solaris) | |||||
TEMPLATE_VBoxRc_LDFLAGS = -r | |||||
else | |||||
@@ -4359,6 +4361,7 @@ ifeq ($(VBOX_LDR_FMT),elf) | |||||
TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL) | |||||
TEMPLATE_VBoxR0_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK) | |||||
TEMPLATE_VBoxR0_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) | |||||
+TEMPLATE_VBoxR0_CXXFLAGS.freebsd = -fno-builtin | |||||
TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding | |||||
TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables | |||||
ifeq ($(KBUILD_TARGET),solaris) | |||||
@@ -4683,13 +4686,13 @@ TEMPLATE_VBOXR0DRV_CFLAGS = \ | |||||
-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 | |||||
+TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 | |||||
TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 --param inline-unit-growth=100 --param large-function-growth=1000 \ | |||||
-fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \ | |||||
-mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -Wundef | |||||
TEMPLATE_VBOXR0DRV_CXXFLAGS = -fno-exceptions -fno-rtti \ | |||||
$(VBOX_GCC_WARN) -Wpointer-arith -Winline \ | |||||
- -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \ | |||||
+ -O2 -fno-builtin -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) | |||||
@@ -4716,7 +4719,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS | |||||
| xargs -J% objcopy % $(out) | |||||
## Strip debug info (comment out if debugging or something). | |||||
- objcopy --strip-debug $(out) | |||||
+# objcopy --strip-debug $(out) | |||||
endef | |||||
else # x86 | |||||
TOOL_FREEBSDKMODLD_LINK_SYSMOD_OUTPUT = $(outbase).kld | |||||
@@ -4730,7 +4733,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS | |||||
| xargs -J% objcopy % $(outbase).kld | | xargs -J% objcopy % $(outbase).kld | ||||
# Link the final .ko (a shared object). | # Link the final .ko (a shared object). | ||||
- ld $(flags) -Bshareable -o $(out) $(outbase).kld | - ld $(flags) -Bshareable -o $(out) $(outbase).kld | ||||
+ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld | + ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld | ||||
endef | endef | ||||
endif # x86 | endif # x86 | ||||
@@ -5016,10 +5019,18 @@ TEMPLATE_VBOXR3EXE_LIBPATH += \ | @@ -5205,6 +5201,7 @@ TEMPLATE_VBOXR3EXE_LDFLAGS.x86 = -m32 | ||||
TEMPLATE_VBOXR3EXE_LDFLAGS.amd64 = -m64 | |||||
TEMPLATE_VBOXR3EXE_LDFLAGS.sparc32 = -m32 | |||||
TEMPLATE_VBOXR3EXE_LDFLAGS.sparc64 = -m64 | |||||
+TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) | |||||
TEMPLATE_VBOXR3EXE_LDFLAGS.linux = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) | |||||
TEMPLATE_VBOXR3EXE_LDFLAGS.solaris = -Wl,-z,ignore # same as VBOX_LD_as_needed | |||||
TEMPLATE_VBOXR3EXE_LDFLAGS.debug = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS) | |||||
@@ -5238,10 +5235,18 @@ TEMPLATE_VBOXR3EXE_LIBPATH += \ | |||||
TEMPLATE_VBOXR3EXE_CFLAGS += -fno-pic | TEMPLATE_VBOXR3EXE_CFLAGS += -fno-pic | ||||
TEMPLATE_VBOXR3EXE_CXXFLAGS += -fno-pic | TEMPLATE_VBOXR3EXE_CXXFLAGS += -fno-pic | ||||
TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic | TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic | ||||
- else if1of ($(KBUILD_TARGET), freebsd openbsd) | - else if1of ($(KBUILD_TARGET), freebsd openbsd) | ||||
+ else ifeq ($(KBUILD_TARGET),freebsd) | + else ifeq ($(KBUILD_TARGET),freebsd) | ||||
TEMPLATE_VBOXR3EXE_TOOL = GXX3 | TEMPLATE_VBOXR3EXE_TOOL = GXX3 | ||||
TEMPLATE_VBOXR3EXE_LIBS = pthread | TEMPLATE_VBOXR3EXE_LIBS = pthread | ||||
+TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext | +TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext | ||||
TEMPLATE_VBOXR3EXE_INCS += \ | TEMPLATE_VBOXR3EXE_INCS += \ | ||||
+ /usr/local/include | + /usr/local/include | ||||
+TEMPLATE_VBOXR3EXE_LIBPATH += \ | +TEMPLATE_VBOXR3EXE_LIBPATH += \ | ||||
+ /usr/local/lib | + /usr/local/lib | ||||
+ else ifeq ($(KBUILD_TARGET),openbsd) | + else ifeq ($(KBUILD_TARGET),openbsd) | ||||
+TEMPLATE_VBOXR3EXE_TOOL = GXX3 | +TEMPLATE_VBOXR3EXE_TOOL = GXX3 | ||||
+TEMPLATE_VBOXR3EXE_LIBS = pthread | +TEMPLATE_VBOXR3EXE_LIBS = pthread | ||||
+TEMPLATE_VBOXR3EXE_INCS += \ | +TEMPLATE_VBOXR3EXE_INCS += \ | ||||
/usr/include \ | /usr/include \ | ||||
/usr/X11R6/include \ | /usr/X11R6/include \ | ||||
/usr/local/include | /usr/local/include | ||||
@@ -5310,7 +5321,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT! | @@ -5273,6 +5278,7 @@ TEMPLATE_VBOXR3EXE_CXXFLAGS.kprofile = $(TEMPLATE_VB | ||||
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.win.amd64 = $(TEMPLATE_VBOXR3EXE_LDFLAGS.win.amd64) /entry:suplibHardenedWindowsMain | TEMPLATE_VBOXR3EXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' | ||||
TEMPLATE_VBOXR3HARDENEDEXE_LIBS.x86 = $(NOT_SUCH_VARIABLE) | endif | ||||
TEMPLATE_VBOXR3HARDENEDEXE_LIBS.amd64 = $(NOT_SUCH_VARIABLE) | ifdef VBOX_WITH_ORIGIN | ||||
-else ifn1of ($(KBUILD_TARGET), os2 solaris) | + TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) | ||||
+else ifn1of ($(KBUILD_TARGET), freebsd os2 solaris) | TEMPLATE_VBOXR3EXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) | ||||
endif | |||||
endif | |||||
@@ -5412,7 +5418,7 @@ ifeq ($(KBUILD_TARGET),win) | |||||
$(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \ | |||||
$(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \ | |||||
$(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/oldnames.lib | |||||
-else ifn1of ($(KBUILD_TARGET), darwin linux solaris) | |||||
+else ifn1of ($(KBUILD_TARGET), darwin freebsd linux solaris) | |||||
# The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there) | |||||
TEMPLATE_VBOXR3STATIC_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) -static | |||||
TEMPLATE_VBOXR3STATIC_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) -static | |||||
@@ -5557,6 +5563,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT! | |||||
else ifn1of ($(KBUILD_TARGET), os2 solaris) | |||||
# We want to keep the RPATH on Solaris to be able to find libgcc_1/libstdc++ within $(VBOX_WITH_RUNPATH) | # We want to keep the RPATH on Solaris to be able to find libgcc_1/libstdc++ within $(VBOX_WITH_RUNPATH) | ||||
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) | TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) | ||||
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd)) | |||||
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) | TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) | ||||
@@ -5837,10 +5848,18 @@ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTI | endif | ||||
@@ -5584,6 +5591,7 @@ TEMPLATE_VBoxR3HardenedTstDll_INST = $(INST_TESTCASE) | |||||
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.win = $(TEMPLATE_VBoxR3TstDll_LDFLAGS.win) -IntegrityCheck | |||||
ifn1of ($(KBUILD_TARGET), win os2) | |||||
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS)) | |||||
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd)) | |||||
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux)) | |||||
endif | |||||
@@ -5606,6 +5614,7 @@ ifndef VBOX_WITH_HARDENING | |||||
TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' | |||||
endif | |||||
ifdef VBOX_WITH_ORIGIN | |||||
+ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) | |||||
TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) | |||||
endif | |||||
endif | |||||
@@ -6132,10 +6141,19 @@ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTI | |||||
else ifeq ($(KBUILD_TARGET),haiku) | else ifeq ($(KBUILD_TARGET),haiku) | ||||
TEMPLATE_VBOXMAINEXE_TOOL = GXX3 | TEMPLATE_VBOXMAINEXE_TOOL = GXX3 | ||||
TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) network stdc++ supc++ | TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) network stdc++ supc++ | ||||
- else if1of ($(KBUILD_TARGET), freebsd openbsd) | - else if1of ($(KBUILD_TARGET), freebsd openbsd) | ||||
+ else ifeq ($(KBUILD_TARGET),freebsd) | + else ifeq ($(KBUILD_TARGET),freebsd) | ||||
TEMPLATE_VBOXMAINEXE_TOOL = GXX3 | TEMPLATE_VBOXMAINEXE_TOOL = GXX3 | ||||
TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) | TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) | ||||
+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) | |||||
+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext | +TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext | ||||
TEMPLATE_VBOXMAINEXE_INCS += \ | TEMPLATE_VBOXMAINEXE_INCS += \ | ||||
+ /usr/local/include | + /usr/local/include | ||||
+TEMPLATE_VBOXMAINEXE_LIBPATH += \ | +TEMPLATE_VBOXMAINEXE_LIBPATH += \ | ||||
+ /usr/local/lib | + /usr/local/lib | ||||
+ else ifeq ($(KBUILD_TARGET),openbsd) | + else ifeq ($(KBUILD_TARGET),openbsd) | ||||
+TEMPLATE_VBOXMAINEXE_TOOL = GXX3 | +TEMPLATE_VBOXMAINEXE_TOOL = GXX3 | ||||
+TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) | +TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) | ||||
+TEMPLATE_VBOXMAINEXE_INCS += \ | +TEMPLATE_VBOXMAINEXE_INCS += \ | ||||
/usr/include \ | /usr/include \ | ||||
/usr/X11R6/include \ | /usr/X11R6/include \ | ||||
/usr/local/include | /usr/local/include | ||||
@@ -6382,13 +6401,10 @@ ifdef VBOX_WITH_QTGUI | @@ -6167,6 +6185,7 @@ TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC | ||||
TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' | |||||
endif | |||||
ifdef VBOX_WITH_ORIGIN | |||||
+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) | |||||
TEMPLATE_VBOXMAINEXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) | |||||
endif | |||||
@@ -6735,13 +6754,11 @@ ifdef VBOX_WITH_QTGUI | |||||
TEMPLATE_VBOXQTGUIEXE_LIBPATH += \ | TEMPLATE_VBOXQTGUIEXE_LIBPATH += \ | ||||
$(VBOX_LIBPATH_X11) | $(VBOX_LIBPATH_X11) | ||||
ifeq ($(KBUILD_TARGET),freebsd) | ifeq ($(KBUILD_TARGET),freebsd) | ||||
+ TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) | |||||
+ TEMPLATE_VBOXQTGUIEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext | + TEMPLATE_VBOXQTGUIEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext | ||||
TEMPLATE_VBOXQTGUIEXE_INCS += \ | TEMPLATE_VBOXQTGUIEXE_INCS += \ | ||||
- /usr/include \ | - /usr/include \ | ||||
- /usr/X11R6/include \ | - /usr/X11R6/include \ | ||||
/usr/local/include | /usr/local/include | ||||
TEMPLATE_VBOXQTGUIEXE_LIBPATH += \ | TEMPLATE_VBOXQTGUIEXE_LIBPATH += \ | ||||
- /usr/lib \ | - /usr/lib \ | ||||
- /usr/X11R6/lib \ | - /usr/X11R6/lib \ | ||||
/usr/local/lib | /usr/local/lib | ||||
endif | endif | ||||
ifeq ($(KBUILD_TARGET),solaris) | ifeq ($(KBUILD_TARGET),solaris) | ||||
@@ -6617,12 +6633,8 @@ TEMPLATE_VBoxBldProg_LIBPATH += \ | @@ -6988,10 +7005,17 @@ TEMPLATE_VBoxBldProg_TOOL = GXX3 | ||||
TEMPLATE_VBoxBldProg_LIBS = network iconv | |||||
TEMPLATE_VBoxBldProg_LIBPATH += \ | |||||
/boot/common/lib | |||||
- else if1of ($(KBUILD_HOST), freebsd openbsd) | |||||
+ else ifeq ($(KBUILD_HOST),freebsd) | |||||
TEMPLATE_VBoxBldProg_TOOL = GXX3 | TEMPLATE_VBoxBldProg_TOOL = GXX3 | ||||
TEMPLATE_VBoxBldProg_LIBS = pthread | TEMPLATE_VBoxBldProg_LIBS = pthread | ||||
TEMPLATE_VBoxBldProg_INCS += \ | TEMPLATE_VBoxBldProg_INCS += \ | ||||
- /usr/include \ | + /usr/local/include | ||||
- /usr/X11R6/include \ | +TEMPLATE_VBoxBldProg_LIBPATH += \ | ||||
+ /usr/local/lib | |||||
+ else ifeq ($(KBUILD_HOST),openbsd) | |||||
+TEMPLATE_VBoxBldProg_TOOL = GXX3 | |||||
+TEMPLATE_VBoxBldProg_LIBS = pthread | |||||
+TEMPLATE_VBoxBldProg_INCS += \ | |||||
/usr/include \ | |||||
/usr/X11R6/include \ | |||||
/usr/local/include | /usr/local/include | ||||
TEMPLATE_VBoxBldProg_LIBPATH += \ | @@ -7115,6 +7139,7 @@ else # the gcc guys | ||||
- /usr/lib \ | # Do not inherit sanitizer flags from VBOXR3EXE in guest executables. Deal with them separately. | ||||
- /usr/X11R6/lib \ | TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.debug = $(NO_SUCH_VARIABLE) | ||||
/usr/local/lib | TEMPLATE_VBOXGUESTR3EXE_CFLAGS.debug = $(NO_SUCH_VARIABLE) | ||||
else ifeq ($(KBUILD_HOST),netbsd) | + TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd)) | ||||
TEMPLATE_VBoxBldProg_TOOL = GXX3 | TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) | ||||
@@ -7008,7 +7020,7 @@ | TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.debug = $(NO_SUCH_VARIABLE) | ||||
TEMPLATE_VBOXGUESTR3EXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) | |||||
@@ -7138,6 +7163,7 @@ TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux = \ | |||||
$(VBOX_GCC_fno-stack-protector) | |||||
TEMPLATE_VBOXGUESTR3EXE_CFLAGS.linux = $(TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux) | |||||
# The GNU_HASH ELF tag is not supported by older systems. | |||||
+TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd += $(VBOX_LD_hash_style_sysv) | |||||
TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv) | |||||
# | # | ||||
TEMPLATE_VBOXCROGLR3HOSTDLL = VBox OpenGL Host DLLs | @@ -7345,6 +7371,7 @@ TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TYPE) = | ||||
TEMPLATE_VBOXCROGLR3HOSTDLL_EXTENDS := $(if-expr "$(KBUILD_TARGET)" == "win",VBOXR3,VBOXR3NP) | TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) | ||||
-TEMPLATE_VBOXCROGLR3HOSTDLL_EXTENDS_BY = prepending | TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) | ||||
+TEMPLATE_VBOXCROGLR3HOSTDLL_EXTENDS_BY = appending | # The GNU_HASH ELF tag is not supported by older glibc dynamic linkers. | ||||
TEMPLATE_VBOXCROGLR3HOSTDLL_DEFS = VBOX_WITH_HGCM UNPACKS | +TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.freebsd = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) | ||||
TEMPLATE_VBOXCROGLR3HOSTDLL_DEFS.win = _WIN32_WINNT=0x0500 WINDOWS=1 | TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) | ||||
TEMPLATE_VBOXCROGLR3HOSTDLL_DEFS.linux = Linux=1 _GNU_SOURCE | TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE) | ||||
@@ -7023,6 +7035,7 @@ TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.darwin += \ | TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS = -r | ||||
-current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ | |||||
-compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) | |||||
TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.linux = -Wl,--no-as-needed | |||||
+TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.freebsd = -Wl,--no-as-needed | |||||
TEMPLATE_VBOXCROGLR3HOSTDLL_BLDDIRS = $(VBOX_PATH_CROGL_GENFILES)/ | |||||
ifeq ($(KBUILD_TARGET),darwin) | |||||
TEMPLATE_VBOXCROGLR3HOSTDLL_CFLAGS = $(TEMPLATE_VBOXR3NP_CFLAGS) -Wno-deprecated-declarations |