xref: /xnu-10063.121.3/tests/Makefile (revision 2c2f96dc2b9a4408a43d3150ae9c105355ca3daa)
1PROJECT := xnu/darwintests
2
3# When building as part of xnu_tests, we get passed a DSTROOT that's got the
4# unit test path in it already.  But, BASEDSTROOT doesn't, so use that instead.
5ifdef BASEDSTROOT
6override DSTROOT = $(BASEDSTROOT)
7endif
8
9INVALID_ARCHS = i386 $(filter armv7%,$(ARCH_CONFIGS))
10ENABLE_LTE_TESTS=YES
11
12OTHER_LTE_INCLUDE_FILES += \
13	/System/Library/PrivateFrameworks/LoggingSupport.framework, \
14	/System/Library/PrivateFrameworks/MobileKeyBag.framework, \
15	/System/Library/Frameworks/IOSurface.framework, \
16	/usr/local/lib/libdarwintest_utils.dylib, \
17	/usr/lib/libapple_crypto.dylib,
18
19DEVELOPER_DIR ?= $(shell xcode-select -p)
20
21
22# the xnu build system will only ever call us with the default target
23.DEFAULT_GOAL := install
24
25include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.common
26
27OTHER_CFLAGS  = -Weverything -Wno-gnu-union-cast -Wno-missing-field-initializers -Wno-partial-availability
28OTHER_CFLAGS += -Wno-missing-noreturn -Wno-vla -Wno-reserved-id-macro -Wno-documentation-unknown-command
29OTHER_CFLAGS += -Wno-padded -Wno-used-but-marked-unused -Wno-covered-switch-default -Wno-nullability-extension
30OTHER_CFLAGS += -Wno-gnu-empty-initializer -Wno-unused-macros -Wno-undef -Wno-fixed-enum-extension
31OTHER_CFLAGS += -Wno-gnu-auto-type -Wno-switch-enum -Wno-variadic-macros
32OTHER_CFLAGS += --std=gnu11 -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
33OTHER_CFLAGS += -UT_NAMESPACE_PREFIX -DT_NAMESPACE_PREFIX=xnu -DT_LEAKS_DISABLE=1
34OTHER_CFLAGS += -F $(SDKROOT)/System/Library/PrivateFrameworks
35
36
37CODESIGN:=$(shell xcrun -sdk "$(TARGETSDK)" -find codesign)
38CODESIGN_HARDENED_RUNTIME:=$(CODESIGN) -o runtime
39CODESIGN_ALLOCATE:=$(shell xcrun -sdk "$(TARGETSDK)" -find codesign_allocate)
40
41ifeq ($(PLATFORM),iPhoneOS)
42  IOS_TEST_COMPAT = YES
43else
44  IOS_TEST_COMPAT = NO
45endif
46
47# Subsystems
48
49include ktrace/Makefile
50
51INCLUDED_TEST_SOURCE_DIRS += recount
52include recount/Makefile
53INCLUDED_TEST_SOURCE_DIRS += cpu_counters
54include cpu_counters/Makefile
55
56# Miscellaneous Tests
57
58atm_diagnostic_flag: OTHER_CFLAGS += drop_priv.c
59
60atm_diagnostic_flag_entitled: CODE_SIGN_ENTITLEMENTS = atm_diagnostic_flag.entitlements
61atm_diagnostic_flag_entitled: OTHER_CFLAGS += drop_priv.c
62
63avx: INVALID_ARCHS = $(filter arm%,$(ARCH_CONFIGS))
64avx: OTHER_CFLAGS += -mavx512f -mavx512bw -mavx512vl
65avx: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
66avx: CONFIG_FLAGS := $(filter-out -O%,$(CONFIG_FLAGS))
67# Add -mno-implicit-float to prevent the compiler from touching SIMD regs
68# unexpectedly
69avx: CONFIG_FLAGS += -mno-implicit-float
70# Disable vzeroupper insertion to work around rdar://problem/35035096
71avx: CONFIG_FLAGS += -mllvm -x86-use-vzeroupper=0
72ifneq (osx,$(TARGET_NAME))
73EXCLUDED_SOURCES += avx.c
74endif
75
76CUSTOM_TARGETS = sr_entitlement_helper
77
78sr_entitlement_helper: sr_entitlement_helper.c
79	mkdir -p $(SYMROOT)
80	$(CC) -I $(OBJROOT) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) sr_entitlement_helper.c -o $(SYMROOT)/$@
81	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements sr_entitlement.entitlements $(SYMROOT)/$@; \
82	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements sr_entitlement.entitlements $(SYMROOT)/$@;
83
84install-sr_entitlement_helper: sr_entitlement_helper
85	mkdir -p $(INSTALLDIR)
86	cp $(SYMROOT)/sr_entitlement_helper $(INSTALLDIR)
87
88sr_entitlement: OTHER_LDFLAGS += -ldarwintest_utils
89
90restrict_jit: CODE_SIGN_ENTITLEMENTS = restrict_jit.entitlements
91
92backtracing_tests: OTHER_LDFLAGS += -framework CoreSymbolication
93backtracing_tests: CODE_SIGN_ENTITLEMENTS = kernel_symbolication_entitlements.plist
94
95CUSTOM_TARGETS += corpse_backtrace2
96
97corpse_backtrace2:
98		$(MIG) $(CFLAGS) \
99		-DMACH_EXC_SERVER_TASKIDTOKEN \
100		-DMACH_EXC_SERVER_BACKTRACE \
101		-sheader $(OBJROOT)/excserver_backtrace.h \
102		-server $(OBJROOT)/excserver_backtrace.c \
103		-header /dev/null -user /dev/null \
104		excserver_backtrace.defs
105
106install-corpse_backtrace2: ;
107
108corpse_backtrace: corpse_backtrace2 exc_helpers.c
109corpse_backtrace: OTHER_CFLAGS += $(OBJROOT)/excserver_backtrace.c
110corpse_backtrace: OTHER_CFLAGS += -I $(OBJROOT)
111corpse_backtrace: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
112
113CUSTOM_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
114
115exception_tests: excserver_protect exc_helpers.c
116exception_tests: CODE_SIGN_ENTITLEMENTS = exception_tests.entitlements
117exception_tests: OTHER_CFLAGS += $(OBJROOT)/excserver_protect.c
118exception_tests: OTHER_CFLAGS += -I $(OBJROOT)
119exception_tests: OTHER_CFLAGS += -DENTITLED=1
120
121immovable_send: excserver
122immovable_send: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
123immovable_send: OTHER_LDFLAGS += -ldarwintest_utils -lpthread -framework IOKit
124immovable_send: immovable_send_client
125immovable_send: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
126
127locks: OTHER_LDFLAGS += -ldarwintest_utils
128
129immovable_send_client: immovable_send_client.c
130	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) immovable_send_client.c -o $(SYMROOT)/immovable_send_client
131
132install-immovable_send_client: immovable_send_client
133	mkdir -p $(INSTALLDIR)
134	cp $(SYMROOT)/immovable_send_client $(INSTALLDIR)/
135
136
137posix_spawnattr_set_crash_behavior_np: posix_spawnattr_set_crash_behavior_np_child
138posix_spawnattr_set_crash_behavior_np: CODE_SIGN_ENTITLEMENTS = posix_spawnattr_set_crash_behavior_np_entitlements.plist
139
140posix_spawnattr_set_crash_behavior_np_child: posix_spawnattr_set_crash_behavior_np_child.c
141	$(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
142	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
143
144install-posix_spawnattr_set_crash_behavior_np_child: posix_spawnattr_set_crash_behavior_np_child
145	mkdir -p $(INSTALLDIR)
146	cp $(SYMROOT)/posix_spawnattr_set_crash_behavior_np_child $(INSTALLDIR)/
147
148posix_spawnattr_set_launch_type_np: posix_spawnattr_set_launch_type_test
149posix_spawnattr_set_launch_type_np: OTHER_CFLAGS += -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
150
151posix_spawn_launch_type: CODE_SIGN_ENTITLEMENTS = posix_spawn_launch_type-entitlements.plist
152
153port_exhaustion: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
154port_exhaustion: port_exhaustion_client
155
156port_exhaustion_client: port_exhaustion_client.c
157	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) port_exhaustion_client.c -o $(SYMROOT)/port_exhaustion_client
158
159install-port_exhaustion_client: port_exhaustion_client
160	mkdir -p $(INSTALLDIR)
161	cp $(SYMROOT)/port_exhaustion_client $(INSTALLDIR)/
162
163port_table_limits: rnserver
164port_table_limits: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
165port_table_limits: OTHER_CFLAGS += $(OBJROOT)/rnServer.c -I $(OBJROOT)
166port_table_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
167port_table_limits: port_table_limits_client
168
169port_table_limits_client: port_table_limits_client.c
170	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) port_table_limits_client.c -o $(SYMROOT)/port_table_limits_client
171	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
172
173install-port_table_limits_client: port_table_limits_client
174	mkdir -p $(INSTALLDIR)
175	cp $(SYMROOT)/port_table_limits_client $(INSTALLDIR)/
176
177CUSTOM_TARGETS += kqwl_rnserver
178
179kqwl_rnserver:
180	$(MIG) $(CFLAGS) \
181		-DKQWORKLOOPS_VIOLATION_SUPPORTED \
182		-user /dev/null \
183		-header $(OBJROOT)/kqwl_rn.h \
184		-sheader $(OBJROOT)/kqwl_rnServer.h \
185		-server $(OBJROOT)/kqwl_rnServer.c \
186		rnserver.defs
187install-kqwl_rnserver: ;
188
189kqworkloop_limits: kqwl_rnserver
190kqworkloop_limits: OTHER_CFLAGS += $(OBJROOT)/kqwl_rnServer.c -I $(OBJROOT)
191kqworkloop_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
192kqworkloop_limits: kqworkloop_limits_client
193
194kqworkloop_limits_client: kqworkloop_limits_client.c
195	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) kqworkloop_limits_client.c -o $(SYMROOT)/kqworkloop_limits_client
196	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
197
198install-kqworkloop_limits_client: kqworkloop_limits_client
199	mkdir -p $(INSTALLDIR)
200	cp $(SYMROOT)/kqworkloop_limits_client $(INSTALLDIR)/
201
202ipc/task_name_for_pid: CODE_SIGN_ENTITLEMENTS = ipc/task_name_for_pid_entitlement.plist
203
204fd_table_limits: rnserver
205fd_table_limits: OTHER_CFLAGS += $(OBJROOT)/rnServer.c -I $(OBJROOT)
206fd_table_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
207fd_table_limits: fd_table_limits_client
208
209fd_table_limits_client: fd_table_limits_client.c
210	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) fd_table_limits_client.c -o $(SYMROOT)/fd_table_limits_client
211	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
212
213install-fd_table_limits_client: fd_table_limits_client
214	mkdir -p $(INSTALLDIR)
215	cp $(SYMROOT)/fd_table_limits_client $(INSTALLDIR)/
216
217vm_spawn_tool: INVALID_ARCHS = i386
218vm_spawn_tool: vm_spawn_tool.c
219	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_spawn_tool.c -o $(SYMROOT)/vm_spawn_tool
220
221install-vm_spawn_tool: vm_spawn_tool
222	mkdir -p $(INSTALLDIR)/tools
223	cp $(SYMROOT)/vm_spawn_tool $(INSTALLDIR)/tools/
224
225CUSTOM_TARGETS += imm_pinned_control_port_crasher
226CUSTOM_TARGETS += imm_pinned_control_port_crasher_3P_hardened
227
228imm_pinned_control_port: excserver_protect
229imm_pinned_control_port: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
230imm_pinned_control_port: OTHER_CFLAGS += $(OBJROOT)/excserver_protect.c -I $(OBJROOT)
231imm_pinned_control_port: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
232imm_pinned_control_port: imm_pinned_control_port_crasher imm_pinned_control_port_crasher_3P_hardened
233
234imm_pinned_control_port_crasher: imm_pinned_control_port_crasher.c cs_helpers.c
235	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
236	$^ -o $(SYMROOT)/$@
237	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
238
239imm_pinned_control_port_crasher_3P_hardened: CODE_SIGN_ENTITLEMENTS = entitlements/hardened-binary-entitlements-1.plist
240imm_pinned_control_port_crasher_3P_hardened: imm_pinned_control_port_crasher.c cs_helpers.c
241	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
242	$^ -o $(SYMROOT)/$@
243	$(CODESIGN) --force --sign - --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
244
245install-imm_pinned_control_port_crasher: imm_pinned_control_port_crasher
246	mkdir -p $(INSTALLDIR)
247	cp $(SYMROOT)/$^ $(INSTALLDIR)/
248
249install-imm_pinned_control_port_crasher_3P_hardened: imm_pinned_control_port_crasher_3P_hardened
250	mkdir -p $(INSTALLDIR)
251	cp $(SYMROOT)/$^ $(INSTALLDIR)/
252
253CUSTOM_TARGETS += reply_port_defense_client
254CUSTOM_TARGETS += reply_port_defense_client_3P_hardened
255
256reply_port_defense: excserver_protect
257reply_port_defense: OTHER_CFLAGS += $(OBJROOT)/excserver_protect.c -I $(OBJROOT)
258reply_port_defense: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
259reply_port_defense: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
260reply_port_defense: reply_port_defense_client reply_port_defense_client_3P_hardened
261
262reply_port_defense_client: reply_port_defense_client.c cs_helpers.c
263	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
264	$^ -o $(SYMROOT)/$@
265	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
266
267reply_port_defense_client_3P_hardened: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-binary-entitlements-1.plist
268reply_port_defense_client_3P_hardened: reply_port_defense_client.c cs_helpers.c
269	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders \
270	$^ -o $(SYMROOT)/$@
271	$(CODESIGN) --force --sign - --entitlements $(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@
272
273install-reply_port_defense_client: reply_port_defense_client
274	mkdir -p $(INSTALLDIR)
275	cp $(SYMROOT)/$< $(INSTALLDIR)/
276
277install-reply_port_defense_client_3P_hardened: reply_port_defense_client_3P_hardened
278	mkdir -p $(INSTALLDIR)
279	cp $(SYMROOT)/$< $(INSTALLDIR)/
280
281kas_info: OTHER_LDFLAGS += -framework CoreSymbolication
282kas_info: CODE_SIGN_ENTITLEMENTS = kernel_symbolication_entitlements.plist
283
284host_statistics_rate_limiting: cs_helpers.c host_statistics_rate_limiting.c
285
286EXCLUDED_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
287
288ifneq ($(IOS_TEST_COMPAT),YES)
289EXCLUDED_SOURCES += jumbo_va_spaces_28530648.c perf_compressor.c vm/entitlement_increased_memory_limit.c vm/ios13extended_footprint.c vm/entitlement_internal_bands.c
290endif
291
292perf_compressor: OTHER_LDFLAGS += -ldarwintest_utils
293perf_compressor: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
294
295
296vm/memorystatus_freeze_test: CODE_SIGN_ENTITLEMENTS=./task_for_pid_entitlement.plist
297vm/memorystatus_freeze_test: OTHER_LDFLAGS += -ldarwintest_utils
298vm/memorystatus_freeze_test: memorystatus_assertion_helpers.c test_utils.c vm/memorystatus_freeze_test.c
299	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
300	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
301
302vm/memorystatus_freeze_test_entitled: CODE_SIGN_ENTITLEMENTS=./vm/memorystatus_freeze_test_entitled.plist
303vm/memorystatus_freeze_test_entitled: OTHER_LDFLAGS += -ldarwintest_utils
304vm/memorystatus_freeze_test_entitled: test_utils.c vm/memorystatus_freeze_test_entitled.c
305	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
306	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
307
308memorystatus_is_assertion: OTHER_LDFLAGS += -ldarwintest_utils
309memorystatus_is_assertion: OTHER_CFLAGS += memorystatus_assertion_helpers.c
310
311memorystatus_vm_map_fork: OTHER_CFLAGS += test_utils.c
312memorystatus_vm_map_fork: OTHER_LDFLAGS += -ldarwintest_utils
313
314shared_cache_tests: OTHER_LDFLAGS += -ldarwintest_utils
315
316stackshot_tests: ./stackshot-entitlements.plist stackshot_tests.m
317stackshot_tests: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
318stackshot_tests: OTHER_CFLAGS += -Wno-objc-messaging-id
319stackshot_tests: OTHER_LDFLAGS += -lkdd -lz -ldarwintest_utils -framework Foundation -framework IOKit
320
321stackshot_accuracy: ./stackshot-entitlements.plist
322stackshot_accuracy: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
323stackshot_accuracy: OTHER_CFLAGS += -ldarwintest_utils -Wno-objc-messaging-id
324stackshot_accuracy: OTHER_LDFLAGS += -lkdd -ldarwintest_utils -framework Foundation
325stackshot_accuracy: INVALID_ARCHS = i386
326
327stackshot_spawn_exit_stress: ./stackshot-entitlements.plist
328stackshot_spawn_exit_stress: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
329
330ifeq ($(PLATFORM),MacOSX)
331CUSTOM_TARGETS += stackshot_translated_child
332
333stackshot_translated_child: INVALID_ARCHS = arm64 arm64e
334stackshot_translated_child: stackshot_translated_child.c
335	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) stackshot_translated_child.c -o $(SYMROOT)/stackshot_translated_child
336
337install-stackshot_translated_child: stackshot_translated_child
338	mkdir -p $(INSTALLDIR)
339	cp $(SYMROOT)/stackshot_translated_child $(INSTALLDIR)/
340else
341EXCLUDED_SOURCES += stackshot_translated_child.c
342endif
343
344microstackshot_tests: ./stackshot-entitlements.plist
345microstackshot_tests: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
346microstackshot_tests: OTHER_LDFLAGS = -ldarwintest_utils -framework ktrace -framework kperf -framework CoreFoundation
347
348memorystatus_zone_test: ./stackshot-entitlements.plist
349memorystatus_zone_test: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
350memorystatus_zone_test: OTHER_CFLAGS += -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
351memorystatus_zone_test: OTHER_LDFLAGS += -framework ktrace
352memorystatus_zone_test: OTHER_LDFLAGS += -ldarwintest_utils
353
354memcmp_zero: OTHER_CFLAGS += ../osfmk/arm64/memcmp_zero.s
355
356text_corruption: OTHER_LDFLAGS += -ldarwintest_utils
357CUSTOM_TARGETS += text_corruption_helper
358
359text_corruption_helper:
360	$(CC) $(LDFLAGS) $(CFLAGS) text_corruption_helper.c -lm -o $(SYMROOT)/$@;
361	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
362
363install-text_corruption_helper: text_corruption_helper
364	mkdir -p $(INSTALLDIR)
365	cp $(SYMROOT)/text_corruption_helper $(INSTALLDIR)/
366
367codesigntests: CODE_SIGN_ENTITLEMENTS=codesigntests-entitlements.plist
368codesigntests: OTHER_CFLAGS += -DTESTNAME=codesigntests
369# Adding a custom target and build/install rules since CODE_SIGN_ENTITLEMENTS
370# does not take in arguments, and we need to sign this test using a sha256T
371# digest
372
373OTHER_TEST_TARGETS += codesigntests_sha256t
374codesigntests_sha256t: OTHER_CFLAGS += -DTESTNAME=codesigntests_sha256t
375
376codesigntests_sha256t: codesigntests.c
377	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(DT_LDFLAGS) $(LDFLAGS) $(CFLAGS) codesigntests.c -o $(SYMROOT)/$@;
378	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --digest=sha256T -s - --entitlements codesigntests-entitlements.plist $(SYMROOT)/$@;
379install-codesigntests_sha256t: codesigntests_sha256t
380	mkdir -p $(INSTALLDIR)
381	cp $(SYMROOT)/codesigntests_sha256t $(INSTALLDIR)/
382
383
384ecc_test: OTHER_LDFLAGS += -ldarwintest_utils
385CUSTOM_TARGETS += ecc_test_helper
386
387ecc_test_helper:
388	$(CC) $(LDFLAGS) $(CFLAGS) ecc_test_helper.c -lm -o $(SYMROOT)/$@;
389	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
390
391install-ecc_test_helper: ecc_test_helper
392	mkdir -p $(INSTALLDIR)
393	cp $(SYMROOT)/ecc_test_helper $(INSTALLDIR)/
394
395vm/test_vm_no_pager: excserver
396vm/test_vm_no_pager: OTHER_LDFLAGS += -ldarwintest_utils -lpthread -lkdd -framework Foundation
397vm/test_vm_no_pager: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders $(OBJROOT)/excserver.c -I$(OBJROOT)
398vm,/test_vm_no_pager: vm/test_vm_no_pager_helper
399vm/test_vm_no_pager: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
400CUSTOM_TARGETS += vm/test_vm_no_pager_helper
401
402vm/test_vm_no_pager_helper: vm/test_vm_no_pager_helper.c
403	$(CC) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -lm -o $(SYMROOT)/$@;
404	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
405
406install-vm/test_vm_no_pager_helper: vm/test_vm_no_pager_helper
407	mkdir -p $(INSTALLDIR)/vm
408	cp $(SYMROOT)/vm/test_vm_no_pager_helper $(INSTALLDIR)/vm/
409
410
411kevent_qos: OTHER_CFLAGS += -Wno-unused-macros
412kevent_qos: OTHER_CFLAGS += -I $(OBJROOT)/
413
414test_knote_use_after_free: OTHER_CFLAGS += -Wno-unused-macros
415test_knote_use_after_free: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
416
417mach_get_times: OTHER_LDFLAGS += -ldarwintest_utils
418
419monotonic_core: ./stackshot-entitlements.plist
420monotonic_core: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
421monotonic_core: OTHER_LDFLAGS += -framework ktrace
422
423perf_exit: perf_exit_proc
424perf_exit: ./stackshot-entitlements.plist
425perf_exit: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
426perf_exit: OTHER_LDFLAGS = -framework ktrace -ldarwintest_utils
427perf_exit: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
428
429ipc/mach_exc_port_substitute: excserver
430ipc/mach_exc_port_substitute: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
431ipc/mach_exc_port_substitute: CODE_SIGN_ENTITLEMENTS = ipc/mach_exc_port_substitute.plist
432
433CUSTOM_TARGETS += prioritize_process_launch_helper
434prioritize_process_launch: prioritize_process_launch_helper
435
436prioritize_process_launch_helper: prioritize_process_launch_helper.c
437	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) prioritize_process_launch_helper.c -o $(SYMROOT)/prioritize_process_launch_helper
438	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
439	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
440
441install-prioritize_process_launch_helper: prioritize_process_launch_helper
442	mkdir -p $(INSTALLDIR)
443	cp $(SYMROOT)/prioritize_process_launch_helper $(INSTALLDIR)/
444
445
446perf_spawn_fork: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
447
448mach_exception_reply: OTHER_CFLAGS += -Wno-cast-align
449mach_exception_reply: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
450
451os_thread_self_restrict: os_thread_self_restrict.c os_thread_self_restrict-entitlements.plist
452os_thread_self_restrict: CODE_SIGN_ENTITLEMENTS=os_thread_self_restrict-entitlements.plist
453os_thread_self_restrict: OTHER_LDFLAGS += -sectcreate __TEXT __info_plist os_thread_self_restrict-identifier.plist
454
455# Temporarily disabled.  See rdar://121952316
456EXCLUDED_SOURCES += os_thread_self_restrict.c
457
458subsystem_root_path: subsystem_root_path.c subsystem_root_path-entitlements.plist
459subsystem_root_path: CODE_SIGN_ENTITLEMENTS=subsystem_root_path-entitlements.plist
460
461EXCLUDED_SOURCES += $(wildcard bounded_ptr_src/*.cpp)
462bounded_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
463bounded_ptr: $(wildcard bounded_ptr_src/*.cpp) bounded_ptr.cpp
464
465EXCLUDED_SOURCES += bounded_ptr_03.cpp
466bounded_ptr_03: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++03 $(DT_LDFLAGS)
467bounded_ptr_03: bounded_ptr_03.cpp
468
469EXCLUDED_SOURCES += $(wildcard bounded_array_src/*.cpp)
470bounded_array: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
471bounded_array: $(wildcard bounded_array_src/*.cpp) bounded_array.cpp
472
473EXCLUDED_SOURCES += $(wildcard bounded_array_ref_src/*.cpp)
474bounded_array_ref: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
475bounded_array_ref: $(wildcard bounded_array_ref_src/*.cpp) bounded_array_ref.cpp
476
477EXCLUDED_SOURCES += $(wildcard intrusive_shared_ptr_src/*.cpp)
478intrusive_shared_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
479intrusive_shared_ptr: $(wildcard intrusive_shared_ptr_src/*.cpp) intrusive_shared_ptr.cpp
480
481EXCLUDED_SOURCES += $(wildcard safe_allocation_src/*.cpp)
482safe_allocation: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
483safe_allocation: $(wildcard safe_allocation_src/*.cpp) safe_allocation.cpp
484
485EXCLUDED_SOURCES += osptr_compat.cpp
486osptr_98: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++98 -DOSPTR_STD="98"
487osptr_98: osptr_compat.cpp
488	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
489osptr_11: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++11 -DOSPTR_STD="11"
490osptr_11: osptr_compat.cpp
491	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
492osptr_14: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++14 -DOSPTR_STD="14"
493osptr_14: osptr_compat.cpp
494	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
495osptr_17: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++17 -DOSPTR_STD="17"
496osptr_17: osptr_compat.cpp
497	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
498
499priority_queue: OTHER_CXXFLAGS += -std=c++17
500vm/zalloc: OTHER_LDFLAGS += -ldarwintest_utils
501vm/zalloc_buddy: OTHER_CFLAGS += -Wno-format-pedantic
502
503os_refcnt: OTHER_CFLAGS += -I$(SRCROOT)/../libkern/ -Wno-gcc-compat -Wno-undef -O3 -flto
504
505kernel_inspection: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
506kernel_inspection: OTHER_CFLAGS += -DENTITLED=1
507
508turnstile_multihop: OTHER_CFLAGS += -Wno-unused-macros
509turnstile_multihop: OTHER_CFLAGS += -I $(OBJROOT)/
510
511CUSTOM_TARGETS += perf_exit_proc
512
513perf_exit_proc:
514	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) perf_exit_proc.c -o $(SYMROOT)/perf_exit_proc
515
516install-perf_exit_proc: perf_exit_proc
517	mkdir -p $(INSTALLDIR)
518	cp $(SYMROOT)/perf_exit_proc $(INSTALLDIR)/
519
520# Stackshot
521
522
523stackshot_idle_25570396: ./stackshot-entitlements.plist
524stackshot_idle_25570396: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
525stackshot_idle_25570396: OTHER_LDFLAGS += -lkdd -framework Foundation
526stackshot_idle_25570396: OTHER_LDFLAGS += -lkdd -framework Foundation
527
528stackshot_block_owner_14362384: ./stackshot-entitlements.plist
529stackshot_block_owner_14362384: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
530stackshot_block_owner_14362384: OTHER_LDFLAGS += -framework Foundation -lpthread -lkdd
531ifeq ($(PLATFORM),MacOSX)
532stackshot_block_owner_14362384: OTHER_LDFLAGS += -lpcre
533endif
534
535all: $(DSTROOT)/usr/local/bin/kcdata
536
537$(DSTROOT)/usr/local/bin/kcdata: $(SRCROOT)/../tools/lldbmacros/kcdata.py
538	mkdir -p $(dir $@)
539	cp $< $@
540	chmod a+x $@
541
542xnu_quick_test: OTHER_CFLAGS += xnu_quick_test_helpers.c
543
544CUSTOM_TARGETS += vm_set_max_addr_helper
545
546vm_set_max_addr_helper: vm_set_max_addr_helper.c
547	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_set_max_addr_helper.c -o $(SYMROOT)/vm_set_max_addr_helper; \
548	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
549	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
550
551install-vm_set_max_addr_helper: vm_set_max_addr_helper
552	mkdir -p $(INSTALLDIR)
553	cp $(SYMROOT)/vm_set_max_addr_helper $(INSTALLDIR)/
554
555CUSTOM_TARGETS += subsystem_root_path_helper_entitled
556CUSTOM_TARGETS += subsystem_root_path_helper
557
558subsystem_root_path_helper_entitled: subsystem_root_path_helper.c subsystem_root_path-entitlements.plist
559	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper_entitled; \
560	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
561	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements subsystem_root_path-entitlements.plist $(SYMROOT)/$@;
562
563install-subsystem_root_path_helper_entitled: subsystem_root_path_helper_entitled
564	mkdir -p $(INSTALLDIR)
565	cp $(SYMROOT)/subsystem_root_path_helper_entitled $(INSTALLDIR)/
566
567subsystem_root_path_helper: subsystem_root_path_helper.c
568	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper; \
569	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
570	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
571
572install-subsystem_root_path_helper: subsystem_root_path_helper
573	mkdir -p $(INSTALLDIR)
574	cp $(SYMROOT)/subsystem_root_path_helper $(INSTALLDIR)/
575
576CUSTOM_TARGETS += vm_test_code_signing_helper
577
578vm_test_code_signing_helper: vm_test_code_signing_helper.c
579	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_test_code_signing_helper.c -o $(SYMROOT)/vm_test_code_signing_helper; \
580	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
581	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
582
583install-vm_test_code_signing_helper: vm_test_code_signing_helper
584	mkdir -p $(INSTALLDIR)
585	cp $(SYMROOT)/vm_test_code_signing_helper $(INSTALLDIR)/
586
587vm_test_code_signing: OTHER_LDFLAGS += -ldarwintest_utils
588
589INCLUDED_TEST_SOURCE_DIRS += vm ipc rm workq
590
591# Revert to legacy vm_test suite until <rdar://problem/56675212> gets solved
592EXCLUDED_SOURCES += vm/vm_allocation.c
593
594EXCLUDED_SOURCES += jumbo_va_spaces_common.c
595
596ifeq ($(IOS_TEST_COMPAT),YES)
597OTHER_TEST_TARGETS += jumbo_va_spaces_28530648_unentitled jumbo_va_spaces_52551256 vm_phys_footprint_legacy vm/entitlement_increased_memory_limit vm/entitlement_increased_memory_limit_unentitled vm/ios13extended_footprint vm/memorystatus_freeze_test vm/memorystatus_freeze_test_entitled vm/entitlement_internal_bands vm/entitlement_internal_bands_unentitled
598
599jumbo_va_spaces_28530648: CODE_SIGN_ENTITLEMENTS = jumbo_va_spaces_28530648.entitlements
600jumbo_va_spaces_28530648: OTHER_CFLAGS += -DENTITLED=1 -DTESTNAME=jumbo_va_spaces_28530648
601jumbo_va_spaces_28530648: jumbo_va_spaces_common.c
602jumbo_va_spaces_28530648: OTHER_LDFLAGS += -ldarwintest_utils
603jumbo_va_spaces_28530648: OTHER_LDFLAGS += -sectcreate __TEXT __info_plist jumbo_va_spaces_28530648-identifier.plist
604
605jumbo_va_spaces_52551256: CODE_SIGN_ENTITLEMENTS = jumbo_va_spaces_52551256.entitlements
606jumbo_va_spaces_52551256: OTHER_CFLAGS += -DENTITLED=1 -DTESTNAME=jumbo_va_spaces_52551256
607jumbo_va_spaces_52551256: OTHER_LDFLAGS += -ldarwintest_utils
608jumbo_va_spaces_52551256: jumbo_va_spaces_28530648.c jumbo_va_spaces_common.c
609	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
610	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
611
612jumbo_va_spaces_28530648_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
613jumbo_va_spaces_28530648_unentitled: OTHER_CFLAGS += -DTESTNAME=jumbo_va_spaces_28530648_unentitled
614
615jumbo_va_spaces_28530648_unentitled: jumbo_va_spaces_28530648.c jumbo_va_spaces_common.c
616	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
617
618vm/entitlement_increased_memory_limit: CODE_SIGN_ENTITLEMENTS = vm/entitlement_increased_memory_limit.entitlements
619vm/entitlement_increased_memory_limit: OTHER_CFLAGS += -DENTITLED=1 jumbo_va_spaces_common.c
620vm/entitlement_increased_memory_limit: OTHER_LDFLAGS += -ldarwintest_utils memorystatus_assertion_helpers.c
621vm/entitlement_increased_memory_limit: vm/entitlement_increased_memory_limit.c
622	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
623	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
624
625vm/entitlement_increased_memory_limit_unentitled: OTHER_LDFLAGS += -ldarwintest_utils memorystatus_assertion_helpers.c
626vm/entitlement_increased_memory_limit_unentitled: vm/entitlement_increased_memory_limit.c jumbo_va_spaces_common.c
627	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
628
629vm/entitlement_internal_bands: CODE_SIGN_ENTITLEMENTS = vm/entitlement_internal_bands.entitlements
630vm/entitlement_internal_bands: OTHER_CFLAGS += -DENTITLED=1
631vm/entitlement_internal_bands: OTHER_LDFLAGS += -ldarwintest_utils
632vm/entitlement_internal_bands: vm/entitlement_internal_bands.c memorystatus_assertion_helpers.c
633	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
634	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
635
636vm/entitlement_internal_bands_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
637vm/entitlement_internal_bands_unentitled: vm/entitlement_internal_bands.c memorystatus_assertion_helpers.c
638	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
639	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
640
641vm/ios13extended_footprint: CODE_SIGN_ENTITLEMENTS = vm/ios13extended_footprint.entitlements
642vm/ios13extended_footprint: vm/ios13extended_footprint.c
643	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
644	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
645
646vm_phys_footprint_legacy: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
647vm_phys_footprint_legacy: OTHER_CFLAGS += -DLEGACY_FOOTPRINT_ENTITLED=1
648vm_phys_footprint_legacy: CODE_SIGN_ENTITLEMENTS=./legacy_footprint.entitlement
649vm_phys_footprint_legacy: vm_phys_footprint.c
650	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
651
652endif
653
654CUSTOM_TARGETS += vm/hello
655
656vm/hello: vm/hello.c
657	$(CC) $(LDFLAGS) $(CFLAGS) $< -o $(SYMROOT)/$@
658	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
659
660.PHONY: install-vm/hello
661install-vm/hello: vm/hello
662	mkdir -p $(INSTALLDIR)/vm
663	cp $(SYMROOT)/vm/hello $(INSTALLDIR)/vm/
664
665vm/vm_tainted_executable: vm/hello
666
667task_info_28439149: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
668
669ipc_read_inspect: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
670
671ipc_thread_ports_race: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
672ipc_thread_ports_race: OTHER_LDFLAGS += -ldarwintest_utils
673
674proc_info: recount/recount_test_utils.c
675proc_info: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
676proc_info: OTHER_LDFLAGS += -ldarwintest_utils
677
678proc_info_list_kthreads: CODE_SIGN_ENTITLEMENTS = ./proc_info_list_kthreads.entitlements
679
680proc_info_44873309: CODE_SIGN_ENTITLEMENTS = ./proc_info_44873309.entitlements
681
682disk_mount_conditioner: disk_mount_conditioner*
683disk_mount_conditioner: CODE_SIGN_ENTITLEMENTS=./disk_mount_conditioner-entitlements.plist
684disk_mount_conditioner: OTHER_LDFLAGS += -ldarwintest_utils
685
686disk_mount_conditioner: OTHER_TEST_TARGETS += disk_mount_conditioner_unentitled
687disk_mount_conditioner_unentitled: OTHER_CFLAGS += -DTEST_UNENTITLED
688disk_mount_conditioner_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
689disk_mount_conditioner_unentitled: disk_mount_conditioner.c
690	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
691
692work_interval_test: CODE_SIGN_ENTITLEMENTS = work_interval_test.entitlements
693work_interval_test: OTHER_CFLAGS += -DENTITLED=1
694
695work_interval_data_test: CODE_SIGN_ENTITLEMENTS = work_interval_test.entitlements
696work_interval_data_test: OTHER_CFLAGS += -DENTITLED=1
697work_interval_data_test: OTHER_LDFLAGS += -lpthread
698
699game_mode: CODE_SIGN_ENTITLEMENTS = game_mode.entitlements
700
701settimeofday_29193041: OTHER_CFLAGS += drop_priv.c
702
703settimeofday_29193041_entitled: CODE_SIGN_ENTITLEMENTS = settimeofday_29193041.entitlements
704settimeofday_29193041_entitled: OTHER_CFLAGS += drop_priv.c
705
706thread_group_set_32261625: ./stackshot-entitlements.plist
707thread_group_set_32261625: CODE_SIGN_ENTITLEMENTS=./stackshot-entitlements.plist
708thread_group_set_32261625: OTHER_LDFLAGS = -framework ktrace
709
710task_info: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
711task_info: OTHER_CFLAGS += test_utils.c
712task_info: OTHER_LDFLAGS += -ldarwintest_utils
713
714extract_right_soft_fail: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
715
716ifneq ($(IOS_TEST_COMPAT),YES)
717	EXCLUDED_SOURCES += task_vm_info_decompressions.c
718endif
719
720ifneq ($(PLATFORM),iPhoneOS)
721	EXCLUDED_SOURCES += vm/compression_sweep.c
722endif
723
724bpf_write: bpflib.c in_cksum.c net_test_lib.c
725bpf_write: OTHER_LDFLAGS += -ldarwintest_utils
726
727bpf_write_batch: bpflib.c in_cksum.c net_test_lib.c
728bpf_write_batch: OTHER_LDFLAGS += -ldarwintest_utils
729
730udp_bind_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
731tcp_bind_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
732tcp_send_implied_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
733socket_bind_35243417: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
734socket_bind_35685803: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
735icmp_fragmetned_payload: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
736tcp_invalid_address: OTHER_CFLAGS += -Wno-int-conversion
737tcp_invalid_address: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
738
739net_tuntests: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
740
741net_bridge: inet_transfer.c bpflib.c in_cksum.c net_test_lib.c
742net_bridge: OTHER_LDFLAGS += -ldarwintest_utils
743net_bridge: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
744
745if_generation_id: net_test_lib.c in_cksum.c
746if_generation_id: OTHER_LDFLAGS += -ldarwintest_utils
747
748inet6_addr_mode: net_test_lib.c in_cksum.c
749inet6_addr_mode: OTHER_LDFLAGS += -ldarwintest_utils
750
751bpf_direction: bpflib.c
752bpf_direction: OTHER_LDFLAGS += -ldarwintest_utils
753bpf_direction: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
754
755ipv6_bind_race: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
756
757CUSTOM_TARGETS += posix_spawn_archpref_helper
758
759posix_spawn_archpref_helper: posix_spawn_archpref_helper.c
760	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_archpref_helper.c -o $(SYMROOT)/$@;
761	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
762
763install-posix_spawn_archpref_helper: posix_spawn_archpref_helper
764	mkdir -p $(INSTALLDIR)
765	cp $(SYMROOT)/posix_spawn_archpref_helper $(INSTALLDIR)/
766
767CUSTOM_TARGETS += posix_spawn_alt_rosetta_helper
768
769posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper.c
770	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_alt_rosetta_helper.c -o $(SYMROOT)/$@;
771	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
772
773install-posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper
774	mkdir -p $(INSTALLDIR)
775	cp $(SYMROOT)/posix_spawn_alt_rosetta_helper $(INSTALLDIR)/
776
777MIG:=SDKROOT=$(SDKROOT) $(shell xcrun -sdk "$(TARGETSDK)" -find mig)
778
779CUSTOM_TARGETS += excserver
780
781excserver:
782	$(MIG) $(CFLAGS) \
783		-sheader $(OBJROOT)/excserver.h \
784		-server $(OBJROOT)/excserver.c \
785		-header /dev/null -user /dev/null \
786		excserver.defs
787install-excserver: ;
788
789CUSTOM_TARGETS += excserver_protect
790
791excserver_protect:
792	$(MIG) $(CFLAGS) \
793		-DMACH_EXC_SERVER_TASKIDTOKEN \
794		-sheader $(OBJROOT)/excserver_protect.h \
795		-server $(OBJROOT)/excserver_protect.c \
796		-header /dev/null -user /dev/null \
797		excserver_protect.defs
798install-excserver_protect: ;
799
800EXCLUDED_SOURCES += exc_helpers.c
801
802CUSTOM_TARGETS += notifyserver
803
804notifyserver:
805	$(MIG) $(CFLAGS) \
806		-DMACH_NOTIFY_SERVICE_PORT_DESTROYED_EXPECTED \
807		-user /dev/null \
808		-header $(OBJROOT)/notify.h \
809		-sheader $(OBJROOT)/notifyServer.h \
810		-server $(OBJROOT)/notifyServer.c \
811		notifyserver.defs
812install-notifyserver: ;
813
814CUSTOM_TARGETS += rnserver
815
816rnserver:
817	$(MIG) $(CFLAGS) \
818		-user /dev/null \
819		-header $(OBJROOT)/rn.h \
820		-sheader $(OBJROOT)/rnServer.h \
821		-server $(OBJROOT)/rnServer.c \
822		rnserver.defs
823install-rnserver: ;
824
825
826x18_entitled: OTHER_CFLAGS += -Wno-language-extension-token
827x18_entitled: CODE_SIGN_ENTITLEMENTS = x18-entitlements.plist
828x18_unentitled: OTHER_CFLAGS += -Wno-language-extension-token
829ifneq ($(PLATFORM),MacOSX)
830EXCLUDED_SOURCES += x18_legacy.c
831else
832x18_legacy: OTHER_CFLAGS += -Wno-language-extension-token -Wl,-platform_version -Wl,macos -Wl,10.12 -Wl,10.12
833endif
834
835pmap_bench: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
836
837pmap_stress: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
838
839hw_breakpoint_step_arm64: CODE_SIGN_ENTITLEMENTS = hw_breakpoint_step_arm64_entitlements.plist
840hw_breakpoint_step_arm64: INVALID_ARCHS = $(filter-out arm64%,$(ARCH_CONFIGS))
841hw_breakpoint_step_arm64: excserver
842hw_breakpoint_step_arm64: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
843
844exc_resource_threads: excserver
845exc_resource_threads: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
846exc_resource_threads: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
847
848mach_service_port: notifyserver
849mach_service_port: OTHER_CFLAGS += $(OBJROOT)/notifyServer.c -I $(OBJROOT)
850
851fp_exception: excserver exc_helpers.c
852fp_exception: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
853fp_exception: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
854
855ptrauth_failure: excserver exc_helpers.c
856ptrauth_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT) -Wno-language-extension-token
857ptrauth_failure: CODESIGN = $(CODESIGN_HARDENED_RUNTIME)
858ptrauth_failure: CODE_SIGN_ENTITLEMENTS = set_state_and_exception_port.entitlement
859
860decompression_failure: excserver exc_helpers.c
861decompression_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
862decompression_failure: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
863
864ipc/kernel_signed_pac_thread_state: excserver
865ipc/kernel_signed_pac_thread_state: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
866ipc/kernel_signed_pac_thread_state: CODE_SIGN_ENTITLEMENTS = pac_exception_entitlement.plist
867
868ifeq ($(findstring arm64e,$(ARCH_CONFIGS)),)
869EXCLUDED_SOURCES += pac_exception_entitlement.c
870else
871pac_exception_entitlement: excserver exc_helpers.c
872pac_exception_entitlement: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token
873pac_exception_entitlement: CODE_SIGN_ENTITLEMENTS = pac_exception_entitlement.plist
874endif
875
876ifeq ($(findstring arm64,$(ARCH_CONFIGS)),)
877EXCLUDED_SOURCES += arm_cpu_capabilities.c
878else
879arm_cpu_capabilities: INVALID_ARCHS = armv7k x86_64 x86_64h
880arm_cpu_capabilities: excserver exc_helpers.c
881arm_cpu_capabilities: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token -mcpu=apple-a15
882arm_cpu_capabilities: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
883endif
884
885# Disabling building of ldt files as dt_extractmeta crashes
886# in build systems. Ref rdar://110251082
887# Leaving commented bits for future re-enablement
888EXCLUDED_SOURCES += ldt_code32.s ldt.c
889
890#\ifeq ($(findstring x86_64,$(ARCH_CONFIGS)),)
891#EXCLUDED_SOURCES += ldt_code32.s ldt.c
892#\else # target = osx
893#$(OBJROOT)/ldt_mach_exc_server.c:
894#	$(MIG) $(CFLAGS) \
895#		-user /dev/null \
896#		-server $(OBJROOT)/ldt_mach_exc_server.c \
897#		-header $(OBJROOT)/ldt_mach_exc.h \
898#		mach_exc.defs
899#
900#ldt: INVALID_ARCHS = $(ARCH_CONFIGS)
901#ldt: $(OBJROOT)/ldt_mach_exc_server.c
902#ldt: OTHER_CFLAGS += -arch x86_64 -I $(OBJROOT) $(SRCROOT)/ldt_code32.s -Wl,-pagezero_size,0x1000 -Wno-missing-variable-declarations
903#ldt: CODE_SIGN_ENTITLEMENTS=ldt_entitlement.plist
904#\endif
905
906ifneq ($(PLATFORM),BridgeOS)
907EXCLUDED_SOURCES += remote_time.c
908else
909remote_time: INVALID_ARCHS = armv7 armv7s arm64_32
910endif
911
912vm_phys_footprint: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
913
914vm_kern_count_wired_kernelcache: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders/mach
915
916debug_control_port_for_pid: CODE_SIGN_ENTITLEMENTS = ./debug_control_port_for_pid_entitlement.plist
917
918prng: OTHER_LDFLAGS += -ldarwintest_utils
919
920preoslog: OTHER_LDFLAGS += -ldarwintest_utils
921preoslog: OTHER_CFLAGS += test_utils.c
922
923task_policy: CODE_SIGN_ENTITLEMENTS = ./task_policy_entitlement.plist
924
925OTHER_TEST_TARGETS += task_policy_unentitled
926task_policy_unentitled: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
927task_policy_unentitled: OTHER_CFLAGS += -DUNENTITLED
928task_policy_unentitled: task_policy.c
929	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
930	$(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@
931
932
933EXCLUDED_SOURCES += get_shared_cache_address.c
934
935
936ifneq ($(filter iPhoneOS MacOSX, $(PLATFORM)),)
937CUSTOM_TARGETS += get_shared_cache_address
938
939get_shared_cache_address: INVALID_ARCHS = arm64 i386 x86_64
940get_shared_cache_address: get_shared_cache_address.c
941	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/get_shared_cache_address
942
943install-get_shared_cache_address: get_shared_cache_address
944	$(CODESIGN) --force --sign - --timestamp=none --identifier=com.apple.get_shared_cache_address $(SYMROOT)/get_shared_cache_address
945	mkdir -p $(INSTALLDIR)
946	cp $(SYMROOT)/get_shared_cache_address $(INSTALLDIR)/
947endif
948
949
950OTHER_TEST_TARGETS += vm_memory_share_tests
951
952vm_memory_share_tests: INVALID_ARCHS = i386
953vm_memory_share_tests: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
954vm_memory_share_tests: vm_memory_tests_src/main.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
955	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
956	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
957	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
958
959# build the mach server as individual helper which does not use libdarwintest
960CUSTOM_TARGETS += vm_memory_share_tests_server
961vm_memory_share_tests_server: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
962vm_memory_share_tests_server: vm_memory_tests_src/server.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
963	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/vm_memory_share_tests_server
964	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
965	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
966
967install-vm_memory_share_tests_server: vm_memory_share_tests_server
968	mkdir -p $(INSTALLDIR)
969	cp $(SYMROOT)/vm_memory_share_tests_server $(INSTALLDIR)/
970
971ifeq ($(PLATFORM),MacOSX)
972EXCLUDED_SOURCES += vm/kern_max_task_pmem.c
973endif
974
975EXCLUDED_SOURCES += benchmark/helpers.c
976
977perf_vmfault: OTHER_CFLAGS += benchmark/helpers.c
978
979BATS_PLISTS += $(SRCROOT)/vm/fault_throughput.plist
980
981vm/fault_throughput: OTHER_CFLAGS += benchmark/helpers.c
982
983.PHONY: install-vm/fault_throughput
984install-vm/fault_throughput: vm/fault_throughput
985	mkdir -p $(INSTALLDIR)/vm
986	cp $(SYMROOT)/vm/fault_throughput $(INSTALLDIR)/vm/
987
988$(SYMROOT)/vm/fault_throughput.lua: $(SRCROOT)/vm/fault_throughput.lua
989	mkdir -p $(SYMROOT)/vm
990	cp $< $@
991	chmod +x $@
992
993.PHONY: install-fault_throughput_benchrun
994install-$(SYMROOT)/vm/fault_throughput.lua: $(SYMROOT)/vm/fault_throughput.lua
995	mkdir -p $(INSTALLDIR)/vm
996	cp $(SYMROOT)/vm/fault_throughput.lua $(INSTALLDIR)/vm/
997	chmod +x $(INSTALLDIR)/vm/fault_throughput.lua
998
999EXCLUDED_SOURCES += vm/fault_throughput.plist
1000
1001CUSTOM_TARGETS += $(SYMROOT)/vm/fault_throughput.lua vm/fault_throughput
1002
1003ifeq ($(PLATFORM),MacOSX)
1004mixed_pagesize: vm/mixed_pagesize.c
1005	mkdir -p $(SYMROOT)/vm
1006	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
1007
1008install-mixed_pagesize: mixed_pagesize
1009	mkdir -p $(INSTALLDIR)/vm
1010	cp $(SYMROOT)/vm/mixed_pagesize $(INSTALLDIR)/vm/
1011
1012BATS_PLISTS += $(SRCROOT)/vm/mixed_pagesize.plist
1013
1014EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
1015CUSTOM_TARGETS += mixed_pagesize
1016else
1017EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
1018endif
1019
1020manual_wq_cooperative: manual_wq_cooperative.c
1021	mkdir -p $(SYMROOT)
1022	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
1023
1024install-manual_wq_cooperative: manual_wq_cooperative
1025	mkdir -p $(INSTALLDIR)
1026	cp $(SYMROOT)/manual_wq_cooperative $(INSTALLDIR)
1027
1028BATS_PLISTS += $(SRCROOT)/workqueue.plist
1029EXCLUDED_SOURCES += manual_wq_cooperative.c workqueue.plist
1030CUSTOM_TARGETS += manual_wq_cooperative
1031
1032# VM madvise(2) benchmark
1033
1034BATS_PLISTS += $(SRCROOT)/vm/perf_madvise.plist
1035
1036vm/perf_madvise: OTHER_CFLAGS += benchmark/helpers.c
1037
1038.PHONY: install-vm/perf_madvise
1039install-vm/perf_madvise: vm/perf_madvise
1040	mkdir -p $(INSTALLDIR)/vm
1041	cp $(SYMROOT)/vm/perf_madvise $(INSTALLDIR)/vm/
1042
1043$(SYMROOT)/vm/perf_madvise.lua: $(SRCROOT)/vm/perf_madvise.lua
1044	mkdir -p $(SYMROOT)/vm
1045	cp $< $@
1046	chmod +x $@
1047
1048.PHONY: install-perf_madvise_benchrun
1049install-$(SYMROOT)/vm/perf_madvise.lua: $(SYMROOT)/vm/perf_madvise.lua
1050	mkdir -p $(INSTALLDIR)/vm
1051	cp $(SYMROOT)/vm/perf_madvise.lua $(INSTALLDIR)/vm
1052	chmod +x $(INSTALLDIR)/vm/perf_madvise.lua
1053
1054CUSTOM_TARGETS += $(SYMROOT)/vm/perf_madvise.lua vm/perf_madvise
1055
1056BATS_PLISTS += $(SRCROOT)/vm/perf_compressor.plist
1057EXCLUDED_SOURCES += vm/perf_compressor.plist
1058
1059vm/perf_compressor: OTHER_CFLAGS += benchmark/helpers.c
1060
1061.PHONY: install-vm/perf_compressor
1062install-vm/perf_compressor: vm/perf_compressor
1063	mkdir -p $(INSTALLDIR)/vm
1064	cp $(SYMROOT)/vm/perf_compressor $(INSTALLDIR)/vm/
1065
1066$(SYMROOT)/vm/perf_compressor.lua: $(SRCROOT)/vm/perf_compressor.lua
1067	mkdir -p $(SYMROOT)/vm
1068	cp $< $@
1069	chmod +x $@
1070
1071.PHONY: install-$(SYMROOT)/vm/perf_compressor_benchrun
1072install-$(SYMROOT)/vm/perf_compressor.lua: $(SYMROOT)/vm/perf_compressor.lua
1073	mkdir -p $(INSTALLDIR)/vm
1074	cp $(SYMROOT)/vm/perf_compressor.lua $(INSTALLDIR)/vm/
1075	chmod +x $(INSTALLDIR)/vm/perf_compressor.lua
1076
1077CUSTOM_TARGETS += $(SYMROOT)/vm/perf_compressor.lua vm/perf_compressor
1078
1079ioconnectasyncmethod_57641955: OTHER_LDFLAGS += -framework IOKit
1080
1081ifeq ($(PLATFORM),BridgeOS)
1082EXCLUDED_SOURCES += ipsec.m
1083else
1084ipsec: OTHER_LDFLAGS += -framework Foundation -framework CoreFoundation -framework NetworkExtension
1085ipsec: CODE_SIGN_ENTITLEMENTS = ipsec.entitlements
1086endif
1087
1088test_sysctl_kern_procargs_25397314: OTHER_LDFLAGS += -framework Foundation -ldarwintest_utils
1089
1090INCLUDED_TEST_SOURCE_DIRS += counter
1091
1092EXCLUDED_SOURCES += counter/common.c
1093counter/counter: OTHER_CFLAGS += counter/common.c test_utils.c
1094counter/counter: OTHER_LDFLAGS += -ldarwintest_utils -ldarwintest
1095
1096counter/benchmark: OTHER_CFLAGS += counter/common.c benchmark/helpers.c
1097
1098.PHONY: install-counter/benchmark
1099install-counter/benchmark: counter/benchmark
1100	mkdir -p $(INSTALLDIR)/counter
1101	cp $(SYMROOT)/counter/benchmark $(INSTALLDIR)/counter/
1102
1103$(SYMROOT)/counter/benchmark.lua: $(SRCROOT)/counter/benchmark.lua
1104	mkdir -p $(SYMROOT)/counter
1105	cp $< $@
1106	chmod +x $@
1107
1108.PHONY: install-counter_benchrun
1109install-$(SYMROOT)/counter/benchmark.lua: $(SYMROOT)/counter/benchmark.lua
1110	mkdir -p $(INSTALLDIR)/counter
1111	cp $(SYMROOT)/counter/benchmark.lua $(INSTALLDIR)/counter/
1112	chmod +x $(INSTALLDIR)/counter/benchmark.lua
1113
1114CUSTOM_TARGETS += $(SYMROOT)/counter/benchmark.lua counter/benchmark
1115
1116ifneq ($(PLATFORM),MacOSX)
1117EXCLUDED_SOURCES += vm/page_size_globals.c
1118else
1119vm/page_size_globals: INVALID_ARCHS = arm64 arm64e
1120endif
1121
1122# Same helper used in execperf, different build system.
1123static_binary: ../tools/tests/execperf/exit-asm.S
1124	$(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
1125	CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/static_binary
1126
1127install-static_binary: static_binary
1128	mkdir -p $(INSTALLDIR)
1129	cp $(SYMROOT)/static_binary $(INSTALLDIR)
1130
1131CUSTOM_TARGETS += static_binary
1132EXCLUDED_SOURCES += static_binary.c
1133
1134test_static_binary_csflags: static_binary
1135test_static_binary_csflags: OTHER_LDFLAGS += -ldarwintest_utils
1136
1137
1138libmalloc_apple_array: CODE_SIGN_ENTITLEMENTS = entitlements/libmalloc_apple_array.entitlements
1139libmalloc_apple_array: OTHER_CFLAGS += -DENTITLED=1 drop_priv.c test_utils.c
1140libmalloc_apple_array: OTHER_LDFLAGS += -ldarwintest_utils
1141libmalloc_apple_array: libmalloc_apple_array.c print_apple_array print_apple_array_HR1 print_apple_array_HR2
1142	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
1143	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
1144
1145libmalloc_apple_array_unentitled: OTHER_CFLAGS += drop_priv.c test_utils.c
1146libmalloc_apple_array_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
1147libmalloc_apple_array_unentitled: libmalloc_apple_array.c print_apple_array print_apple_array_HR1 print_apple_array_HR2
1148	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $(OTHER_CFLAGS) $< -o $(SYMROOT)/$@
1149	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1150
1151CUSTOM_TARGETS += print_apple_array
1152print_apple_array: print_apple_array.c
1153	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1154	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1155
1156CUSTOM_TARGETS += print_apple_array_HR1
1157print_apple_array_HR1: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-binary-entitlements-1.plist
1158print_apple_array_HR1: print_apple_array.c
1159	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1160	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1161
1162CUSTOM_TARGETS += print_apple_array_HR2
1163print_apple_array_HR2: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-binary-entitlements-2.plist
1164print_apple_array_HR2: print_apple_array.c
1165	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1166	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1167
1168
1169install-print_apple_array: print_apple_array
1170	mkdir -p $(INSTALLDIR)/tools
1171	cp $(SYMROOT)/print_apple_array $(INSTALLDIR)/tools/
1172
1173install-print_apple_array_HR1: print_apple_array_HR1
1174	mkdir -p $(INSTALLDIR)/tools
1175	cp $(SYMROOT)/print_apple_array_HR1 $(INSTALLDIR)/tools/
1176
1177install-print_apple_array_HR2: print_apple_array_HR2
1178	mkdir -p $(INSTALLDIR)/tools
1179	cp $(SYMROOT)/print_apple_array_HR2 $(INSTALLDIR)/tools/
1180
1181persona: CODE_SIGN_ENTITLEMENTS = persona.entitlements
1182persona_adoption: CODE_SIGN_ENTITLEMENTS = persona_adoption.entitlements
1183
1184OTHER_TEST_TARGETS += libmalloc_apple_array libmalloc_apple_array_unentitled
1185
1186entropy: OTHER_CFLAGS += -framework perfdata
1187
1188zero_to_n_tests: OTHER_LDFLAGS += -ldarwintest_utils -framework perfdata
1189
1190debug_enable_syscall_rejection: OTHER_LDFLAGS += -ldarwintest_utils
1191
1192sched_thread_group_fairness: CODE_SIGN_ENTITLEMENTS = sched_thread_group_fairness.entitlements
1193sched_thread_group_fairness: sched_thread_group_fairness_workload_config.h
1194sched_thread_group_fairness: OTHER_LDFLAGS += -framework perfdata
1195sched_thread_group_fairness: OTHER_CFLAGS += -DENTITLED=1
1196sched_thread_group_fairness_workload_config.h: sched_thread_group_fairness_workload_config.plist
1197	xxd -i $< > $@
1198
1199sched_yield_aggressor: OTHER_LDFLAGS += -ldarwintest_utils -framework perfdata
1200sched_yield_aggressor: OTHER_CFLAGS += -Wno-atomic-implicit-seq-cst
1201
1202sched_all_cores_running: OTHER_LDFLAGS += -ldarwintest_utils
1203
1204sched_overloaded_runqueue: CODE_SIGN_ENTITLEMENTS = sched_overloaded_runqueue.entitlements
1205sched_overloaded_runqueue: OTHER_CFLAGS += -DENTITLED=1
1206sched_overloaded_runqueue: OTHER_LDFLAGS += -framework ktrace -ldarwintest_utils
1207
1208thread_set_state_arm64_cpsr: CODE_SIGN_ENTITLEMENTS = thread_set_state.entitlement
1209
1210vm/app_swap: OTHER_LDFLAGS += -ldarwintest_utils
1211
1212CUSTOM_TARGETS += debug_syscall_rejection_helper
1213debug_syscall_rejection_helper: debug_syscall_rejection_helper.c
1214	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@; \
1215	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
1216	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1217
1218
1219install-debug_syscall_rejection_helper: debug_syscall_rejection_helper
1220	mkdir -p $(INSTALLDIR)
1221	cp $(SYMROOT)/debug_syscall_rejection_helper $(INSTALLDIR)/
1222
1223file_leases: OTHER_CFLAGS += test_utils.c
1224file_leases: OTHER_LDFLAGS += -ldarwintest_utils
1225file_leases: CODE_SIGN_ENTITLEMENTS = file_leases.entitlements
1226
1227INCLUDED_TEST_SOURCE_DIRS += vfs
1228vfs/freeable_vnodes: OTHER_LDFLAGS += -ldarwintest_utils
1229
1230vm/vm_reclaim: OTHER_CFLAGS += -Wno-language-extension-token -Wno-c++98-compat memorystatus_assertion_helpers.c
1231vm/vm_reclaim: OTHER_LDFLAGS += -ldarwintest_utils
1232
1233vm/vm_reclaim: INVALID_ARCHS = armv7k arm64_32
1234
1235DIAG_MEM_THRESHOLD_UTILS = vm/diag_threshold_test.c
1236EXCLUDED_SOURCES += $(DIAG_MEM_THRESHOLD_UTILS)
1237
1238vm/diag_threshold_test: $(DIAG_MEM_THRESHOLD_UTILS) excserver
1239
1240vm/diag_threshold_test_double_limit: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1241vm/diag_threshold_test_double_limit: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1242vm/diag_threshold_test_double_limit: OTHER_CFLAGS += -l darwintest_utils
1243vm/diag_threshold_test_double_limit: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1244
1245vm/diag_threshold_test_simple: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1246vm/diag_threshold_test_simple: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1247vm/diag_threshold_test_simple: OTHER_CFLAGS += -l darwintest_utils
1248vm/diag_threshold_test_simple: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1249
1250vm/diag_threshold_test_enable_disable_threshold: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1251vm/diag_threshold_test_enable_disable_threshold: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1252vm/diag_threshold_test_enable_disable_threshold: OTHER_CFLAGS += -l darwintest_utils
1253vm/diag_threshold_test_enable_disable_threshold: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1254
1255vm/diag_threshold_test_no_limit_cross: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1256vm/diag_threshold_test_no_limit_cross: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1257vm/diag_threshold_test_no_limit_cross: OTHER_CFLAGS += -l darwintest_utils
1258vm/diag_threshold_test_no_limit_cross: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1259
1260vm/diag_threshold_test_no_retrigger: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1261vm/diag_threshold_test_no_retrigger: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1262vm/diag_threshold_test_no_retrigger: OTHER_CFLAGS += -l darwintest_utils
1263vm/diag_threshold_test_no_retrigger: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1264
1265vm/diag_threshold_test_with_low_watermark: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1266vm/diag_threshold_test_with_low_watermark: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1267vm/diag_threshold_test_with_low_watermark: OTHER_CFLAGS += -l darwintest_utils
1268vm/diag_threshold_test_with_low_watermark: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1269
1270vm/diag_threshold_test_with_high_watermark: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1271vm/diag_threshold_test_with_high_watermark: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1272vm/diag_threshold_test_with_high_watermark: OTHER_CFLAGS += -l darwintest_utils
1273vm/diag_threshold_test_with_high_watermark: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1274
1275vm/diag_threshold_test_watermark_and_threshold_same: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1276vm/diag_threshold_test_watermark_and_threshold_same: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1277vm/diag_threshold_test_watermark_and_threshold_same: OTHER_CFLAGS += -l darwintest_utils
1278vm/diag_threshold_test_watermark_and_threshold_same: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1279
1280vm/diag_threshold_test_limit_and_threshold_same: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1281vm/diag_threshold_test_limit_and_threshold_same: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1282vm/diag_threshold_test_limit_and_threshold_same: OTHER_CFLAGS += -l darwintest_utils
1283vm/diag_threshold_test_limit_and_threshold_same: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1284
1285vm/diag_threshold_test_logging: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1286vm/diag_threshold_test_logging: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1287vm/diag_threshold_test_logging: OTHER_CFLAGS += -l darwintest_utils
1288
1289vm/diag_threshold_test_large_limit: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1290vm/diag_threshold_test_large_limit: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1291vm/diag_threshold_test_large_limit: OTHER_CFLAGS += -l darwintest_utils
1292vm/diag_threshold_test_large_limit: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1293
1294EXCLUDED_SOURCES += constrained_ctypes_tests.c
1295CUSTOM_TARGETS += constrained_ctypes_tests_enabled constrained_ctypes_tests_enacted constrained_ctypes_tests_disabled
1296constrained_ctypes_tests_enabled: OTHER_CFLAGS += -D__CCT_TEST_ENABLED
1297constrained_ctypes_tests_enabled: OTHER_LDFLAGS += -ldarwintest_utils
1298constrained_ctypes_tests_enabled: constrained_ctypes_tests.c
1299	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_enabled
1300	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_enabled;
1301
1302install-constrained_ctypes_tests_enabled: constrained_ctypes_tests_enabled
1303	mkdir -p $(INSTALLDIR)
1304	cp $(SYMROOT)/constrained_ctypes_tests_enabled $(INSTALLDIR)/
1305
1306constrained_ctypes_tests_enacted: OTHER_CFLAGS += -D__CCT_TEST_ENABLED
1307constrained_ctypes_tests_enacted: OTHER_CFLAGS += -D__CCT_TEST_ENACTED
1308constrained_ctypes_tests_enacted: OTHER_CFLAGS += -fbounds-attributes
1309constrained_ctypes_tests_enacted: OTHER_LDFLAGS += -ldarwintest_utils
1310constrained_ctypes_tests_enacted: constrained_ctypes_tests.c
1311	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_enacted
1312	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_enacted;
1313
1314install-constrained_ctypes_tests_enacted: constrained_ctypes_tests_enacted
1315	mkdir -p $(INSTALLDIR)
1316	cp $(SYMROOT)/constrained_ctypes_tests_enacted $(INSTALLDIR)/
1317
1318
1319constrained_ctypes_tests_disabled: OTHER_LDFLAGS += -ldarwintest_utils
1320constrained_ctypes_tests_disabled: constrained_ctypes_tests.c
1321	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_disabled
1322	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_disabled;
1323
1324install-constrained_ctypes_tests_disabled: constrained_ctypes_tests_disabled
1325	mkdir -p $(INSTALLDIR)
1326	cp $(SYMROOT)/constrained_ctypes_tests_disabled $(INSTALLDIR)/
1327
1328task_suspend_stats: OTHER_LDFLAGS += -ldarwintest_utils
1329task_suspend_stats: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
1330
1331# os_atomic use throws this warning
1332setitimer: OTHER_CFLAGS += -Wno-c++98-compat
1333
1334
1335include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.targets
1336
1337exception_ports_info: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1338