xref: /xnu-12377.1.9/tests/Makefile (revision f6217f891ac0bb64f3d375211650a4c1ff8ca1ea)
1PROJECT := xnu/darwintests
2
3include disabled.mk
4
5# When building as part of xnu_tests, we get passed a DSTROOT that's got the
6# unit test path in it already.  But, BASEDSTROOT doesn't, so use that instead.
7ifdef BASEDSTROOT
8override DSTROOT = $(BASEDSTROOT)
9endif
10
11INVALID_ARCHS = i386 $(filter armv7%,$(ARCH_CONFIGS))
12ENABLE_LTE_TESTS=YES
13
14OTHER_LTE_INCLUDE_FILES += \
15	/System/Library/PrivateFrameworks/LoggingSupport.framework, \
16	/System/Library/PrivateFrameworks/MobileKeyBag.framework, \
17	/System/Library/Frameworks/IOSurface.framework, \
18	/usr/local/lib/libdarwintest_utils.dylib, \
19	/usr/lib/libapple_crypto.dylib,
20
21ENV = /usr/bin/env
22
23DEVELOPER_DIR ?= $(shell xcode-select -p)
24
25
26ifeq ($(origin TIGHTBEAM_MODULE_DIR),undefined)
27	export TIGHTBEAM_MODULE_DIR := $(shell /usr/bin/xcrun --show-sdk-path -sdk $(SDKROOT))/usr/local/lib/kernel/tightbeam
28endif
29
30USE_WERROR := 1
31ifneq ($(BUILD_WERROR),)
32USE_WERROR := $(BUILD_WERROR)
33endif
34
35ifeq ($(USE_WERROR),1)
36WERROR := -Werror
37endif
38
39# the xnu build system will only ever call us with the default target
40.DEFAULT_GOAL := install
41
42include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.common
43
44OTHER_CFLAGS  = -Wall
45OTHER_CFLAGS += -Wno-deprecated-declarations
46OTHER_CFLAGS += -Werror=excess-initializers
47OTHER_CFLAGS += -Wno-c2x-extensions
48OTHER_CFLAGS += -Werror=excess-initializers
49OTHER_CFLAGS += --std=gnu17 -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
50OTHER_CFLAGS += -UT_NAMESPACE_PREFIX -DT_NAMESPACE_PREFIX=xnu -DT_LEAKS_DISABLE=1
51OTHER_CFLAGS += -F $(SDKROOT)/System/Library/PrivateFrameworks
52
53ipc/%: OTHER_CFLAGS += -Wno-format-pedantic $(WERROR)
54
55
56CODESIGN:=$(shell xcrun -sdk "$(TARGETSDK)" -find codesign)
57CODESIGN_HARDENED_RUNTIME:=$(CODESIGN) -o runtime
58CODESIGN_ALLOCATE:=$(shell xcrun -sdk "$(TARGETSDK)" -find codesign_allocate)
59
60LIPO:=$(shell xcrun -sdk "$(TARGETSDK)" -find lipo)
61
62ifeq ($(PLATFORM),iPhoneOS)
63  IOS_TEST_COMPAT = YES
64else
65  IOS_TEST_COMPAT = NO
66endif
67
68# Generate tightbeam header for ExclavesCHelloServer from tbmodule in the SDK
69ifneq ($(wildcard $(SDKROOT)/System/Library/PrivateFrameworks/Tightbeam.framework/Headers/tightbeam.h),)
70TIGHTBEAM_MODULES := \
71	ExclavesCHelloServer.tbmodule
72
73TIGHTBEAM_MODULE_HEADERS := $(patsubst %.tbmodule,%.tightbeam.h,$(TIGHTBEAM_MODULES))
74TIGHTBEAM_MODULE_IMPL := $(patsubst %.tbmodule,%.tightbeam.c,$(TIGHTBEAM_MODULES))
75
76# This makes sure to not include any tbmodules which don't exist in the SDK and
77# expand the modules listed above to their full path in the SDK. The modules
78# should only be needed when actually building with CONFIG_EXCLAVES
79# (which can't easily be checked here).
80TIGHTBEAM_MODULES := $(patsubst %.tbmodule,$(TIGHTBEAM_MODULE_DIR)/%.tbmodule,$(TIGHTBEAM_MODULES))
81TIGHTBEAM_MODULES := $(wildcard $(TIGHTBEAM_MODULES))
82TIGHTBEAM_MODULE_IMPL_PATH := $(addprefix $(OBJROOT)/, $(TIGHTBEAM_MODULE_IMPL))
83
84$(TIGHTBEAM_MODULE_IMPL) : \
85	%.tightbeam.c : $(TIGHTBEAM_MODULES)
86	$(TIGHTBEAMC) build generate-c --output-base $(OBJROOT)/$*.tightbeam.c --codegen-version 2 $<
87
88$(TIGHTBEAM_MODULE_HEADERS) : $(TIGHTBEAM_MODULE_IMPL)
89endif
90
91# Subsystems
92
93include ktrace/Makefile
94
95INCLUDED_TEST_SOURCE_DIRS += recount
96include recount/Makefile
97INCLUDED_TEST_SOURCE_DIRS += cpu_counters
98include cpu_counters/Makefile
99
100INCLUDED_TEST_SOURCE_DIRS += sched
101include sched/Makefile
102
103# Miscellaneous Tests
104
105mach_eventlink: OTHER_LDFLAGS += $(SCHED_UTILS_FLAGS)
106mach_eventlink: $(SCHED_UTILS)
107
108signal_exit_reason: CODE_SIGN_ENTITLEMENTS = signal_exit_reason.entitlements
109
110atm_diagnostic_flag: OTHER_CFLAGS += drop_priv.c
111
112atm_diagnostic_flag_entitled: CODE_SIGN_ENTITLEMENTS = atm_diagnostic_flag.entitlements
113atm_diagnostic_flag_entitled: OTHER_CFLAGS += drop_priv.c
114
115avx: INVALID_ARCHS = $(filter arm%,$(ARCH_CONFIGS))
116avx: OTHER_CFLAGS += -mavx512f -mavx512bw -mavx512vl
117avx: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
118avx: CONFIG_FLAGS := $(filter-out -O%,$(CONFIG_FLAGS))
119# Add -mno-implicit-float to prevent the compiler from touching SIMD regs
120# unexpectedly
121avx: CONFIG_FLAGS += -mno-implicit-float
122# Disable vzeroupper insertion to work around rdar://problem/35035096
123avx: CONFIG_FLAGS += -mllvm -x86-use-vzeroupper=0
124ifneq (osx,$(TARGET_NAME))
125EXCLUDED_SOURCES += avx.c
126endif
127
128CUSTOM_TARGETS = sr_entitlement_helper
129
130sr_entitlement_helper: sr_entitlement_helper.c
131	mkdir -p $(SYMROOT)
132	$(CC) -I $(OBJROOT) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) sr_entitlement_helper.c -o $(SYMROOT)/$@
133	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements sr_entitlement.entitlements $(SYMROOT)/$@; \
134	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements sr_entitlement.entitlements $(SYMROOT)/$@;
135
136install-sr_entitlement_helper: sr_entitlement_helper
137	mkdir -p $(INSTALLDIR)
138	cp $(SYMROOT)/sr_entitlement_helper $(INSTALLDIR)
139
140sr_entitlement: OTHER_LDFLAGS += -ldarwintest_utils
141
142restrict_jit: CODE_SIGN_ENTITLEMENTS = restrict_jit.entitlements
143
144backtracing_tests: OTHER_LDFLAGS += -framework CoreSymbolication
145backtracing_tests: CODE_SIGN_ENTITLEMENTS = kernel_symbolication_entitlements.plist
146
147CUSTOM_TARGETS += corpse_backtrace2
148
149corpse_backtrace2:
150		$(MIG) $(CFLAGS) \
151		-DMACH_EXC_SERVER_TASKIDTOKEN \
152		-DMACH_EXC_SERVER_BACKTRACE \
153		-sheader $(OBJROOT)/excserver_backtrace.h \
154		-server $(OBJROOT)/excserver_backtrace.c \
155		-header /dev/null -user /dev/null \
156		excserver_backtrace.defs
157
158install-corpse_backtrace2: ;
159
160corpse_backtrace: corpse_backtrace2 exc_helpers.c
161corpse_backtrace: OTHER_CFLAGS += $(OBJROOT)/excserver_backtrace.c
162corpse_backtrace: OTHER_CFLAGS += -I $(OBJROOT)
163corpse_backtrace: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
164
165# Tests that use exc_guard_helper.h should add all of the build options used by exc_guard_helper_test:
166# - additional C files exc_guard_helper.c and exc_helpers.c and test_utils.c
167# - additional library darwintest_utils
168# - excserver MIG-generated file
169# - entitlement to allow thread_set_exception_ports()
170exc_guard_helper_test: exc_guard_helper.c exc_helpers.c test_utils.c excserver
171exc_guard_helper_test: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
172exc_guard_helper_test: OTHER_LDFLAGS += -ldarwintest_utils
173exc_guard_helper_test: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
174
175EXCLUDED_SOURCES += exc_guard_helper.c
176
177exc_guard_helper_test_unexpected: exc_guard_helper.c exc_helpers.c test_utils.c excserver
178exc_guard_helper_test_unexpected: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
179exc_guard_helper_test_unexpected: OTHER_LDFLAGS += -ldarwintest_utils
180exc_guard_helper_test_unexpected: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
181
182# Tests that use try_read_write.h should add all of the build options used by try_read_write_test:
183# - additional C files try_read_write.c and exc_helpers.c
184# - excserver MIG-generated file
185# - entitlement to allow thread_set_exception_ports()
186try_read_write_test: try_read_write.c exc_helpers.c excserver
187try_read_write_test: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
188try_read_write_test: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
189
190EXCLUDED_SOURCES += try_read_write.c
191
192try_read_write_test_unexpected: try_read_write.c exc_helpers.c excserver
193try_read_write_test_unexpected: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
194try_read_write_test_unexpected: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
195
196vm/corpse_owned_vmobjects: excserver_protect_state
197vm/corpse_owned_vmobjects: OTHER_CFLAGS += $(OBJROOT)/excserver_protect_state.c -I $(OBJROOT)
198vm/corpse_owned_vmobjects: CODE_SIGN_ENTITLEMENTS += vm/corpse_owned_vmobjects.entitlements
199
200vm_test_mach_map: try_read_write.c exc_helpers.c excserver
201vm_test_mach_map: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
202vm_test_mach_map: CODE_SIGN_ENTITLEMENTS = ./vm_test_mach_map.plist
203
204OTHER_TEST_TARGETS += vm/vm_parameter_validation
205
206# vm_parameter_validation builds each arch as a separate build command
207# so we can pass architecture-specific linker flags.
208# and generate arch-specific MIG files.
209
210# libdarwintest.a doesn't have an arm64 slice on watchOS
211ifeq ($(PLATFORM),WatchOS)
212VM_PARAMETER_VALIDATION_INVALID_ARCHS = arm64
213vm/vm_parameter_validation: INVALID_ARCHS += arm64
214endif
215
216VM_PARAMETER_VALIDATION_ARCHS = $(filter-out $(VM_PARAMETER_VALIDATION_INVALID_ARCHS),$(ARCH_CONFIGS))
217
218# Some tests map-overwrite wildly at addresses near 0.
219# Use a large PAGEZERO so our executable and other data do not land there.
220# (This is 32-bit only. 64-bit uses 4GB PAGEZERO by default which is fine.)
221VM_PARAMETER_VALIDATION_LDFLAGS_i386     = -Xlinker -pagezero_size -Xlinker 0x1000000
222VM_PARAMETER_VALIDATION_LDFLAGS_armv7    = -Xlinker -pagezero_size -Xlinker 0x1000000
223VM_PARAMETER_VALIDATION_LDFLAGS_armv7s   = -Xlinker -pagezero_size -Xlinker 0x1000000
224VM_PARAMETER_VALIDATION_LDFLAGS_armv7k   = -Xlinker -pagezero_size -Xlinker 0x1000000
225VM_PARAMETER_VALIDATION_LDFLAGS_arm64_32 = -Xlinker -pagezero_size -Xlinker 0x1000000
226
227VM_PARAMETER_VALIDATION_SLICES=$(addprefix $(SYMROOT)/vm/vm_parameter_validation_,$(VM_PARAMETER_VALIDATION_ARCHS))
228
229vm/vm_parameter_validation: assets $(VM_PARAMETER_VALIDATION_SLICES)
230	$(LIPO) -create $(VM_PARAMETER_VALIDATION_SLICES) -output $(SYMROOT)/$@
231	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
232
233$(SYMROOT)/vm/vm_parameter_validation_%: ../osfmk/tests/vm_parameter_validation.h \
234                                         $(OBJROOT)/vm_parameter_validation_%_vm32_map_user.c \
235                                         $(OBJROOT)/vm_parameter_validation_%_mach_vm_user.c \
236                                         $(OBJROOT)/vm_parameter_validation_%_replacement_mach_host.c \
237                                         $(OBJROOT)/vm_parameter_validation_%_replacement_host_priv.c \
238                                         vm/vm_parameter_validation.c
239	mkdir -p $(SYMROOT)/vm
240	$(CC) -I $(OBJROOT) \
241	    $(DT_CFLAGS) $(OTHER_CFLAGS) $(filter-out $(ARCH_FLAGS),$(CFLAGS)) -arch $* \
242	    $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $(VM_PARAMETER_VALIDATION_LDFLAGS_$*) \
243	    -DVM32_SUPPORT=1 -DKERNEL_VM_TEST=1 \
244	    $(OBJROOT)/vm_parameter_validation_$*_vm32_map_user.c \
245	    $(OBJROOT)/vm_parameter_validation_$*_mach_vm_user.c \
246	    $(OBJROOT)/vm_parameter_validation_$*_replacement_mach_host.c \
247	    $(OBJROOT)/vm_parameter_validation_$*_replacement_host_priv.c \
248	    vm/vm_parameter_validation.c -o $@
249
250# xnu/libsyscall/mach/mach_vm.c intercepts some VM calls from userspace,
251# sometimes doing something other than the expected MIG call.
252# And on 64-bit platforms libsystem has no interface to reach the 32-bit entrypoints.
253# We generate our own MIG userspace call sites to call the kernel entrypoints directly.
254$(OBJROOT)/vm_parameter_validation_%_vm32_map_user.c: ../osfmk/mach/vm32_map.defs
255	$(MIG) $(filter-out $(ARCH_FLAGS),$(CFLAGS)) -arch $* \
256	 -I../osfmk -novouchers -DKERNEL_USER=1 -DKOBJECT_SERVER -DKERNEL_VM_TEST=1 \
257	 -user $@ -header $(subst _$*_,_,$(@:.c=.h)) \
258	 -server /dev/null -sheader /dev/null \
259	 $<
260$(OBJROOT)/vm_parameter_validation_%_mach_vm_user.c: ../osfmk/mach/mach_vm.defs
261	$(MIG) $(filter-out $(ARCH_FLAGS),$(CFLAGS)) -arch $* \
262	 -I../osfmk -novouchers -DKERNEL_USER=1 -DKOBJECT_SERVER -DKERNEL_VM_TEST=1 \
263	 -user $@ -header $(subst _$*_,_,$(@:.c=.h)) \
264	 -server /dev/null -sheader /dev/null \
265	 $<
266# The declaration of mach_memory_object_memory_entry is buggy on U32.
267# We compile in our own MIG user stub for it with a "replacement_" prefix.
268# rdar://117927965
269$(OBJROOT)/vm_parameter_validation_%_replacement_mach_host.c: vm/vm_parameter_validation_replacement_mach_host.defs
270	$(MIG) $(filter-out $(ARCH_FLAGS),$(CFLAGS)) -arch $* \
271	 -I../osfmk -novouchers -DKERNEL_USER=1 -DKOBJECT_SERVER -DKERNEL_VM_TEST=1 \
272	 -user $@ -header $(subst _$*_,_,$(@:.c=.h)) \
273	 -server /dev/null -sheader /dev/null \
274	 $<
275# The declaration of vm_wire is buggy on U32.
276# We compile in our own MIG user stub for it with a "replacement_" prefix.
277# rdar://118258929
278$(OBJROOT)/vm_parameter_validation_%_replacement_host_priv.c: vm/vm_parameter_validation_replacement_host_priv.defs
279	$(MIG) $(filter-out $(ARCH_FLAGS),$(CFLAGS)) -arch $* \
280	 -I../osfmk -novouchers -DKERNEL_USER=1 -DKOBJECT_SERVER -DKERNEL_VM_TEST=1 \
281	 -user $@ -header $(subst _$*_,_,$(@:.c=.h)) \
282	 -server /dev/null -sheader /dev/null \
283	 $<
284
285
286CUSTOM_TARGETS += immovable_send_client vm_spawn_tool port_exhaustion_client port_table_limits_client fd_table_limits_client posix_spawnattr_set_crash_behavior_np_child kqworkloop_limits_client
287CUSTOM_TARGETS += ipc/hardened_exceptions_entitled_debugger ipc/hardened_exceptions_entitled
288CUSTOM_TARGETS += excserver_protect
289CUSTOM_TARGETS += excserver_protect_state
290
291exception_tests: excserver_protect exc_helpers.c
292exception_tests: CODE_SIGN_ENTITLEMENTS = exception_tests.entitlements
293exception_tests: OTHER_CFLAGS += $(OBJROOT)/excserver_protect.c
294exception_tests: OTHER_CFLAGS += -I $(OBJROOT)
295exception_tests: OTHER_CFLAGS += -DENTITLED=1
296
297ipc/hardened_exceptions: excserver_protect_state exc_helpers.c
298ipc/hardened_exceptions: ipc/hardened_exceptions_entitled ipc/hardened_exceptions_entitled_debugger
299ipc/hardened_exceptions: OTHER_CFLAGS += $(OBJROOT)/excserver_protect_state.c -I $(OBJROOT)
300
301ipc/hardened_exceptions_entitled: excserver_protect_state
302ipc/hardened_exceptions_entitled: CODE_SIGN_ENTITLEMENTS = entitlements/only_one_exception_port.entitlement
303ipc/hardened_exceptions_entitled: OTHER_CFLAGS += -I $(OBJROOT)
304ipc/hardened_exceptions_entitled: exc_helpers.c ipc/hardened_exceptions.c
305	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(OTHER_CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
306	$(filter-out $(CUSTOM_TARGETS), $^) -o $(SYMROOT)/$@
307	$(CODESIGN) --force --sign - --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
308
309ipc/hardened_exceptions_entitled_debugger: excserver_protect_state
310ipc/hardened_exceptions_entitled_debugger: CODE_SIGN_ENTITLEMENTS = entitlements/only_one_exception_port_debugger.entitlement
311ipc/hardened_exceptions_entitled_debugger: OTHER_CFLAGS += -I $(OBJROOT)
312ipc/hardened_exceptions_entitled_debugger: exc_helpers.c ipc/hardened_exceptions.c
313	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(OTHER_CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
314	$(filter-out $(CUSTOM_TARGETS), $^) -o $(SYMROOT)/$@
315	$(CODESIGN) --force --sign -  --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
316
317install-ipc/hardened_exceptions_entitled_debugger: ipc/hardened_exceptions_entitled_debugger
318	mkdir -p $(INSTALLDIR)
319	cp $(SYMROOT)/$< $(INSTALLDIR)/
320
321install-ipc/hardened_exceptions_entitled: ipc/hardened_exceptions_entitled
322	mkdir -p $(INSTALLDIR)
323	cp $(SYMROOT)/$< $(INSTALLDIR)/
324
325install-reply_port_defense_client: reply_port_defense_client
326	mkdir -p $(INSTALLDIR)
327	cp $(SYMROOT)/$< $(INSTALLDIR)/
328
329immovable_send: excserver
330immovable_send: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
331immovable_send: OTHER_LDFLAGS += -ldarwintest_utils -lpthread -framework IOKit
332immovable_send: immovable_send_client
333immovable_send: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
334
335locks: OTHER_LDFLAGS += -ldarwintest_utils
336
337immovable_send_client: immovable_send_client.c
338	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) immovable_send_client.c -o $(SYMROOT)/immovable_send_client
339
340install-immovable_send_client: immovable_send_client
341	mkdir -p $(INSTALLDIR)
342	cp $(SYMROOT)/immovable_send_client $(INSTALLDIR)/
343
344ipc/sys_perf_notify_test: excserver_protect_state
345ipc/sys_perf_notify_test: OTHER_CFLAGS += $(OBJROOT)/excserver_protect_state.c -I $(OBJROOT)
346ipc/sys_perf_notify_test: CODE_SIGN_ENTITLEMENTS=entitlements/sys_perf_notify_test.entitlements
347
348ipc/port_type_policy: CODE_SIGN_ENTITLEMENTS = entitlements/port_type_policy.entitlements
349ipc/port_type_policy: OTHER_CFLAGS += -I $(OBJROOT)
350ipc/port_type_policy: ipc/port_type_policy.c
351	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(OTHER_CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
352	$(filter-out $(CUSTOM_TARGETS), $^) -o $(SYMROOT)/$@
353	$(CODESIGN) --force --sign - --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
354
355EXCLUDED_SOURCES += posix_sem_namespace_helper.c
356CUSTOM_TARGETS   += posix_sem_namespace_helper_team0 posix_sem_namespace_helper_team1
357posix_sem_namespace_helper_team0: posix_sem_namespace_helper.c
358	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
359	$^ -o $(SYMROOT)/$@
360	$(CODESIGN) --force --sign - --timestamp=none --team-identifier "PSXSEMT0" $(SYMROOT)/$@
361posix_sem_namespace_helper_team1: posix_sem_namespace_helper.c
362	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
363	$^ -o $(SYMROOT)/$@
364	$(CODESIGN) --force --sign - --timestamp=none --team-identifier "PSXSEMT1" $(SYMROOT)/$@
365
366install-posix_sem_namespace_helper_team0: posix_sem_namespace_helper_team0
367	mkdir -p $(INSTALLDIR)
368	cp $(SYMROOT)/posix_sem_namespace_helper_team0 $(INSTALLDIR)/
369install-posix_sem_namespace_helper_team1: posix_sem_namespace_helper_team1
370	mkdir -p $(INSTALLDIR)
371	cp $(SYMROOT)/posix_sem_namespace_helper_team1 $(INSTALLDIR)/
372
373posix_sem: posix_sem_namespace_helper_team0 posix_sem_namespace_helper_team1
374posix_sem: OTHER_LDFLAGS += -ldarwintest_utils
375
376
377posix_spawnattr_set_crash_behavior_np: posix_spawnattr_set_crash_behavior_np_child
378posix_spawnattr_set_crash_behavior_np: CODE_SIGN_ENTITLEMENTS = posix_spawnattr_set_crash_behavior_np_entitlements.plist
379
380posix_spawnattr_set_crash_behavior_np_child: posix_spawnattr_set_crash_behavior_np_child.c
381	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) posix_spawnattr_set_crash_behavior_np_child.c -o $(SYMROOT)/posix_spawnattr_set_crash_behavior_np_child
382	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
383
384install-posix_spawnattr_set_crash_behavior_np_child: posix_spawnattr_set_crash_behavior_np_child
385	mkdir -p $(INSTALLDIR)
386	cp $(SYMROOT)/posix_spawnattr_set_crash_behavior_np_child $(INSTALLDIR)/
387
388posix_spawnattr_set_launch_type_np: posix_spawnattr_set_launch_type_test
389posix_spawnattr_set_launch_type_np: OTHER_CFLAGS += -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
390
391posix_spawn_launch_type: CODE_SIGN_ENTITLEMENTS = posix_spawn_launch_type-entitlements.plist
392
393port_exhaustion: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
394port_exhaustion: port_exhaustion_client
395
396port_exhaustion_client: port_exhaustion_client.c
397	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) port_exhaustion_client.c -o $(SYMROOT)/port_exhaustion_client
398
399install-port_exhaustion_client: port_exhaustion_client
400	mkdir -p $(INSTALLDIR)
401	cp $(SYMROOT)/port_exhaustion_client $(INSTALLDIR)/
402
403port_table_limits: rnserver
404port_table_limits: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
405port_table_limits: OTHER_CFLAGS += $(OBJROOT)/rnServer.c -I $(OBJROOT)
406port_table_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
407port_table_limits: port_table_limits_client
408
409port_table_limits_client: port_table_limits_client.c
410	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) port_table_limits_client.c -o $(SYMROOT)/port_table_limits_client
411	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
412
413install-port_table_limits_client: port_table_limits_client
414	mkdir -p $(INSTALLDIR)
415	cp $(SYMROOT)/port_table_limits_client $(INSTALLDIR)/
416
417CUSTOM_TARGETS += kqwl_rnserver
418
419kqwl_rnserver:
420	$(MIG) $(CFLAGS) \
421		-DKQWORKLOOPS_VIOLATION_SUPPORTED \
422		-user /dev/null \
423		-header $(OBJROOT)/kqwl_rn.h \
424		-sheader $(OBJROOT)/kqwl_rnServer.h \
425		-server $(OBJROOT)/kqwl_rnServer.c \
426		rnserver.defs
427install-kqwl_rnserver: ;
428
429kqworkloop_limits: kqwl_rnserver
430kqworkloop_limits: OTHER_CFLAGS += $(OBJROOT)/kqwl_rnServer.c -I $(OBJROOT)
431kqworkloop_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
432kqworkloop_limits: kqworkloop_limits_client
433
434kqworkloop_limits_client: kqworkloop_limits_client.c
435	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) kqworkloop_limits_client.c -o $(SYMROOT)/kqworkloop_limits_client
436	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
437
438install-kqworkloop_limits_client: kqworkloop_limits_client
439	mkdir -p $(INSTALLDIR)
440	cp $(SYMROOT)/kqworkloop_limits_client $(INSTALLDIR)/
441
442ipc/task_name_for_pid: CODE_SIGN_ENTITLEMENTS = ipc/task_name_for_pid_entitlement.plist
443
444ipc/mach_msg_transport: CODE_SIGN_ENTITLEMENTS = entitlements/create_conn_port_with_port_array.entitlements
445
446fd_table_limits: rnserver
447fd_table_limits: OTHER_CFLAGS += $(OBJROOT)/rnServer.c -I $(OBJROOT)
448fd_table_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
449fd_table_limits: fd_table_limits_client
450
451fd_table_limits_client: fd_table_limits_client.c
452	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) fd_table_limits_client.c -o $(SYMROOT)/fd_table_limits_client
453	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
454
455install-fd_table_limits_client: fd_table_limits_client
456	mkdir -p $(INSTALLDIR)
457	cp $(SYMROOT)/fd_table_limits_client $(INSTALLDIR)/
458
459vm_spawn_tool: INVALID_ARCHS = i386
460vm_spawn_tool: vm_spawn_tool.c
461	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_spawn_tool.c -o $(SYMROOT)/vm_spawn_tool
462
463install-vm_spawn_tool: vm_spawn_tool
464	mkdir -p $(INSTALLDIR)/tools
465	cp $(SYMROOT)/vm_spawn_tool $(INSTALLDIR)/tools/
466
467CUSTOM_TARGETS += imm_pinned_control_port_crasher
468CUSTOM_TARGETS += imm_pinned_control_port_crasher_3P_hardened
469
470imm_pinned_control_port: excserver_protect
471imm_pinned_control_port: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
472imm_pinned_control_port: OTHER_CFLAGS += $(OBJROOT)/excserver_protect.c -I $(OBJROOT)
473imm_pinned_control_port: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
474imm_pinned_control_port: imm_pinned_control_port_crasher imm_pinned_control_port_crasher_3P_hardened
475
476imm_pinned_control_port_crasher: imm_pinned_control_port_crasher.c cs_helpers.c
477	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
478	$^ -o $(SYMROOT)/$@
479	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
480
481imm_pinned_control_port_crasher_3P_hardened: CODE_SIGN_ENTITLEMENTS = entitlements/enhanced-security-binary-entitlements-1.plist
482imm_pinned_control_port_crasher_3P_hardened: imm_pinned_control_port_crasher.c cs_helpers.c
483	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
484	$^ -o $(SYMROOT)/$@
485	$(CODESIGN) --force --sign - --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
486
487install-imm_pinned_control_port_crasher: imm_pinned_control_port_crasher
488	mkdir -p $(INSTALLDIR)
489	cp $(SYMROOT)/$^ $(INSTALLDIR)/
490
491install-imm_pinned_control_port_crasher_3P_hardened: imm_pinned_control_port_crasher_3P_hardened
492	mkdir -p $(INSTALLDIR)
493	cp $(SYMROOT)/$^ $(INSTALLDIR)/
494
495CUSTOM_TARGETS += reply_port_defense_client
496CUSTOM_TARGETS += reply_port_defense_client_3P_hardened
497
498reply_port_defense: excserver_protect_state
499reply_port_defense: OTHER_CFLAGS += $(OBJROOT)/excserver_protect_state.c -I $(OBJROOT)
500reply_port_defense: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
501reply_port_defense: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
502reply_port_defense: reply_port_defense_client reply_port_defense_client_3P_hardened
503
504reply_port_defense_client: CODE_SIGN_ENTITLEMENTS=exception_tests.entitlements
505reply_port_defense_client: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
506reply_port_defense_client: reply_port_defense_client.c cs_helpers.c
507	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
508	$^ -o $(SYMROOT)/$@
509	$(CODESIGN) --force --sign - --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
510
511reply_port_defense_client_3P_hardened: CODE_SIGN_ENTITLEMENTS=entitlements/enhanced-security-binary-entitlements-1.plist
512reply_port_defense_client_3P_hardened: reply_port_defense_client.c cs_helpers.c
513	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
514	$^ -o $(SYMROOT)/$@
515	$(CODESIGN) --force --sign - --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
516
517install-reply_port_defense_client: reply_port_defense_client
518	mkdir -p $(INSTALLDIR)
519	cp $(SYMROOT)/$< $(INSTALLDIR)/
520
521install-reply_port_defense_client_3P_hardened: reply_port_defense_client_3P_hardened
522	mkdir -p $(INSTALLDIR)
523	cp $(SYMROOT)/$< $(INSTALLDIR)/
524
525kas_info: OTHER_LDFLAGS += -framework CoreSymbolication
526kas_info: CODE_SIGN_ENTITLEMENTS = kernel_symbolication_entitlements.plist
527
528net_bounds_safety: OTHER_CFLAGS += -fbounds-safety
529
530net_no_bounds_safety: OTHER_CFLAGS += -fno-bounds-safety
531net_no_bounds_safety: net_bounds_safety.c
532	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
533OTHER_TEST_TARGETS += net_no_bounds_safety
534
535host_statistics_rate_limiting: cs_helpers.c host_statistics_rate_limiting.c
536
537EXCLUDED_SOURCES += drop_priv.c xnu_quick_test_helpers.c memorystatus_assertion_helpers.c bpflib.c in_cksum.c test_utils.c inet_transfer.c net_test_lib.c cs_helpers.c vsock_helpers.c
538
539ifneq ($(IOS_TEST_COMPAT),YES)
540EXCLUDED_SOURCES += jumbo_va_spaces_28530648.c perf_compressor.c vm/ios13extended_footprint.c vm/entitlement_internal_bands.c
541endif
542
543perf_compressor: OTHER_LDFLAGS += -ldarwintest_utils
544perf_compressor: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
545
546
547vm/memorystatus_freeze_test: CODE_SIGN_ENTITLEMENTS=./task_for_pid_entitlement.plist
548vm/memorystatus_freeze_test: OTHER_LDFLAGS += -ldarwintest_utils
549vm/memorystatus_freeze_test: memorystatus_assertion_helpers.c test_utils.c vm/memorystatus_freeze_test.c
550	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
551	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
552
553vm/memorystatus_freeze_test_entitled: CODE_SIGN_ENTITLEMENTS=./vm/memorystatus_freeze_test_entitled.plist
554vm/memorystatus_freeze_test_entitled: OTHER_LDFLAGS += -ldarwintest_utils
555vm/memorystatus_freeze_test_entitled: test_utils.c vm/memorystatus_freeze_test_entitled.c
556	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
557	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
558
559vm/memorystatus_jetsam_zprint_snapshot: CODE_SIGN_ENTITLEMENTS=./vm/memorystatus_jetsam_zprint_snapshot.entitlements
560vm/memorystatus_jetsam_zprint_snapshot: OTHER_LDFLAGS += -ldarwintest_utils
561
562vm/memorystatus_kill_counts: CODE_SIGN_ENTITLEMENTS=./vm/memorystatus_kill_counts.entitlements
563vm/memorystatus_kill_counts: OTHER_LDFLAGS += -ldarwintest_utils
564
565vm/neural_footprint: CODE_SIGN_ENTITLEMENTS=./vm/neural_footprint.entitlement
566vm/neural_footprint: OTHER_CFLAGS += -I $(OBJROOT)
567vm/neural_footprint: OTHER_LDFLAGS += -ldarwintest_utils
568vm/neural_footprint: test_utils.c vm/neural_footprint.c ./vm/neural_footprint.entitlement
569	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
570	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
571
572memorystatus_is_assertion: OTHER_LDFLAGS += -ldarwintest_utils
573memorystatus_is_assertion: OTHER_CFLAGS += memorystatus_assertion_helpers.c
574
575memorystatus_vm_map_fork: OTHER_CFLAGS += test_utils.c
576memorystatus_vm_map_fork: OTHER_LDFLAGS += -ldarwintest_utils
577
578shared_cache_tests: OTHER_LDFLAGS += -ldarwintest_utils
579
580ifneq ($(wildcard $(SDKROOT)/System/Library/PrivateFrameworks/Tightbeam.framework/Headers/tightbeam.h),)
581stackshot_tests: OTHER_LDFLAGS += -framework Tightbeam
582stackshot_tests: OTHER_CFLAGS += -I$(OBJROOT)
583stackshot_tests: OTHER_CFLAGS += $(TIGHTBEAM_MODULE_IMPL_PATH)
584stackshot_tests.m: $(TIGHTBEAM_MODULE_HEADERS)
585endif
586stackshot_tests: ./stackshot-entitlements.plist stackshot_tests.m
587stackshot_tests: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
588stackshot_tests: OTHER_CFLAGS += -Wno-objc-messaging-id test_utils.c
589stackshot_tests: OTHER_LDFLAGS += -lkdd -lz -ldarwintest_utils -framework Foundation -framework IOKit
590
591stackshot_accuracy: ./stackshot-entitlements.plist
592stackshot_accuracy: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
593stackshot_accuracy: OTHER_CFLAGS += -ldarwintest_utils -Wno-objc-messaging-id
594stackshot_accuracy: OTHER_LDFLAGS += -lkdd -ldarwintest_utils -framework Foundation
595stackshot_accuracy: INVALID_ARCHS = i386
596
597stackshot_spawn_exit_stress: ./stackshot-entitlements.plist
598stackshot_spawn_exit_stress: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
599
600ifeq ($(PLATFORM),MacOSX)
601CUSTOM_TARGETS += stackshot_translated_child
602
603stackshot_translated_child: INVALID_ARCHS = arm64 arm64e
604stackshot_translated_child: stackshot_translated_child.c
605	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) stackshot_translated_child.c -o $(SYMROOT)/stackshot_translated_child
606
607install-stackshot_translated_child: stackshot_translated_child
608	mkdir -p $(INSTALLDIR)
609	cp $(SYMROOT)/stackshot_translated_child $(INSTALLDIR)/
610else
611EXCLUDED_SOURCES += stackshot_translated_child.c
612endif
613
614microstackshot_tests: ./stackshot-entitlements.plist
615microstackshot_tests: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
616microstackshot_tests: OTHER_LDFLAGS = -ldarwintest_utils -framework ktrace -framework kperf -framework CoreFoundation
617
618memorystatus_zone_test: ./stackshot-entitlements.plist
619memorystatus_zone_test: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
620memorystatus_zone_test: OTHER_CFLAGS += -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
621memorystatus_zone_test: OTHER_LDFLAGS += -framework ktrace
622memorystatus_zone_test: OTHER_LDFLAGS += -ldarwintest_utils
623
624memcmp_zero: OTHER_CFLAGS += ../osfmk/arm64/memcmp_zero.s
625
626text_corruption: OTHER_LDFLAGS += -ldarwintest_utils
627CUSTOM_TARGETS += text_corruption_helper
628
629text_corruption_helper:
630	$(CC) $(LDFLAGS) $(CFLAGS) text_corruption_helper.c -lm -o $(SYMROOT)/$@;
631	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
632
633install-text_corruption_helper: text_corruption_helper
634	mkdir -p $(INSTALLDIR)
635	cp $(SYMROOT)/text_corruption_helper $(INSTALLDIR)/
636
637codesigntests: CODE_SIGN_ENTITLEMENTS=codesigntests-entitlements.plist
638codesigntests: OTHER_CFLAGS += -DTESTNAME=codesigntests
639# Adding a custom target and build/install rules since CODE_SIGN_ENTITLEMENTS
640# does not take in arguments, and we need to sign this test using a sha256T
641# digest
642
643OTHER_TEST_TARGETS += codesigntests_sha256t
644codesigntests_sha256t: OTHER_CFLAGS += -DTESTNAME=codesigntests_sha256t
645
646codesigntests_sha256t: codesigntests.c
647	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(DT_LDFLAGS) $(LDFLAGS) $(CFLAGS) codesigntests.c -o $(SYMROOT)/$@;
648	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --digest=sha256T -s - --entitlements codesigntests-entitlements.plist $(SYMROOT)/$@;
649install-codesigntests_sha256t: codesigntests_sha256t
650	mkdir -p $(INSTALLDIR)
651	cp $(SYMROOT)/codesigntests_sha256t $(INSTALLDIR)/
652
653
654ecc_test: OTHER_LDFLAGS += -ldarwintest_utils
655CUSTOM_TARGETS += ecc_test_helper
656
657ecc_test_helper:
658	$(CC) $(LDFLAGS) $(CFLAGS) ecc_test_helper.c -lm -o $(SYMROOT)/$@;
659	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
660
661install-ecc_test_helper: ecc_test_helper
662	mkdir -p $(INSTALLDIR)
663	cp $(SYMROOT)/ecc_test_helper $(INSTALLDIR)/
664
665vm/test_vm_no_pager: excserver
666vm/test_vm_no_pager: OTHER_LDFLAGS += -ldarwintest_utils -lpthread -lkdd -framework Foundation
667vm/test_vm_no_pager: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders $(OBJROOT)/excserver.c -I$(OBJROOT)
668vm/test_vm_no_pager: vm/test_vm_no_pager_helper
669vm/test_vm_no_pager: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
670CUSTOM_TARGETS += vm/test_vm_no_pager_helper
671
672vm/test_vm_no_pager_helper: vm/test_vm_no_pager_helper.c
673	$(CC) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -lm -o $(SYMROOT)/$@;
674	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
675
676install-vm/test_vm_no_pager_helper: vm/test_vm_no_pager_helper
677	mkdir -p $(INSTALLDIR)/vm
678	cp $(SYMROOT)/vm/test_vm_no_pager_helper $(INSTALLDIR)/vm/
679
680
681kevent_qos: OTHER_CFLAGS += -Wno-unused-macros
682kevent_qos: OTHER_CFLAGS += -I $(OBJROOT)/
683
684test_knote_use_after_free: OTHER_CFLAGS += -Wno-unused-macros
685test_knote_use_after_free: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
686
687mach_get_times: OTHER_LDFLAGS += -ldarwintest_utils
688
689monotonic_core: ./stackshot-entitlements.plist
690monotonic_core: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
691monotonic_core: OTHER_LDFLAGS += -framework ktrace
692
693perf_exit: perf_exit_proc
694perf_exit: ./stackshot-entitlements.plist
695perf_exit: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
696perf_exit: OTHER_LDFLAGS = -framework ktrace -ldarwintest_utils
697perf_exit: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
698
699ipc/mach_exc_port_substitute: excserver
700ipc/mach_exc_port_substitute: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
701ipc/mach_exc_port_substitute: CODE_SIGN_ENTITLEMENTS = ipc/mach_exc_port_substitute.plist
702
703CUSTOM_TARGETS += prioritize_process_launch_helper
704prioritize_process_launch: prioritize_process_launch_helper
705
706prioritize_process_launch_helper: prioritize_process_launch_helper.c
707	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) prioritize_process_launch_helper.c -o $(SYMROOT)/prioritize_process_launch_helper
708	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
709	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
710
711install-prioritize_process_launch_helper: prioritize_process_launch_helper
712	mkdir -p $(INSTALLDIR)
713	cp $(SYMROOT)/prioritize_process_launch_helper $(INSTALLDIR)/
714
715
716perf_spawn_fork: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
717
718mach_exception_reply: OTHER_CFLAGS += -Wno-cast-align
719mach_exception_reply: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
720
721os_thread_self_restrict: os_thread_self_restrict.c os_thread_self_restrict-entitlements.plist
722os_thread_self_restrict: CODE_SIGN_ENTITLEMENTS=os_thread_self_restrict-entitlements.plist
723os_thread_self_restrict: OTHER_LDFLAGS += -sectcreate __TEXT __info_plist os_thread_self_restrict-identifier.plist
724
725# Temporarily disabled.  See rdar://121952316
726EXCLUDED_SOURCES += os_thread_self_restrict.c
727
728subsystem_root_path: subsystem_root_path.c subsystem_root_path-entitlements.plist
729subsystem_root_path: CODE_SIGN_ENTITLEMENTS=subsystem_root_path-entitlements.plist
730
731EXCLUDED_SOURCES += $(wildcard bounded_ptr_src/*.cpp)
732bounded_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
733bounded_ptr: $(wildcard bounded_ptr_src/*.cpp) bounded_ptr.cpp
734
735EXCLUDED_SOURCES += bounded_ptr_03.cpp
736bounded_ptr_03: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++03 $(DT_LDFLAGS)
737bounded_ptr_03: bounded_ptr_03.cpp
738
739EXCLUDED_SOURCES += $(wildcard bounded_array_src/*.cpp)
740bounded_array: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
741bounded_array: $(wildcard bounded_array_src/*.cpp) bounded_array.cpp
742
743EXCLUDED_SOURCES += $(wildcard bounded_array_ref_src/*.cpp)
744bounded_array_ref: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
745bounded_array_ref: $(wildcard bounded_array_ref_src/*.cpp) bounded_array_ref.cpp
746
747EXCLUDED_SOURCES += $(wildcard intrusive_shared_ptr_src/*.cpp)
748intrusive_shared_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
749intrusive_shared_ptr: $(wildcard intrusive_shared_ptr_src/*.cpp) intrusive_shared_ptr.cpp
750
751EXCLUDED_SOURCES += $(wildcard safe_allocation_src/*.cpp)
752safe_allocation: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
753safe_allocation: $(wildcard safe_allocation_src/*.cpp) safe_allocation.cpp
754
755EXCLUDED_SOURCES += $(wildcard cxx_safe_buffers_src/*.cpp)
756cxx_safe_buffers: OTHER_CXXFLAGS += -Werror=unsafe-buffer-usage -I$(SRCROOT)/../libkern -std=c++20
757cxx_safe_buffers: $(wildcard cxx_safe_buffers_src/*.cpp) cxx_safe_buffers.cpp
758
759EXCLUDED_SOURCES += osptr_compat.cpp
760osptr_98: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++98 -DOSPTR_STD="98"
761osptr_98: osptr_compat.cpp
762	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
763osptr_11: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++11 -DOSPTR_STD="11"
764osptr_11: osptr_compat.cpp
765	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
766osptr_14: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++14 -DOSPTR_STD="14"
767osptr_14: osptr_compat.cpp
768	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
769osptr_17: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++17 -DOSPTR_STD="17"
770osptr_17: osptr_compat.cpp
771	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
772
773priority_queue: OTHER_CXXFLAGS += -std=c++17
774queue: OTHER_CFLAGS += -I$(SRCROOT)/../osfmk
775
776vm/zalloc: OTHER_LDFLAGS += -ldarwintest_utils
777vm/zalloc_buddy: OTHER_CFLAGS += -Wno-format-pedantic
778
779os_refcnt: OTHER_CFLAGS += -I$(SRCROOT)/../libkern/ -Wno-gcc-compat -Wno-undef -O3 -flto -ldarwintest_utils
780
781kernel_inspection: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
782kernel_inspection: OTHER_CFLAGS += -DENTITLED=1
783
784turnstile_multihop: OTHER_CFLAGS += -Wno-unused-macros
785turnstile_multihop: OTHER_CFLAGS += -I $(OBJROOT)/
786
787CUSTOM_TARGETS += perf_exit_proc
788
789perf_exit_proc:
790	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) perf_exit_proc.c -o $(SYMROOT)/perf_exit_proc
791
792install-perf_exit_proc: perf_exit_proc
793	mkdir -p $(INSTALLDIR)
794	cp $(SYMROOT)/perf_exit_proc $(INSTALLDIR)/
795
796# Stackshot
797
798
799stackshot_idle_25570396: ./stackshot-entitlements.plist
800stackshot_idle_25570396: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
801stackshot_idle_25570396: OTHER_LDFLAGS += -lkdd -framework Foundation
802stackshot_idle_25570396: OTHER_LDFLAGS += -lkdd -framework Foundation
803
804stackshot_block_owner_14362384: ./stackshot-entitlements.plist
805stackshot_block_owner_14362384: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
806stackshot_block_owner_14362384: OTHER_LDFLAGS += -framework Foundation -lpthread -lkdd
807ifeq ($(PLATFORM),MacOSX)
808stackshot_block_owner_14362384: OTHER_LDFLAGS += -lpcre
809endif
810
811all: $(DSTROOT)/usr/local/bin/kcdata
812
813$(DSTROOT)/usr/local/bin/kcdata: $(SRCROOT)/../tools/lldbmacros/kcdata.py
814	mkdir -p $(dir $@)
815	cp $< $@
816	chmod a+x $@
817
818xnu_quick_test: OTHER_CFLAGS += xnu_quick_test_helpers.c
819
820CUSTOM_TARGETS += vm_set_max_addr_helper
821
822vm_set_max_addr_helper: vm_set_max_addr_helper.c
823	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_set_max_addr_helper.c -o $(SYMROOT)/vm_set_max_addr_helper; \
824	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
825	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
826
827install-vm_set_max_addr_helper: vm_set_max_addr_helper
828	mkdir -p $(INSTALLDIR)
829	cp $(SYMROOT)/vm_set_max_addr_helper $(INSTALLDIR)/
830
831CUSTOM_TARGETS += subsystem_root_path_helper_entitled
832CUSTOM_TARGETS += subsystem_root_path_helper
833
834subsystem_root_path_helper_entitled: subsystem_root_path_helper.c subsystem_root_path-entitlements.plist
835	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper_entitled; \
836	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
837	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements subsystem_root_path-entitlements.plist $(SYMROOT)/$@;
838
839install-subsystem_root_path_helper_entitled: subsystem_root_path_helper_entitled
840	mkdir -p $(INSTALLDIR)
841	cp $(SYMROOT)/subsystem_root_path_helper_entitled $(INSTALLDIR)/
842
843subsystem_root_path_helper: subsystem_root_path_helper.c
844	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper; \
845	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
846	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
847
848install-subsystem_root_path_helper: subsystem_root_path_helper
849	mkdir -p $(INSTALLDIR)
850	cp $(SYMROOT)/subsystem_root_path_helper $(INSTALLDIR)/
851
852CUSTOM_TARGETS += vm_test_code_signing_helper
853
854vm_test_code_signing_helper: vm_test_code_signing_helper.c
855	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_test_code_signing_helper.c -o $(SYMROOT)/vm_test_code_signing_helper; \
856	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
857	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
858
859install-vm_test_code_signing_helper: vm_test_code_signing_helper
860	mkdir -p $(INSTALLDIR)
861	cp $(SYMROOT)/vm_test_code_signing_helper $(INSTALLDIR)/
862
863vm_test_code_signing: OTHER_LDFLAGS += -ldarwintest_utils
864
865INCLUDED_TEST_SOURCE_DIRS += ipc rm workq
866
867include vm/Makefile
868
869vm/vm_stress: OTHER_CXXFLAGS += -std=c++20
870vm/vm_stress: OTHER_LDFLAGS += -ldarwintest_utils
871vm/vm_stress: INVALID_ARCHS = x86_64h
872
873
874big_map_test: CODE_SIGN_ENTITLEMENTS = ./big_map_test_entitlement.plist
875
876task_info_28439149: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
877
878ipc/ipc_read_inspect: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
879
880ipc/ipc_thread_ports_race: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
881ipc/ipc_thread_ports_race: OTHER_LDFLAGS += -ldarwintest_utils
882
883rm/pthread_setugid: OTHER_LDFLAGS += -ldarwintest_utils
884rm/coalition_info_resource_usage: OTHER_LDFLAGS += -ldarwintest_utils
885
886proc_info: recount/recount_test_utils.c
887proc_info: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
888proc_info: OTHER_LDFLAGS += -ldarwintest_utils
889
890proc_info_list_kthreads: CODE_SIGN_ENTITLEMENTS = ./proc_info_list_kthreads.entitlements
891
892proc_info_44873309: CODE_SIGN_ENTITLEMENTS = ./proc_info_44873309.entitlements
893
894disk_mount_conditioner: disk_mount_conditioner*
895disk_mount_conditioner: CODE_SIGN_ENTITLEMENTS=./disk_mount_conditioner-entitlements.plist
896disk_mount_conditioner: OTHER_LDFLAGS += -ldarwintest_utils -framework Foundation
897
898disk_mount_conditioner: OTHER_TEST_TARGETS += disk_mount_conditioner_unentitled
899disk_mount_conditioner_unentitled: OTHER_CFLAGS += -DTEST_UNENTITLED
900disk_mount_conditioner_unentitled: OTHER_LDFLAGS += -ldarwintest_utils -framework Foundation
901disk_mount_conditioner_unentitled: disk_mount_conditioner.m
902	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
903
904work_interval_test: CODE_SIGN_ENTITLEMENTS = work_interval_test.entitlements
905work_interval_test: OTHER_CFLAGS += -DENTITLED=1
906
907work_interval_data_test: CODE_SIGN_ENTITLEMENTS = work_interval_test.entitlements
908work_interval_data_test: OTHER_CFLAGS += -DENTITLED=1
909work_interval_data_test: OTHER_LDFLAGS += -lpthread
910
911game_mode: CODE_SIGN_ENTITLEMENTS = game_mode.entitlements
912carplay_mode: CODE_SIGN_ENTITLEMENTS = carplay_mode.entitlements
913runaway_mitigation: CODE_SIGN_ENTITLEMENTS = runaway_mitigation.entitlements
914
915coalition_policy: CODE_SIGN_ENTITLEMENTS = coalition_policy.entitlements
916coalition_policy: OTHER_LDFLAGS += $(SCHED_UTILS_FLAGS)
917coalition_policy: $(SCHED_UTILS)
918
919settimeofday_29193041: OTHER_CFLAGS += drop_priv.c
920
921settimeofday_29193041_entitled: CODE_SIGN_ENTITLEMENTS = settimeofday_29193041.entitlements
922settimeofday_29193041_entitled: OTHER_CFLAGS += drop_priv.c
923
924thread_group_set_32261625: ./stackshot-entitlements.plist
925thread_group_set_32261625: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
926thread_group_set_32261625: OTHER_LDFLAGS = -framework ktrace
927
928task_info: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
929task_info: OTHER_CFLAGS += test_utils.c
930task_info: OTHER_LDFLAGS += -ldarwintest_utils
931
932extract_right_soft_fail: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
933
934ifneq ($(IOS_TEST_COMPAT),YES)
935	EXCLUDED_SOURCES += task_vm_info_decompressions.c
936endif
937
938ifeq ($(PLATFORM),MacOSX)
939	EXCLUDED_SOURCES += vm/compression_sweep.c
940endif
941
942unp_sock_release: CODE_SIGN_ENTITLEMENTS = unp_sock_release-entitlements.plist
943
944accept_race: in_cksum.c net_test_lib.c
945accept_race: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
946
947flow_div_doubleconnect_55917185: in_cksum.c net_test_lib.c
948flow_div_doubleconnect_55917185: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
949
950bpf_write: bpflib.c in_cksum.c net_test_lib.c
951bpf_write: OTHER_LDFLAGS += -ldarwintest_utils
952
953bpf_write_batch: bpflib.c in_cksum.c net_test_lib.c
954bpf_write_batch: OTHER_LDFLAGS += -ldarwintest_utils
955
956udp_disconnect: in_cksum.c net_test_lib.c
957udp_disconnect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
958
959udp_bind_connect: in_cksum.c net_test_lib.c
960udp_bind_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
961
962tcp_bind_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
963tcp_send_implied_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
964
965tcp_cache_test: CODE_SIGN_ENTITLEMENTS = tcp_cache_entitlements.plist
966
967socket_bind_35243417: in_cksum.c net_test_lib.c
968socket_bind_35243417: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
969
970socket_bind_35685803: in_cksum.c net_test_lib.c
971socket_bind_35685803: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
972
973tcp_input_outputopts_uaf_56155583: in_cksum.c net_test_lib.c
974tcp_input_outputopts_uaf_56155583: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
975
976unp_connect_thread_uaf: in_cksum.c net_test_lib.c
977unp_connect_thread_uaf: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
978
979icmp_fragmetned_payload: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
980tcp_invalid_address: OTHER_CFLAGS += -Wno-int-conversion
981tcp_invalid_address: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
982
983net_tuntests: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
984
985net_bridge: inet_transfer.c bpflib.c in_cksum.c net_test_lib.c
986net_bridge: OTHER_LDFLAGS += -ldarwintest_utils
987net_bridge: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
988
989net_vlan: inet_transfer.c bpflib.c in_cksum.c net_test_lib.c
990net_vlan: OTHER_LDFLAGS += -ldarwintest_utils
991net_vlan: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
992
993net_bond: inet_transfer.c bpflib.c in_cksum.c net_test_lib.c
994net_bond: OTHER_LDFLAGS += -ldarwintest_utils
995net_bond: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
996
997mcast_ssm: in_cksum.c net_test_lib.c
998mcast_ssm: OTHER_LDFLAGS += -ldarwintest_utils
999
1000if_generation_id: net_test_lib.c in_cksum.c
1001if_generation_id: OTHER_LDFLAGS += -ldarwintest_utils
1002
1003inet6_addr_mode: net_test_lib.c in_cksum.c
1004inet6_addr_mode: OTHER_LDFLAGS += -ldarwintest_utils
1005
1006bpf_direction: bpflib.c
1007bpf_direction: OTHER_LDFLAGS += -ldarwintest_utils
1008bpf_direction: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1009
1010bpf_timestamp: bpflib.c
1011bpf_timestamp: OTHER_LDFLAGS += -ldarwintest_utils
1012bpf_timestamp: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1013
1014ipv6_bind_race: in_cksum.c net_test_lib.c
1015ipv6_bind_race: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1016
1017mcast_group_race_82820812: in_cksum.c net_test_lib.c
1018mcast_group_race_82820812: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1019
1020so_bindtodevice: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1021
1022recv_link_addr_type: net_test_lib.c in_cksum.c
1023recv_link_addr_type: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1024
1025ip_pktinfo: net_test_lib.c in_cksum.c
1026ip_pktinfo: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1027
1028v4mappedv6_dontfrag: net_test_lib.c in_cksum.c
1029v4mappedv6_dontfrag: OTHER_LDFLAGS += -ldarwintest_utils
1030v4mappedv6_dontfrag: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1031
1032net_siocdifaddr: net_test_lib.c in_cksum.c
1033net_siocdifaddr: OTHER_LDFLAGS += -ldarwintest_utils
1034
1035vsock: vsock_helpers.c
1036vsock_entitled: vsock_helpers.c
1037vsock_entitled: CODE_SIGN_ENTITLEMENTS = vsock_entitlements.plist
1038
1039sendmsg_test: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
1040
1041network_elevated_logging: CODE_SIGN_ENTITLEMENTS = entitlements/network_elevated_logging.entitlements
1042
1043ipc/platform_restrictions_entitlements: CODE_SIGN_ENTITLEMENTS = entitlements/platform-restrictions.plist
1044
1045ipc/tpro_entitlements: CODE_SIGN_ENTITLEMENTS = entitlements/tpro.plist
1046
1047CUSTOM_TARGETS += posix_spawn_archpref_helper
1048
1049posix_spawn_archpref_helper: posix_spawn_archpref_helper.c
1050	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_archpref_helper.c -o $(SYMROOT)/$@;
1051	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1052
1053install-posix_spawn_archpref_helper: posix_spawn_archpref_helper
1054	mkdir -p $(INSTALLDIR)
1055	cp $(SYMROOT)/posix_spawn_archpref_helper $(INSTALLDIR)/
1056
1057CUSTOM_TARGETS += posix_spawn_alt_rosetta_helper
1058
1059posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper.c
1060	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_alt_rosetta_helper.c -o $(SYMROOT)/$@;
1061	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1062
1063install-posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper
1064	mkdir -p $(INSTALLDIR)
1065	cp $(SYMROOT)/posix_spawn_alt_rosetta_helper $(INSTALLDIR)/
1066
1067MIG:=SDKROOT=$(SDKROOT) $(shell xcrun -sdk "$(TARGETSDK)" -find mig)
1068
1069CUSTOM_TARGETS += excserver
1070
1071excserver:
1072	$(MIG) $(CFLAGS) \
1073		-sheader $(OBJROOT)/excserver.h \
1074		-server $(OBJROOT)/excserver.c \
1075		-header /dev/null -user /dev/null \
1076		excserver.defs
1077install-excserver: ;
1078
1079excserver_protect:
1080	$(MIG) $(CFLAGS) \
1081		-DMACH_EXC_SERVER_TASKIDTOKEN \
1082		-sheader $(OBJROOT)/excserver_protect.h \
1083		-server $(OBJROOT)/excserver_protect.c \
1084		-header /dev/null -user /dev/null \
1085		excserver_protect.defs
1086install-excserver_protect: ;
1087
1088excserver_protect_state:
1089	$(MIG) $(CFLAGS) \
1090		-DMACH_EXC_SERVER_TASKIDTOKEN_STATE \
1091		-DMACH_EXC_SERVER_TASKIDTOKEN \
1092		-sheader $(OBJROOT)/excserver_protect_state.h \
1093		-server $(OBJROOT)/excserver_protect_state.c \
1094		-header /dev/null -user /dev/null \
1095		excserver_protect.defs
1096install-excserver_protect_state: ;
1097
1098EXCLUDED_SOURCES += exc_helpers.c
1099
1100CUSTOM_TARGETS += notifyserver
1101
1102notifyserver:
1103	$(MIG) $(CFLAGS) \
1104		-user /dev/null \
1105		-header $(OBJROOT)/notify.h \
1106		-sheader $(OBJROOT)/notifyServer.h \
1107		-server $(OBJROOT)/notifyServer.c \
1108		notifyserver.defs
1109install-notifyserver: ;
1110
1111CUSTOM_TARGETS += rnserver
1112
1113rnserver:
1114	$(MIG) $(CFLAGS) \
1115		-user /dev/null \
1116		-header $(OBJROOT)/rn.h \
1117		-sheader $(OBJROOT)/rnServer.h \
1118		-server $(OBJROOT)/rnServer.c \
1119		rnserver.defs
1120install-rnserver: ;
1121
1122SKYWALK_COMMON_FILES := \
1123	skywalk/skywalk_test_common.c \
1124	skywalk/skywalk_test_utils.c
1125SKYWALK_TEST_FILES := \
1126	skywalk/skywalk_test_driver.c \
1127	skywalk/skt_simple.c \
1128	skywalk/skt_features.c \
1129	skywalk/skt_oneslot.c \
1130	skywalk/skt_shutdown.c \
1131	skywalk/skt_shutdown2.c \
1132	skywalk/skt_nslots.c \
1133	skywalk/skt_closecfd.c \
1134	skywalk/skt_closenfd.c \
1135	skywalk/skt_badring.c \
1136	skywalk/skt_kqueue.c \
1137	skywalk/skt_mangle.c \
1138	skywalk/skt_features.c \
1139	skywalk/skt_ringid.c \
1140	skywalk/skt_closekq.c \
1141	skywalk/skt_writemem.c \
1142	skywalk/skt_debug_verify.c \
1143	skywalk/skt_utun27302538.c \
1144	skywalk/skt_utunleak.c \
1145	skywalk/skt_utunloop.c \
1146	skywalk/skt_flowswitch_ns_reserve.c \
1147	skywalk/skt_netifcompat.c \
1148	skywalk/skt_fswloop.c \
1149	skywalk/skt_teardown.c \
1150	skywalk/skt_bind.c \
1151	skywalk/skt_fsw29301703.c \
1152	skywalk/skt_fswbinds.c \
1153	skywalk/skt_manyflows.c \
1154	skywalk/skt_pllupipe.c \
1155	skywalk/skt_fullupipe.c \
1156	skywalk/skt_listener.c \
1157	skywalk/skt_copy_cksum.c \
1158	skywalk/skt_reass.c \
1159	skywalk/skt_memory.c \
1160	skywalk/skt_flow.c \
1161	skywalk/skt_flowlookup.c \
1162	skywalk/skt_libcuckoo.c \
1163	skywalk/skt_restricted_port.c \
1164	skywalk/skt_steering.c
1165SKYWALK_MPTEST_FILES := \
1166	skywalk/skywalk_mptests.c \
1167	skywalk/skywalk_mptest_driver.c \
1168	skywalk/skt_mpsimple.c \
1169	skywalk/skt_mpprotons.c \
1170	skywalk/skt_xfer.c \
1171	skywalk/skt_netifdirect.c \
1172	skywalk/skt_filter.c
1173EXCLUDED_SOURCES += $(SKYWALK_COMMON_FILES) $(SKYWALK_TEST_FILES) $(SKYWALK_MPTEST_FILES)
1174
1175skywalk_tests: excserver
1176skywalk_tests: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1177skywalk_tests: CODE_SIGN_ENTITLEMENTS = skywalk_test.entitlements
1178skywalk_tests: $(SKYWALK_COMMON_FILES) $(SKYWALK_TEST_FILES) $(SKYWALK_MPTEST_FILES) $(SDKROOT)/usr/local/lib/libCrashReporterClient.a
1179
1180EXCLUDED_SOURCES += arm_matrix_sme.c
1181
1182arm_matrix: INVALID_ARCHS = $(filter-out arm64%,$(ARCH_CONFIGS))
1183arm_matrix: excserver exc_helpers.c arm_matrix_sme.c
1184arm_matrix: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT) -Wno-language-extension-token -Wno-c++98-compat -mcpu=firestorm+nofp+sme2
1185arm_matrix: CODE_SIGN_ENTITLEMENTS = arm_matrix.entitlements
1186
1187
1188x18_entitled: OTHER_CFLAGS += -ffixed-x18 -Wno-language-extension-token
1189x18_entitled: CODE_SIGN_ENTITLEMENTS = x18-entitlements.plist
1190x18_unentitled: OTHER_CFLAGS += -ffixed-x18 -Wno-language-extension-token
1191ifneq ($(PLATFORM),MacOSX)
1192EXCLUDED_SOURCES += x18_legacy.c
1193else
1194x18_legacy: OTHER_CFLAGS += -ffixed-x18 -Wno-language-extension-token -Wl,-platform_version -Wl,macos -Wl,10.12 -Wl,10.12
1195endif
1196
1197ifeq ($(findstring arm64,$(ARCH_CONFIGS)),)
1198EXCLUDED_SOURCES += apple_generic_timer.c apple_generic_timer_legacy.c
1199else
1200apple_generic_timer: INVALID_ARCHS = armv7k x86_64 x86_64h
1201
1202apple_generic_timer_legacy: INVALID_ARCHS = armv7k x86_64 x86_64h
1203ifeq ($(PLATFORM),MacOSX)
1204apple_generic_timer_legacy: OTHER_CFLAGS += -Wl,-platform_version,macos,14.6,14.6
1205else ifeq ($(PLATFORM),iPhoneOS)
1206apple_generic_timer_legacy: OTHER_CFLAGS += -Wl,-platform_version,ios,14.6,14.6
1207else ifeq ($(PLATFORM),tvOS)
1208apple_generic_timer_legacy: OTHER_CFLAGS += -Wl,-platform_version,tvos,14.6,14.6
1209else ifeq ($(PLATFORM),WatchOS)
1210apple_generic_timer_legacy: OTHER_CFLAGS += -Wl,-platform_version,watchos,10.6,10.6
1211else
1212EXCLUDED_SOURCES += apple_generic_timer_legacy.c
1213endif
1214
1215ifneq ($(PLATFORM),MacOSX)
1216EXCLUDED_SOURCES += apple_generic_timer_vmm.c
1217else
1218apple_generic_timer_vmm: INVALID_ARCHS = armv7k x86_64 x86_64h
1219apple_generic_timer_vmm: CODE_SIGN_ENTITLEMENTS = hv_private.entitlements
1220endif
1221
1222endif
1223
1224bingrade: bingrade_helper_arm32 bingrade_helper_arm64 bingrade_helper_arm_fat
1225bingrade: INVALID_ARCHS = x86_64 x86_64h
1226# libdarwintest.a doesn't have an arm64 slice on watchOS
1227ifeq ($(PLATFORM),WatchOS)
1228bingrade: INVALID_ARCHS += arm64
1229endif
1230
1231EXCLUDED_SOURCES += bingrade_helper.c
1232CUSTOM_TARGETS += bingrade_helper_arm32
1233bingrade_helper_arm32: CFLAGS = -arch arm64_32 -static -nostdlib
1234bingrade_helper_arm32: bingrade_helper.c
1235	$(CC) $(CFLAGS) $< -o $(SYMROOT)/$@
1236	$(CODESIGN) -f -s- $(SYMROOT)/$@
1237
1238install-bingrade_helper_arm32: bingrade_helper_arm32
1239	mkdir -p $(INSTALLDIR)
1240	cp $(SYMROOT)/$< $(INSTALLDIR)/
1241
1242CUSTOM_TARGETS += bingrade_helper_arm64
1243bingrade_helper_arm64: CFLAGS = -arch arm64 -static -nostdlib
1244bingrade_helper_arm64: bingrade_helper.c
1245	$(CC) $(CFLAGS) $< -o $(SYMROOT)/$@
1246	$(CODESIGN) -f -s- $(SYMROOT)/$@
1247
1248install-bingrade_helper_arm64: bingrade_helper_arm64
1249	mkdir -p $(INSTALLDIR)
1250	cp $(SYMROOT)/$< $(INSTALLDIR)/
1251
1252CUSTOM_TARGETS += bingrade_helper_arm_fat
1253bingrade_helper_arm_fat: CFLAGS = -arch arm64 -arch arm64_32 -arch arm64e -static -nostdlib
1254bingrade_helper_arm_fat: bingrade_helper.c
1255	$(CC) $(CFLAGS) $< -o $(SYMROOT)/$@
1256	$(CODESIGN) -f -s- $(SYMROOT)/$@
1257
1258install-bingrade_helper_arm_fat: bingrade_helper_arm_fat
1259	mkdir -p $(INSTALLDIR)
1260	cp $(SYMROOT)/$< $(INSTALLDIR)/
1261
1262pmap_bench: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
1263pmap_stress: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
1264pmap_fault_on_commpage: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
1265
1266hw_breakpoint_step_arm64: CODE_SIGN_ENTITLEMENTS = hw_breakpoint_step_arm64_entitlements.plist
1267hw_breakpoint_step_arm64: INVALID_ARCHS = $(filter-out arm64%,$(ARCH_CONFIGS))
1268hw_breakpoint_step_arm64: excserver
1269hw_breakpoint_step_arm64: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1270
1271exc_resource_threads: excserver
1272exc_resource_threads: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1273exc_resource_threads: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
1274
1275mach_service_port: notifyserver
1276mach_service_port: OTHER_CFLAGS += $(OBJROOT)/notifyServer.c -I $(OBJROOT)
1277
1278fp_exception: excserver exc_helpers.c
1279fp_exception: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1280fp_exception: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
1281
1282ptrauth_failure: excserver exc_helpers.c
1283ptrauth_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT) -Wno-language-extension-token
1284ptrauth_failure: CODESIGN = $(CODESIGN_HARDENED_RUNTIME)
1285ptrauth_failure: CODE_SIGN_ENTITLEMENTS = entitlements/set_state_and_exception_port.entitlement
1286
1287decompression_failure: excserver exc_helpers.c try_read_write.c
1288decompression_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1289decompression_failure: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
1290
1291ipc/kernel_signed_pac_thread_state: excserver
1292ipc/kernel_signed_pac_thread_state: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1293ipc/kernel_signed_pac_thread_state: CODE_SIGN_ENTITLEMENTS = pac_exception_entitlement.plist
1294
1295ifeq ($(findstring arm64e,$(ARCH_CONFIGS)),)
1296EXCLUDED_SOURCES += pac_exception_entitlement.c
1297else
1298pac_exception_entitlement: excserver exc_helpers.c
1299pac_exception_entitlement: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token
1300pac_exception_entitlement: CODE_SIGN_ENTITLEMENTS = pac_exception_entitlement.plist
1301endif
1302
1303unrecoverable_trap_test: excserver exc_helpers.c
1304unrecoverable_trap_test: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token
1305unrecoverable_trap_test: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
1306# libdarwintest.a doesn't have an arm64 slice on watchOS
1307ifeq ($(PLATFORM),WatchOS)
1308unrecoverable_trap_test: INVALID_ARCHS += arm64
1309endif
1310
1311ifeq ($(findstring arm64,$(ARCH_CONFIGS)),)
1312EXCLUDED_SOURCES += arm_cpu_capabilities.c
1313else
1314arm_cpu_capabilities: INVALID_ARCHS = armv7k x86_64 x86_64h
1315arm_cpu_capabilities: excserver exc_helpers.c
1316arm_cpu_capabilities: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token -mcpu=apple-a15
1317#if HAS_ARM_FEAT_SME
1318arm_cpu_capabilities: OTHER_CFLAGS += -mcpu=apple-a15+sme2
1319#endif
1320# Including PrivateHeaders from both Kernel.framework and System.framework makes
1321# a mess out of the Mach headers we need to build exception handling support.
1322# Work around this by only including the arm/ directory.
1323arm_cpu_capabilities: OTHER_CFLAGS += -isystem $(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders/arm
1324arm_cpu_capabilities: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
1325endif
1326
1327# Disabling building of ldt files as dt_extractmeta crashes
1328# in build systems. Ref rdar://110251082
1329# Leaving commented bits for future re-enablement
1330EXCLUDED_SOURCES += ldt_code32.s ldt.c
1331
1332#\ifeq ($(findstring x86_64,$(ARCH_CONFIGS)),)
1333#EXCLUDED_SOURCES += ldt_code32.s ldt.c
1334#\else # target = osx
1335#$(OBJROOT)/ldt_mach_exc_server.c:
1336#	$(MIG) $(CFLAGS) \
1337#		-user /dev/null \
1338#		-server $(OBJROOT)/ldt_mach_exc_server.c \
1339#		-header $(OBJROOT)/ldt_mach_exc.h \
1340#		mach_exc.defs
1341#
1342#ldt: INVALID_ARCHS = $(ARCH_CONFIGS)
1343#ldt: $(OBJROOT)/ldt_mach_exc_server.c
1344#ldt: OTHER_CFLAGS += -arch x86_64 -I $(OBJROOT) $(SRCROOT)/ldt_code32.s -Wl,-pagezero_size,0x1000 -Wno-missing-variable-declarations
1345#ldt: CODE_SIGN_ENTITLEMENTS=ldt_entitlement.plist
1346#\endif
1347
1348ifneq ($(PLATFORM),BridgeOS)
1349EXCLUDED_SOURCES += remote_time.c
1350else
1351remote_time: INVALID_ARCHS = armv7 armv7s arm64_32
1352endif
1353
1354vm_phys_footprint: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
1355
1356vm_kern_count_wired_kernelcache: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders/mach
1357
1358debug_control_port_for_pid: CODE_SIGN_ENTITLEMENTS = ./debug_control_port_for_pid_entitlement.plist
1359
1360prng: OTHER_LDFLAGS += -ldarwintest_utils
1361
1362preoslog: OTHER_LDFLAGS += -ldarwintest_utils
1363preoslog: OTHER_CFLAGS += test_utils.c
1364
1365task_policy: CODE_SIGN_ENTITLEMENTS = ./task_policy_entitlement.plist
1366
1367OTHER_TEST_TARGETS += task_policy_unentitled
1368task_policy_unentitled: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
1369task_policy_unentitled: OTHER_CFLAGS += -DUNENTITLED
1370task_policy_unentitled: task_policy.c
1371	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
1372	$(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@
1373
1374
1375EXCLUDED_SOURCES += get_shared_cache_address.c
1376
1377
1378ifneq ($(filter iPhoneOS MacOSX, $(PLATFORM)),)
1379CUSTOM_TARGETS += get_shared_cache_address
1380
1381get_shared_cache_address: INVALID_ARCHS = arm64 i386 x86_64
1382get_shared_cache_address: get_shared_cache_address.c
1383	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/get_shared_cache_address
1384
1385install-get_shared_cache_address: get_shared_cache_address
1386	$(CODESIGN) --force --sign - --timestamp=none --identifier=com.apple.get_shared_cache_address $(SYMROOT)/get_shared_cache_address
1387	mkdir -p $(INSTALLDIR)
1388	cp $(SYMROOT)/get_shared_cache_address $(INSTALLDIR)/
1389endif
1390
1391
1392OTHER_TEST_TARGETS += vm_memory_share_tests
1393
1394vm_memory_share_tests: INVALID_ARCHS = i386
1395vm_memory_share_tests: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
1396vm_memory_share_tests: vm_memory_tests_src/main.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
1397	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1398	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
1399	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
1400
1401# build the mach server as individual helper which does not use libdarwintest
1402CUSTOM_TARGETS += vm_memory_share_tests_server
1403vm_memory_share_tests_server: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
1404vm_memory_share_tests_server: vm_memory_tests_src/server.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
1405	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/vm_memory_share_tests_server
1406	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
1407	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
1408
1409install-vm_memory_share_tests_server: vm_memory_share_tests_server
1410	mkdir -p $(INSTALLDIR)
1411	cp $(SYMROOT)/vm_memory_share_tests_server $(INSTALLDIR)/
1412
1413ifeq ($(PLATFORM),MacOSX)
1414EXCLUDED_SOURCES += vm/kern_max_task_pmem.c
1415endif
1416
1417EXCLUDED_SOURCES += benchmark/helpers.c
1418
1419vm/fault_throughput: OTHER_CFLAGS += benchmark/helpers.c
1420
1421.PHONY: install-vm/fault_throughput
1422install-vm/fault_throughput: vm/fault_throughput
1423	mkdir -p $(INSTALLDIR)/vm
1424	cp $(SYMROOT)/vm/fault_throughput $(INSTALLDIR)/vm/
1425
1426$(SYMROOT)/vm/fault_throughput.lua: $(SRCROOT)/vm/fault_throughput.lua
1427	mkdir -p $(SYMROOT)/vm
1428	cp $< $@
1429	chmod +x $@
1430
1431.PHONY: install-fault_throughput_benchrun
1432install-$(SYMROOT)/vm/fault_throughput.lua: $(SYMROOT)/vm/fault_throughput.lua
1433	mkdir -p $(INSTALLDIR)/vm
1434	cp $(SYMROOT)/vm/fault_throughput.lua $(INSTALLDIR)/vm/
1435	chmod +x $(INSTALLDIR)/vm/fault_throughput.lua
1436
1437EXCLUDED_SOURCES += vm/fault_throughput.plist
1438
1439CUSTOM_TARGETS += $(SYMROOT)/vm/fault_throughput.lua vm/fault_throughput
1440
1441ifeq ($(PLATFORM),MacOSX)
1442mixed_pagesize: vm/mixed_pagesize.c
1443	mkdir -p $(SYMROOT)/vm
1444	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
1445
1446install-mixed_pagesize: mixed_pagesize
1447	mkdir -p $(INSTALLDIR)/vm
1448	cp $(SYMROOT)/vm/mixed_pagesize $(INSTALLDIR)/vm/
1449
1450BATS_PLISTS += $(SRCROOT)/vm/mixed_pagesize.plist
1451
1452EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
1453CUSTOM_TARGETS += mixed_pagesize
1454else
1455EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
1456endif
1457
1458manual_wq_cooperative: manual_wq_cooperative.c
1459	mkdir -p $(SYMROOT)
1460	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
1461
1462install-manual_wq_cooperative: manual_wq_cooperative
1463	mkdir -p $(INSTALLDIR)
1464	cp $(SYMROOT)/manual_wq_cooperative $(INSTALLDIR)
1465
1466BATS_PLISTS += $(SRCROOT)/workqueue.plist
1467EXCLUDED_SOURCES += manual_wq_cooperative.c workqueue.plist
1468CUSTOM_TARGETS += manual_wq_cooperative
1469
1470# VM madvise(2) benchmark
1471
1472BATS_PLISTS += $(SRCROOT)/vm/perf_madvise.plist
1473
1474vm/perf_madvise: OTHER_CFLAGS += benchmark/helpers.c
1475
1476.PHONY: install-vm/perf_madvise
1477install-vm/perf_madvise: vm/perf_madvise
1478	mkdir -p $(INSTALLDIR)/vm
1479	cp $(SYMROOT)/vm/perf_madvise $(INSTALLDIR)/vm/
1480
1481$(SYMROOT)/vm/perf_madvise.lua: $(SRCROOT)/vm/perf_madvise.lua
1482	mkdir -p $(SYMROOT)/vm
1483	cp $< $@
1484	chmod +x $@
1485
1486.PHONY: install-perf_madvise_benchrun
1487install-$(SYMROOT)/vm/perf_madvise.lua: $(SYMROOT)/vm/perf_madvise.lua
1488	mkdir -p $(INSTALLDIR)/vm
1489	cp $(SYMROOT)/vm/perf_madvise.lua $(INSTALLDIR)/vm
1490	chmod +x $(INSTALLDIR)/vm/perf_madvise.lua
1491
1492CUSTOM_TARGETS += $(SYMROOT)/vm/perf_madvise.lua vm/perf_madvise
1493
1494BATS_PLISTS += $(SRCROOT)/vm/perf_compressor.plist
1495EXCLUDED_SOURCES += vm/perf_compressor.plist
1496
1497vm/perf_compressor: OTHER_CFLAGS += benchmark/helpers.c
1498
1499.PHONY: install-vm/perf_compressor
1500install-vm/perf_compressor: vm/perf_compressor
1501	mkdir -p $(INSTALLDIR)/vm
1502	cp $(SYMROOT)/vm/perf_compressor $(INSTALLDIR)/vm/
1503
1504$(SYMROOT)/vm/perf_compressor.lua: $(SRCROOT)/vm/perf_compressor.lua
1505	mkdir -p $(SYMROOT)/vm
1506	cp $< $@
1507	chmod +x $@
1508
1509.PHONY: install-$(SYMROOT)/vm/perf_compressor_benchrun
1510install-$(SYMROOT)/vm/perf_compressor.lua: $(SYMROOT)/vm/perf_compressor.lua
1511	mkdir -p $(INSTALLDIR)/vm
1512	cp $(SYMROOT)/vm/perf_compressor.lua $(INSTALLDIR)/vm/
1513	chmod +x $(INSTALLDIR)/vm/perf_compressor.lua
1514
1515CUSTOM_TARGETS += $(SYMROOT)/vm/perf_compressor.lua vm/perf_compressor
1516
1517ioconnectasyncmethod_57641955: OTHER_LDFLAGS += -framework IOKit
1518
1519ifeq ($(PLATFORM),BridgeOS)
1520EXCLUDED_SOURCES += ipsec.m
1521else
1522ipsec: OTHER_LDFLAGS += -framework Foundation -framework CoreFoundation -framework NetworkExtension
1523ipsec: CODE_SIGN_ENTITLEMENTS = ipsec.entitlements
1524endif
1525
1526test_sysctl_kern_procargs_25397314: OTHER_LDFLAGS += -framework Foundation -ldarwintest_utils
1527
1528INCLUDED_TEST_SOURCE_DIRS += counter
1529
1530EXCLUDED_SOURCES += counter/common.c
1531counter/counter: OTHER_CFLAGS += counter/common.c test_utils.c
1532counter/counter: OTHER_LDFLAGS += -ldarwintest_utils -ldarwintest
1533
1534counter/benchmark: OTHER_CFLAGS += counter/common.c benchmark/helpers.c
1535
1536.PHONY: install-counter/benchmark
1537install-counter/benchmark: counter/benchmark
1538	mkdir -p $(INSTALLDIR)/counter
1539	cp $(SYMROOT)/counter/benchmark $(INSTALLDIR)/counter/
1540
1541$(SYMROOT)/counter/benchmark.lua: $(SRCROOT)/counter/benchmark.lua
1542	mkdir -p $(SYMROOT)/counter
1543	cp $< $@
1544	chmod +x $@
1545
1546.PHONY: install-counter_benchrun
1547install-$(SYMROOT)/counter/benchmark.lua: $(SYMROOT)/counter/benchmark.lua
1548	mkdir -p $(INSTALLDIR)/counter
1549	cp $(SYMROOT)/counter/benchmark.lua $(INSTALLDIR)/counter/
1550	chmod +x $(INSTALLDIR)/counter/benchmark.lua
1551
1552CUSTOM_TARGETS += $(SYMROOT)/counter/benchmark.lua counter/benchmark
1553
1554ifneq ($(PLATFORM),MacOSX)
1555EXCLUDED_SOURCES += vm/page_size_globals.c
1556else
1557vm/page_size_globals: INVALID_ARCHS = arm64 arm64e
1558endif
1559
1560# Same helper used in execperf, different build system.
1561static_binary: ../tools/tests/execperf/exit-asm.S
1562	$(CC) $(DT_CFLAGS) $(CFLAGS) $(filter-out -l%,$(DT_LDFLAGS) $(LDFLAGS) $(OTHER_LDFLAGS)) $< -o $(SYMROOT)/static_binary -static -nostartfiles -nodefaultlibs -Wl,-version_load_command -Wl,-segalign,0x4000 -e _main
1563	CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/static_binary
1564
1565install-static_binary: static_binary
1566	mkdir -p $(INSTALLDIR)
1567	cp $(SYMROOT)/static_binary $(INSTALLDIR)
1568
1569CUSTOM_TARGETS += static_binary
1570EXCLUDED_SOURCES += static_binary.c
1571
1572test_static_binary_csflags: static_binary
1573test_static_binary_csflags: OTHER_LDFLAGS += -ldarwintest_utils
1574
1575
1576libmalloc_apple_array: CODE_SIGN_ENTITLEMENTS = entitlements/libmalloc_apple_array.entitlements
1577libmalloc_apple_array: OTHER_CFLAGS += -DENTITLED=1 drop_priv.c test_utils.c
1578libmalloc_apple_array: OTHER_LDFLAGS += -ldarwintest_utils
1579libmalloc_apple_array: libmalloc_apple_array.c print_apple_array print_apple_array_HR1 print_apple_array_HR2 print_apple_array_hardened_proc print_apple_array_hardened_proc_security print_apple_array_hardened_heap print_apple_array_hardened_heap_security
1580	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
1581	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
1582
1583libmalloc_apple_array_unentitled: OTHER_CFLAGS += drop_priv.c test_utils.c
1584libmalloc_apple_array_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
1585libmalloc_apple_array_unentitled: libmalloc_apple_array.c print_apple_array print_apple_array_HR1 print_apple_array_HR2 print_apple_array_hardened_proc print_apple_array_hardened_heap
1586	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $(OTHER_CFLAGS) $< -o $(SYMROOT)/$@
1587	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1588
1589CUSTOM_TARGETS += print_apple_array
1590print_apple_array: print_apple_array.c
1591	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1592	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1593
1594CUSTOM_TARGETS += print_apple_array_HR1
1595print_apple_array_HR1: CODE_SIGN_ENTITLEMENTS=entitlements/enhanced-security-binary-entitlements-1.plist
1596print_apple_array_HR1: print_apple_array.c
1597	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1598	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1599
1600CUSTOM_TARGETS += print_apple_array_HR2
1601print_apple_array_HR2: CODE_SIGN_ENTITLEMENTS=entitlements/enhanced-security-binary-entitlements-2.plist
1602print_apple_array_HR2: print_apple_array.c
1603	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1604	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1605
1606CUSTOM_TARGETS += print_apple_array_hardened_proc
1607print_apple_array_hardened_proc: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-proc.entitlements
1608print_apple_array_hardened_proc: print_apple_array.c
1609	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1610	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1611
1612CUSTOM_TARGETS += print_apple_array_hardened_proc_security
1613print_apple_array_hardened_proc_security: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-proc-security.entitlements
1614print_apple_array_hardened_proc_security: print_apple_array.c
1615	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1616	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1617
1618
1619CUSTOM_TARGETS += print_apple_array_hardened_heap
1620print_apple_array_hardened_heap: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-heap.entitlements
1621print_apple_array_hardened_heap: print_apple_array.c
1622	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1623	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1624
1625CUSTOM_TARGETS += print_apple_array_hardened_heap_security
1626print_apple_array_hardened_heap_security: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-heap-security.entitlements
1627print_apple_array_hardened_heap_security: print_apple_array.c
1628	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1629	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1630
1631install-print_apple_array: print_apple_array
1632	mkdir -p $(INSTALLDIR)/tools
1633	cp $(SYMROOT)/print_apple_array $(INSTALLDIR)/tools/
1634
1635install-print_apple_array_HR1: print_apple_array_HR1
1636	mkdir -p $(INSTALLDIR)/tools
1637	cp $(SYMROOT)/print_apple_array_HR1 $(INSTALLDIR)/tools/
1638
1639install-print_apple_array_HR2: print_apple_array_HR2
1640	mkdir -p $(INSTALLDIR)/tools
1641	cp $(SYMROOT)/print_apple_array_HR2 $(INSTALLDIR)/tools/
1642
1643install-print_apple_array_hardened_proc: print_apple_array_hardened_proc
1644	mkdir -p $(INSTALLDIR)/tools
1645	cp $(SYMROOT)/print_apple_array_hardened_proc $(INSTALLDIR)/tools/
1646
1647install-print_apple_array_hardened_proc_security: print_apple_array_hardened_proc_security
1648	mkdir -p $(INSTALLDIR)/tools
1649	cp $(SYMROOT)/print_apple_array_hardened_proc_security $(INSTALLDIR)/tools/
1650
1651install-print_apple_array_hardened_heap: print_apple_array_hardened_heap
1652	mkdir -p $(INSTALLDIR)/tools
1653	cp $(SYMROOT)/print_apple_array_hardened_heap $(INSTALLDIR)/tools/
1654
1655
1656install-print_apple_array_hardened_heap_security: print_apple_array_hardened_heap_security
1657	mkdir -p $(INSTALLDIR)/tools
1658	cp $(SYMROOT)/print_apple_array_hardened_heap_security $(INSTALLDIR)/tools/
1659
1660persona: CODE_SIGN_ENTITLEMENTS = persona.entitlements
1661persona_adoption: CODE_SIGN_ENTITLEMENTS = persona_adoption.entitlements
1662
1663OTHER_TEST_TARGETS += libmalloc_apple_array libmalloc_apple_array_unentitled
1664
1665entropy: OTHER_CFLAGS += -framework perfdata
1666
1667debug_enable_syscall_rejection: OTHER_LDFLAGS += -ldarwintest_utils
1668
1669thread_set_state_arm64_cpsr: CODE_SIGN_ENTITLEMENTS = entitlements/thread_set_state.entitlement
1670
1671vm/app_swap: OTHER_LDFLAGS += -ldarwintest_utils
1672
1673CUSTOM_TARGETS += debug_syscall_rejection_helper
1674debug_syscall_rejection_helper: debug_syscall_rejection_helper.c
1675	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@; \
1676	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
1677	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1678
1679
1680install-debug_syscall_rejection_helper: debug_syscall_rejection_helper
1681	mkdir -p $(INSTALLDIR)
1682	cp $(SYMROOT)/debug_syscall_rejection_helper $(INSTALLDIR)/
1683
1684file_leases: OTHER_CFLAGS += test_utils.c
1685file_leases: OTHER_LDFLAGS += -ldarwintest_utils
1686file_leases: CODE_SIGN_ENTITLEMENTS = file_leases.entitlements
1687
1688iopolicy: OTHER_LDFLAGS += -ldarwintest_utils
1689iopolicy: CODE_SIGN_ENTITLEMENTS = iopolicy.entitlements
1690
1691INCLUDED_TEST_SOURCE_DIRS += vfs
1692vfs/freeable_vnodes: OTHER_LDFLAGS += -ldarwintest_utils
1693vfs/sandbox_fstat: OTHER_LDFLAGS += -lsandbox
1694vfs/named_fork_path: OTHER_LDFLAGS += -lsandbox
1695vfs/sandbox_type_error: OTHER_LDFLAGS += -lsandbox
1696vfs/sandbox_appledouble_write: OTHER_LDFLAGS += -lsandbox
1697
1698# tests/vm/configurator_*.c use the VM configurator
1699
1700VM_CONFIGURATOR_SRCS = $(wildcard vm/configurator_*.c)
1701VM_CONFIGURATOR_TARGETS = $(VM_CONFIGURATOR_SRCS:%.c=%)
1702
1703$(VM_CONFIGURATOR_TARGETS): vm/configurator/vm_configurator.c
1704$(VM_CONFIGURATOR_TARGETS): vm/configurator/vm_configurator.h vm/configurator/vm_configurator_tests.h
1705$(VM_CONFIGURATOR_TARGETS): OTHER_CFLAGS += -Wall -Wextra -g
1706
1707# exception handling helpers
1708$(VM_CONFIGURATOR_TARGETS): exc_guard_helper.c try_read_write.c exc_helpers.c test_utils.c excserver
1709$(VM_CONFIGURATOR_TARGETS): OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1710$(VM_CONFIGURATOR_TARGETS): OTHER_LDFLAGS += -ldarwintest_utils
1711$(VM_CONFIGURATOR_TARGETS): CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
1712
1713# Convenience target to build all tests that use vm_configurator.c
1714.PHONY: all-vm-configurator-tests
1715all-vm-configurator-tests: $(VM_CONFIGURATOR_TARGETS)
1716
1717# Convenience target to list all test executables that use vm_configurator.c
1718.PHONY: list-all-vm-configurator-executables
1719list-all-vm-configurator-executables:
1720	@ echo $(addprefix $(SYMROOT)/,$(VM_CONFIGURATOR_TARGETS))
1721
1722vm/corpse_footprint: OTHER_LDFLAGS += -ldarwintest_utils
1723
1724EXCLUDED_SOURCES += constrained_ctypes_tests.c
1725CUSTOM_TARGETS += constrained_ctypes_tests_enabled constrained_ctypes_tests_enacted constrained_ctypes_tests_disabled
1726constrained_ctypes_tests_enabled: OTHER_CFLAGS += -D__CCT_TEST_ENABLED
1727constrained_ctypes_tests_enabled: OTHER_LDFLAGS += -ldarwintest_utils
1728constrained_ctypes_tests_enabled: constrained_ctypes_tests.c
1729	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_enabled
1730	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_enabled;
1731
1732install-constrained_ctypes_tests_enabled: constrained_ctypes_tests_enabled
1733	mkdir -p $(INSTALLDIR)
1734	cp $(SYMROOT)/constrained_ctypes_tests_enabled $(INSTALLDIR)/
1735
1736constrained_ctypes_tests_enacted: OTHER_CFLAGS += -D__CCT_TEST_ENABLED
1737constrained_ctypes_tests_enacted: OTHER_CFLAGS += -D__CCT_TEST_ENACTED
1738constrained_ctypes_tests_enacted: OTHER_CFLAGS += -fbounds-safety
1739constrained_ctypes_tests_enacted: OTHER_LDFLAGS += -ldarwintest_utils
1740constrained_ctypes_tests_enacted: constrained_ctypes_tests.c
1741	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_enacted
1742	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_enacted;
1743
1744install-constrained_ctypes_tests_enacted: constrained_ctypes_tests_enacted
1745	mkdir -p $(INSTALLDIR)
1746	cp $(SYMROOT)/constrained_ctypes_tests_enacted $(INSTALLDIR)/
1747
1748
1749constrained_ctypes_tests_disabled: OTHER_LDFLAGS += -ldarwintest_utils
1750constrained_ctypes_tests_disabled: constrained_ctypes_tests.c
1751	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_disabled
1752	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_disabled;
1753
1754install-constrained_ctypes_tests_disabled: constrained_ctypes_tests_disabled
1755	mkdir -p $(INSTALLDIR)
1756	cp $(SYMROOT)/constrained_ctypes_tests_disabled $(INSTALLDIR)/
1757
1758task_suspend_stats: OTHER_LDFLAGS += -ldarwintest_utils
1759task_suspend_stats: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
1760
1761exec_set_proc_name: OTHER_LDFLAGS += -ldarwintest_utils
1762
1763
1764include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.targets
1765
1766exception_ports_info: CODE_SIGN_ENTITLEMENTS = entitlements/set_exception_port.entitlement
1767
1768vfs/longpaths: vfs/longpaths.c
1769vfs/longpaths: OTHER_LDFLAGS += -ldarwintest_utils
1770vfs/longpaths: CODE_SIGN_ENTITLEMENTS = vfs/longpaths.entitlements
1771
1772vfs/devfd_access: vfs/devfd_access.c
1773vfs/devfd_access: CODE_SIGN_ENTITLEMENTS = vfs/devfd_access.entitlements
1774
1775vfs/openbyid_stress: vfs/openbyid_stress.c
1776vfs/openbyid_stress: CODE_SIGN_ENTITLEMENTS = vfs/openbyid_stress.entitlements
1777
1778OTHER_TEST_TARGETS += trial_experiment_factors_entitled
1779trial_experiment_factors_entitled: OTHER_CFLAGS += -DENTITLED=1
1780trial_experiment_factors_entitled: CODE_SIGN_ENTITLEMENTS=kern-trial.entitlements
1781trial_experiment_factors_entitled: trial_experiment_factors.c
1782	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1783	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
1784
1785memorystatus_experiment_factors: CODESIGN_ENTITLEMENTS=./memorystatus/memorystatus_experiment_factors.entitlements
1786memorystatus_experiment_factors: memorystatus/memorystatus_experiment_factors.c
1787	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1788	$(ENV) CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODESIGN_ENTITLEMENTS) $(SYMROOT)/$@;
1789
1790ifeq ($(PLATFORM),MacOSX)
1791CUSTOM_TARGETS += nox86exec_helper
1792
1793nox86exec_helper: INVALID_ARCHS = arm64e arm64
1794nox86exec_helper: nox86exec_helper.c
1795	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1796	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1797
1798install-posix_spawn_alt_rosetta_helper: nox86exec_helper
1799	mkdir -p $(INSTALLDIR)
1800	cp $(SYMROOT)/nox86exec_helper $(INSTALLDIR)/
1801endif
1802
1803vm/memorystatus_rearm: excserver
1804vm/memorystatus_rearm: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1805vm/memorystatus_rearm: CODE_SIGN_ENTITLEMENTS = vm/memorystatus_rearm.entitlements
1806