Lines 1-6
Link Here
|
1 |
--- Config.kmk.orig 2020-07-09 16:49:46 UTC |
1 |
--- Config.kmk.orig 2021-01-07 15:31:21 UTC |
2 |
+++ Config.kmk |
2 |
+++ Config.kmk |
3 |
@@ -445,11 +445,11 @@ ifn1of ($(KBUILD_TARGET), win darwin) |
3 |
@@ -469,11 +469,11 @@ ifn1of ($(KBUILD_TARGET), win darwin) |
4 |
# Enable OSS audio support. |
4 |
# Enable OSS audio support. |
5 |
VBOX_WITH_AUDIO_OSS = 1 |
5 |
VBOX_WITH_AUDIO_OSS = 1 |
6 |
endif |
6 |
endif |
Lines 14-22
Link Here
|
14 |
# Enable PulseAudio audio support. |
14 |
# Enable PulseAudio audio support. |
15 |
VBOX_WITH_AUDIO_PULSE = 1 |
15 |
VBOX_WITH_AUDIO_PULSE = 1 |
16 |
endif |
16 |
endif |
17 |
@@ -464,11 +464,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1 |
17 |
@@ -489,11 +489,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1 |
18 |
# Enable PCI passthrough support. |
18 |
# (disabled with 6.1, since it's not complete/useful enough) |
19 |
VBOX_WITH_PCI_PASSTHROUGH = 1 |
19 |
VBOX_WITH_PCI_PASSTHROUGH = |
20 |
# Enable statically linked dbus support. |
20 |
# Enable statically linked dbus support. |
21 |
-if1of ($(KBUILD_TARGET), linux solaris) |
21 |
-if1of ($(KBUILD_TARGET), linux solaris) |
22 |
+if1of ($(KBUILD_TARGET), freebsd linux solaris) |
22 |
+if1of ($(KBUILD_TARGET), freebsd linux solaris) |
Lines 28-43
Link Here
|
28 |
VBOX_WITH_PAM = 1 |
28 |
VBOX_WITH_PAM = 1 |
29 |
endif |
29 |
endif |
30 |
# Enable internal networking. |
30 |
# Enable internal networking. |
31 |
@@ -664,7 +664,7 @@ VBOX_WITH_TESTCASES = 1 |
31 |
@@ -501,7 +501,7 @@ VBOX_WITH_INTERNAL_NETWORKING = 1 |
32 |
VBOX_WITH_VDITOOL = |
32 |
# Enable vmsvga (svga2) graphics device variant, 2D part |
33 |
# Enable this to build vbox-img even if VBOX_WITH_TESTCASES is disabled |
33 |
VBOX_WITH_VMSVGA = 1 |
34 |
VBOX_WITH_VBOX_IMG = |
34 |
# Enable vmsvga (svga2) graphics device variant, 3D part |
35 |
-if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.x86 darwin.amd64 linux.x86 linux.amd64 solaris.amd64 win.x86 win.amd64) |
35 |
-if1of ($(KBUILD_TARGET), darwin linux win) |
36 |
+if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.x86 darwin.amd64 freebsd.x86 freebsd.amd64 linux.x86 linux.amd64 solaris.amd64 win.x86 win.amd64) |
36 |
+if1of ($(KBUILD_TARGET), darwin freebsd linux win) |
37 |
# Enables the video capturing support. |
37 |
VBOX_WITH_VMSVGA3D = 1 |
38 |
VBOX_WITH_VIDEOREC = 1 |
38 |
endif |
39 |
# Enable VPX (VP8 / VP9 codec), used for video capturing. |
39 |
# Enable the generic 3D settings support if at least one 3D capable solution is enabled |
40 |
@@ -992,10 +992,6 @@ ifeq ($(KBUILD_TARGET),darwin) |
40 |
@@ -647,7 +647,7 @@ VBOX_WITH_MAIN_USB_ID_DATABASE = 1 |
|
|
41 |
#endif |
42 |
# Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems |
43 |
# caused by our XPCOM library polluting the symbol namespace for system libs. |
44 |
-if1of ($(KBUILD_TARGET), linux solaris) |
45 |
+if1of ($(KBUILD_TARGET), freebsd linux solaris) |
46 |
VBOX_WITH_XPCOM_NAMESPACE_CLEANUP = 1 |
47 |
endif |
48 |
# The webservices api. |
49 |
@@ -1064,10 +1064,6 @@ ifeq ($(KBUILD_TARGET),darwin) |
41 |
VBOX_WITH_VBOXSDL= |
50 |
VBOX_WITH_VBOXSDL= |
42 |
endif |
51 |
endif |
43 |
|
52 |
|
Lines 48-54
Link Here
|
48 |
ifeq ($(KBUILD_TARGET),haiku) |
57 |
ifeq ($(KBUILD_TARGET),haiku) |
49 |
# Don't bother with SDL ttf for now. |
58 |
# Don't bother with SDL ttf for now. |
50 |
VBOX_WITH_SECURELABEL= |
59 |
VBOX_WITH_SECURELABEL= |
51 |
@@ -1155,7 +1151,7 @@ ifdef VBOX_OSE |
60 |
@@ -1228,7 +1224,7 @@ ifdef VBOX_OSE |
52 |
VBOX_WITH_KCHMVIEWER= |
61 |
VBOX_WITH_KCHMVIEWER= |
53 |
VBOX_WITH_PLUGIN_CRYPT= |
62 |
VBOX_WITH_PLUGIN_CRYPT= |
54 |
VBOX_WITH_DRAG_AND_DROP_PROMISES= |
63 |
VBOX_WITH_DRAG_AND_DROP_PROMISES= |
Lines 57-149
Link Here
|
57 |
VBOX_WITH_DOCS= |
66 |
VBOX_WITH_DOCS= |
58 |
VBOX_WITH_DOCS_PACKING= |
67 |
VBOX_WITH_DOCS_PACKING= |
59 |
endif |
68 |
endif |
60 |
@@ -1176,14 +1172,14 @@ ifdef VBOX_OSE |
69 |
@@ -4928,7 +4924,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS |
61 |
ifn1of ($(KBUILD_TARGET), darwin linux solaris win) |
|
|
62 |
VBOX_WITH_INSTALLER= |
63 |
endif |
64 |
- if1of ($(KBUILD_TARGET), win) |
65 |
+ # if1of ($(KBUILD_TARGET), win) |
66 |
# Undefine codec libraries which are not needed. |
67 |
VBOX_WITH_LIBVPX= |
68 |
VBOX_WITH_LIBOPUS= |
69 |
# Disable video recording (with audio support). |
70 |
VBOX_WITH_VIDEOREC= |
71 |
VBOX_WITH_AUDIO_VIDEOREC= |
72 |
- endif |
73 |
+ # endif |
74 |
# branding |
75 |
VBOX_BRAND_LICENSE_HTML := $(PATH_ROOT)/doc/License-gpl-2.0.html |
76 |
VBOX_BRAND_LICENSE_RTF := $(PATH_ROOT)/doc/License-gpl-2.0.rtf |
77 |
@@ -1810,6 +1806,7 @@ ifndef VBOX_BLD_PYTHON |
78 |
else |
79 |
VBOX_BLD_PYTHON := $(firstword $(which python2.7$(HOSTSUFF_EXE)) $(which python2.6$(HOSTSUFF_EXE)) \ |
80 |
$(which python$(HOSTSUFF_EXE)) $(which python3$(HOSTSUFF_EXE)) \ |
81 |
+ $(which %%PYTHON_VERSION%%) \ |
82 |
python-not-found) |
83 |
endif |
84 |
endif |
85 |
@@ -2550,6 +2547,10 @@ ifeq ($(KBUILD_HOST),win) ## @todo can drop this now, |
86 |
# This isn't important (yet) on windows, so cook the result until |
87 |
# cygwin is feeling better. |
88 |
VBOX_GCC_VERSION := $(int-add $(int-mul 10000, 3), $(int-mul 100, 3), 3) |
89 |
+else ifeq($(KBUILD_HOST,freebsd)) |
90 |
+ # At a minimum, we'll be building with GCC 4.2 on FreeBSD. LLVM will always |
91 |
+ # pose as GCC 4.2 anyways, so this seems safe. |
92 |
+ VBOX_GCC_VERSION := $(int-add $(int-mul 10000, 4), $(int-mul 100, 2), 0) |
93 |
else |
94 |
# This is kind of bad, the returned string needs to be re-evaluated before use. |
95 |
# The reason for this hack is that the windows kmk_ash cannot deal with $((1+1)). |
96 |
@@ -4218,6 +4219,7 @@ ifdef VBOX_WITH_RAW_MODE |
97 |
TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC32_TOOL) |
98 |
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) |
99 |
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) |
100 |
+ TEMPLATE_VBoxRc_CXXFLAGS.freebsd = -fno-builtin |
101 |
ifeq ($(KBUILD_TARGET),solaris) |
102 |
TEMPLATE_VBoxRc_LDFLAGS = -r |
103 |
else |
104 |
@@ -4359,6 +4361,7 @@ ifeq ($(VBOX_LDR_FMT),elf) |
105 |
TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL) |
106 |
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) |
107 |
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) |
108 |
+TEMPLATE_VBoxR0_CXXFLAGS.freebsd = -fno-builtin |
109 |
TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding |
110 |
TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables |
111 |
ifeq ($(KBUILD_TARGET),solaris) |
112 |
@@ -4683,13 +4686,13 @@ TEMPLATE_VBOXR0DRV_CFLAGS = \ |
113 |
-O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \ |
114 |
$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ |
115 |
-nostdinc -std=c99 |
116 |
-TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 |
117 |
+TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 |
118 |
TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 --param inline-unit-growth=100 --param large-function-growth=1000 \ |
119 |
-fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \ |
120 |
-mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -Wundef |
121 |
TEMPLATE_VBOXR0DRV_CXXFLAGS = -fno-exceptions -fno-rtti \ |
122 |
$(VBOX_GCC_WARN) -Wpointer-arith -Winline \ |
123 |
- -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \ |
124 |
+ -O2 -fno-builtin -fno-strict-aliasing -fno-common -finline-limit=8000 \ |
125 |
$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ |
126 |
-nostdinc |
127 |
TEMPLATE_VBOXR0DRV_CXXFLAGS.x86 = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86) |
128 |
@@ -4716,7 +4719,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS |
129 |
| xargs -J% objcopy % $(out) |
130 |
|
131 |
## Strip debug info (comment out if debugging or something). |
132 |
- objcopy --strip-debug $(out) |
133 |
+# objcopy --strip-debug $(out) |
134 |
endef |
135 |
else # x86 |
136 |
TOOL_FREEBSDKMODLD_LINK_SYSMOD_OUTPUT = $(outbase).kld |
137 |
@@ -4730,7 +4733,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS |
138 |
| xargs -J% objcopy % $(outbase).kld |
70 |
| xargs -J% objcopy % $(outbase).kld |
139 |
|
71 |
|
140 |
# Link the final .ko (a shared object). |
72 |
# Link the final .ko (a shared object). |
141 |
- ld $(flags) -Bshareable -o $(out) $(outbase).kld |
73 |
- ld $(flags) -Bshareable -o $(out) $(outbase).kld |
142 |
+ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld |
74 |
+ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld |
143 |
endef |
75 |
endef |
144 |
endif # x86 |
76 |
endif # x86 |
145 |
|
77 |
|
146 |
@@ -5016,10 +5019,18 @@ TEMPLATE_VBOXR3EXE_LIBPATH += \ |
78 |
@@ -5205,6 +5201,7 @@ TEMPLATE_VBOXR3EXE_LDFLAGS.x86 = -m32 |
|
|
79 |
TEMPLATE_VBOXR3EXE_LDFLAGS.amd64 = -m64 |
80 |
TEMPLATE_VBOXR3EXE_LDFLAGS.sparc32 = -m32 |
81 |
TEMPLATE_VBOXR3EXE_LDFLAGS.sparc64 = -m64 |
82 |
+TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) |
83 |
TEMPLATE_VBOXR3EXE_LDFLAGS.linux = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) |
84 |
TEMPLATE_VBOXR3EXE_LDFLAGS.solaris = -Wl,-z,ignore # same as VBOX_LD_as_needed |
85 |
TEMPLATE_VBOXR3EXE_LDFLAGS.debug = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS) |
86 |
@@ -5238,10 +5235,18 @@ TEMPLATE_VBOXR3EXE_LIBPATH += \ |
147 |
TEMPLATE_VBOXR3EXE_CFLAGS += -fno-pic |
87 |
TEMPLATE_VBOXR3EXE_CFLAGS += -fno-pic |
148 |
TEMPLATE_VBOXR3EXE_CXXFLAGS += -fno-pic |
88 |
TEMPLATE_VBOXR3EXE_CXXFLAGS += -fno-pic |
149 |
TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic |
89 |
TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic |
Lines 163-178
Link Here
|
163 |
/usr/include \ |
103 |
/usr/include \ |
164 |
/usr/X11R6/include \ |
104 |
/usr/X11R6/include \ |
165 |
/usr/local/include |
105 |
/usr/local/include |
166 |
@@ -5310,7 +5321,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT! |
106 |
@@ -5273,6 +5278,7 @@ TEMPLATE_VBOXR3EXE_CXXFLAGS.kprofile = $(TEMPLATE_VB |
167 |
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.win.amd64 = $(TEMPLATE_VBOXR3EXE_LDFLAGS.win.amd64) /entry:suplibHardenedWindowsMain |
107 |
TEMPLATE_VBOXR3EXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' |
168 |
TEMPLATE_VBOXR3HARDENEDEXE_LIBS.x86 = $(NOT_SUCH_VARIABLE) |
108 |
endif |
169 |
TEMPLATE_VBOXR3HARDENEDEXE_LIBS.amd64 = $(NOT_SUCH_VARIABLE) |
109 |
ifdef VBOX_WITH_ORIGIN |
170 |
-else ifn1of ($(KBUILD_TARGET), os2 solaris) |
110 |
+ TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) |
171 |
+else ifn1of ($(KBUILD_TARGET), freebsd os2 solaris) |
111 |
TEMPLATE_VBOXR3EXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) |
|
|
112 |
endif |
113 |
endif |
114 |
@@ -5412,7 +5418,7 @@ ifeq ($(KBUILD_TARGET),win) |
115 |
$(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \ |
116 |
$(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \ |
117 |
$(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/oldnames.lib |
118 |
-else ifn1of ($(KBUILD_TARGET), darwin linux solaris) |
119 |
+else ifn1of ($(KBUILD_TARGET), darwin freebsd linux solaris) |
120 |
# The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there) |
121 |
TEMPLATE_VBOXR3STATIC_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) -static |
122 |
TEMPLATE_VBOXR3STATIC_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) -static |
123 |
@@ -5557,6 +5563,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT! |
124 |
else ifn1of ($(KBUILD_TARGET), os2 solaris) |
172 |
# We want to keep the RPATH on Solaris to be able to find libgcc_1/libstdc++ within $(VBOX_WITH_RUNPATH) |
125 |
# We want to keep the RPATH on Solaris to be able to find libgcc_1/libstdc++ within $(VBOX_WITH_RUNPATH) |
173 |
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) |
126 |
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) |
|
|
127 |
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd)) |
174 |
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) |
128 |
TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) |
175 |
@@ -5837,10 +5848,18 @@ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTI |
129 |
endif |
|
|
130 |
|
131 |
@@ -5584,6 +5591,7 @@ TEMPLATE_VBoxR3HardenedTstDll_INST = $(INST_TESTCASE) |
132 |
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.win = $(TEMPLATE_VBoxR3TstDll_LDFLAGS.win) -IntegrityCheck |
133 |
ifn1of ($(KBUILD_TARGET), win os2) |
134 |
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS)) |
135 |
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd)) |
136 |
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux)) |
137 |
endif |
138 |
|
139 |
@@ -5606,6 +5614,7 @@ ifndef VBOX_WITH_HARDENING |
140 |
TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' |
141 |
endif |
142 |
ifdef VBOX_WITH_ORIGIN |
143 |
+ TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) |
144 |
TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) |
145 |
endif |
146 |
endif |
147 |
@@ -6132,10 +6141,19 @@ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTI |
176 |
else ifeq ($(KBUILD_TARGET),haiku) |
148 |
else ifeq ($(KBUILD_TARGET),haiku) |
177 |
TEMPLATE_VBOXMAINEXE_TOOL = GXX3 |
149 |
TEMPLATE_VBOXMAINEXE_TOOL = GXX3 |
178 |
TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) network stdc++ supc++ |
150 |
TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) network stdc++ supc++ |
Lines 180-185
Link Here
|
180 |
+ else ifeq ($(KBUILD_TARGET),freebsd) |
152 |
+ else ifeq ($(KBUILD_TARGET),freebsd) |
181 |
TEMPLATE_VBOXMAINEXE_TOOL = GXX3 |
153 |
TEMPLATE_VBOXMAINEXE_TOOL = GXX3 |
182 |
TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) |
154 |
TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) |
|
|
155 |
+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) |
183 |
+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext |
156 |
+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext |
184 |
TEMPLATE_VBOXMAINEXE_INCS += \ |
157 |
TEMPLATE_VBOXMAINEXE_INCS += \ |
185 |
+ /usr/local/include |
158 |
+ /usr/local/include |
Lines 192-201
Link Here
|
192 |
/usr/include \ |
165 |
/usr/include \ |
193 |
/usr/X11R6/include \ |
166 |
/usr/X11R6/include \ |
194 |
/usr/local/include |
167 |
/usr/local/include |
195 |
@@ -6382,13 +6401,10 @@ ifdef VBOX_WITH_QTGUI |
168 |
@@ -6167,6 +6185,7 @@ TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC |
|
|
169 |
TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)' |
170 |
endif |
171 |
ifdef VBOX_WITH_ORIGIN |
172 |
+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT) |
173 |
TEMPLATE_VBOXMAINEXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT) |
174 |
endif |
175 |
|
176 |
@@ -6735,13 +6754,11 @@ ifdef VBOX_WITH_QTGUI |
196 |
TEMPLATE_VBOXQTGUIEXE_LIBPATH += \ |
177 |
TEMPLATE_VBOXQTGUIEXE_LIBPATH += \ |
197 |
$(VBOX_LIBPATH_X11) |
178 |
$(VBOX_LIBPATH_X11) |
198 |
ifeq ($(KBUILD_TARGET),freebsd) |
179 |
ifeq ($(KBUILD_TARGET),freebsd) |
|
|
180 |
+ TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed) |
199 |
+ TEMPLATE_VBOXQTGUIEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext |
181 |
+ TEMPLATE_VBOXQTGUIEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext |
200 |
TEMPLATE_VBOXQTGUIEXE_INCS += \ |
182 |
TEMPLATE_VBOXQTGUIEXE_INCS += \ |
201 |
- /usr/include \ |
183 |
- /usr/include \ |
Lines 207-239
Link Here
|
207 |
/usr/local/lib |
189 |
/usr/local/lib |
208 |
endif |
190 |
endif |
209 |
ifeq ($(KBUILD_TARGET),solaris) |
191 |
ifeq ($(KBUILD_TARGET),solaris) |
210 |
@@ -6617,12 +6633,8 @@ TEMPLATE_VBoxBldProg_LIBPATH += \ |
192 |
@@ -6988,10 +7005,17 @@ TEMPLATE_VBoxBldProg_TOOL = GXX3 |
|
|
193 |
TEMPLATE_VBoxBldProg_LIBS = network iconv |
194 |
TEMPLATE_VBoxBldProg_LIBPATH += \ |
195 |
/boot/common/lib |
196 |
- else if1of ($(KBUILD_HOST), freebsd openbsd) |
197 |
+ else ifeq ($(KBUILD_HOST),freebsd) |
211 |
TEMPLATE_VBoxBldProg_TOOL = GXX3 |
198 |
TEMPLATE_VBoxBldProg_TOOL = GXX3 |
212 |
TEMPLATE_VBoxBldProg_LIBS = pthread |
199 |
TEMPLATE_VBoxBldProg_LIBS = pthread |
213 |
TEMPLATE_VBoxBldProg_INCS += \ |
200 |
TEMPLATE_VBoxBldProg_INCS += \ |
214 |
- /usr/include \ |
201 |
+ /usr/local/include |
215 |
- /usr/X11R6/include \ |
202 |
+TEMPLATE_VBoxBldProg_LIBPATH += \ |
|
|
203 |
+ /usr/local/lib |
204 |
+ else ifeq ($(KBUILD_HOST),openbsd) |
205 |
+TEMPLATE_VBoxBldProg_TOOL = GXX3 |
206 |
+TEMPLATE_VBoxBldProg_LIBS = pthread |
207 |
+TEMPLATE_VBoxBldProg_INCS += \ |
208 |
/usr/include \ |
209 |
/usr/X11R6/include \ |
216 |
/usr/local/include |
210 |
/usr/local/include |
217 |
TEMPLATE_VBoxBldProg_LIBPATH += \ |
211 |
@@ -7115,6 +7139,7 @@ else # the gcc guys |
218 |
- /usr/lib \ |
212 |
# Do not inherit sanitizer flags from VBOXR3EXE in guest executables. Deal with them separately. |
219 |
- /usr/X11R6/lib \ |
213 |
TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.debug = $(NO_SUCH_VARIABLE) |
220 |
/usr/local/lib |
214 |
TEMPLATE_VBOXGUESTR3EXE_CFLAGS.debug = $(NO_SUCH_VARIABLE) |
221 |
else ifeq ($(KBUILD_HOST),netbsd) |
215 |
+ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd)) |
222 |
TEMPLATE_VBoxBldProg_TOOL = GXX3 |
216 |
TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) |
223 |
@@ -7008,7 +7020,7 @@ |
217 |
TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.debug = $(NO_SUCH_VARIABLE) |
|
|
218 |
TEMPLATE_VBOXGUESTR3EXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) |
219 |
@@ -7138,6 +7163,7 @@ TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux = \ |
220 |
$(VBOX_GCC_fno-stack-protector) |
221 |
TEMPLATE_VBOXGUESTR3EXE_CFLAGS.linux = $(TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux) |
222 |
# The GNU_HASH ELF tag is not supported by older systems. |
223 |
+TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd += $(VBOX_LD_hash_style_sysv) |
224 |
TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv) |
225 |
|
224 |
# |
226 |
# |
225 |
TEMPLATE_VBOXCROGLR3HOSTDLL = VBox OpenGL Host DLLs |
227 |
@@ -7345,6 +7371,7 @@ TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TYPE) = |
226 |
TEMPLATE_VBOXCROGLR3HOSTDLL_EXTENDS := $(if-expr "$(KBUILD_TARGET)" == "win",VBOXR3,VBOXR3NP) |
228 |
TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) |
227 |
-TEMPLATE_VBOXCROGLR3HOSTDLL_EXTENDS_BY = prepending |
229 |
TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE) |
228 |
+TEMPLATE_VBOXCROGLR3HOSTDLL_EXTENDS_BY = appending |
230 |
# The GNU_HASH ELF tag is not supported by older glibc dynamic linkers. |
229 |
TEMPLATE_VBOXCROGLR3HOSTDLL_DEFS = VBOX_WITH_HGCM UNPACKS |
231 |
+TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.freebsd = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) |
230 |
TEMPLATE_VBOXCROGLR3HOSTDLL_DEFS.win = _WIN32_WINNT=0x0500 WINDOWS=1 |
232 |
TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv)) |
231 |
TEMPLATE_VBOXCROGLR3HOSTDLL_DEFS.linux = Linux=1 _GNU_SOURCE |
233 |
TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE) |
232 |
@@ -7023,6 +7035,7 @@ TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.darwin += \ |
234 |
TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS = -r |
233 |
-current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ |
|
|
234 |
-compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) |
235 |
TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.linux = -Wl,--no-as-needed |
236 |
+TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.freebsd = -Wl,--no-as-needed |
237 |
TEMPLATE_VBOXCROGLR3HOSTDLL_BLDDIRS = $(VBOX_PATH_CROGL_GENFILES)/ |
238 |
ifeq ($(KBUILD_TARGET),darwin) |
239 |
TEMPLATE_VBOXCROGLR3HOSTDLL_CFLAGS = $(TEMPLATE_VBOXR3NP_CFLAGS) -Wno-deprecated-declarations |