xref: /xnu-10063.101.15/tests/Makefile (revision 94d3b452840153a99b38a3a9659680b2a006908e)
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
736
737net_tuntests: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
738
739net_bridge: inet_transfer.c bpflib.c in_cksum.c net_test_lib.c
740net_bridge: OTHER_LDFLAGS += -ldarwintest_utils
741net_bridge: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
742
743if_generation_id: net_test_lib.c in_cksum.c
744if_generation_id: OTHER_LDFLAGS += -ldarwintest_utils
745
746inet6_addr_mode: net_test_lib.c in_cksum.c
747inet6_addr_mode: OTHER_LDFLAGS += -ldarwintest_utils
748
749bpf_direction: bpflib.c
750bpf_direction: OTHER_LDFLAGS += -ldarwintest_utils
751bpf_direction: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
752
753ipv6_bind_race: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
754
755CUSTOM_TARGETS += posix_spawn_archpref_helper
756
757posix_spawn_archpref_helper: posix_spawn_archpref_helper.c
758	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_archpref_helper.c -o $(SYMROOT)/$@;
759	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
760
761install-posix_spawn_archpref_helper: posix_spawn_archpref_helper
762	mkdir -p $(INSTALLDIR)
763	cp $(SYMROOT)/posix_spawn_archpref_helper $(INSTALLDIR)/
764
765CUSTOM_TARGETS += posix_spawn_alt_rosetta_helper
766
767posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper.c
768	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_alt_rosetta_helper.c -o $(SYMROOT)/$@;
769	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
770
771install-posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper
772	mkdir -p $(INSTALLDIR)
773	cp $(SYMROOT)/posix_spawn_alt_rosetta_helper $(INSTALLDIR)/
774
775MIG:=SDKROOT=$(SDKROOT) $(shell xcrun -sdk "$(TARGETSDK)" -find mig)
776
777CUSTOM_TARGETS += excserver
778
779excserver:
780	$(MIG) $(CFLAGS) \
781		-sheader $(OBJROOT)/excserver.h \
782		-server $(OBJROOT)/excserver.c \
783		-header /dev/null -user /dev/null \
784		excserver.defs
785install-excserver: ;
786
787CUSTOM_TARGETS += excserver_protect
788
789excserver_protect:
790	$(MIG) $(CFLAGS) \
791		-DMACH_EXC_SERVER_TASKIDTOKEN \
792		-sheader $(OBJROOT)/excserver_protect.h \
793		-server $(OBJROOT)/excserver_protect.c \
794		-header /dev/null -user /dev/null \
795		excserver_protect.defs
796install-excserver_protect: ;
797
798EXCLUDED_SOURCES += exc_helpers.c
799
800CUSTOM_TARGETS += notifyserver
801
802notifyserver:
803	$(MIG) $(CFLAGS) \
804		-DMACH_NOTIFY_SERVICE_PORT_DESTROYED_EXPECTED \
805		-user /dev/null \
806		-header $(OBJROOT)/notify.h \
807		-sheader $(OBJROOT)/notifyServer.h \
808		-server $(OBJROOT)/notifyServer.c \
809		notifyserver.defs
810install-notifyserver: ;
811
812CUSTOM_TARGETS += rnserver
813
814rnserver:
815	$(MIG) $(CFLAGS) \
816		-user /dev/null \
817		-header $(OBJROOT)/rn.h \
818		-sheader $(OBJROOT)/rnServer.h \
819		-server $(OBJROOT)/rnServer.c \
820		rnserver.defs
821install-rnserver: ;
822
823
824x18_entitled: OTHER_CFLAGS += -Wno-language-extension-token
825x18_entitled: CODE_SIGN_ENTITLEMENTS = x18-entitlements.plist
826x18_unentitled: OTHER_CFLAGS += -Wno-language-extension-token
827ifneq ($(PLATFORM),MacOSX)
828EXCLUDED_SOURCES += x18_legacy.c
829else
830x18_legacy: OTHER_CFLAGS += -Wno-language-extension-token -Wl,-platform_version -Wl,macos -Wl,10.12 -Wl,10.12
831endif
832
833pmap_bench: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
834
835pmap_stress: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
836
837hw_breakpoint_step_arm64: CODE_SIGN_ENTITLEMENTS = hw_breakpoint_step_arm64_entitlements.plist
838hw_breakpoint_step_arm64: INVALID_ARCHS = $(filter-out arm64%,$(ARCH_CONFIGS))
839hw_breakpoint_step_arm64: excserver
840hw_breakpoint_step_arm64: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
841
842exc_resource_threads: excserver
843exc_resource_threads: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
844exc_resource_threads: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
845
846mach_service_port: notifyserver
847mach_service_port: OTHER_CFLAGS += $(OBJROOT)/notifyServer.c -I $(OBJROOT)
848
849fp_exception: excserver exc_helpers.c
850fp_exception: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
851fp_exception: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
852
853ptrauth_failure: excserver exc_helpers.c
854ptrauth_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT) -Wno-language-extension-token
855ptrauth_failure: CODESIGN = $(CODESIGN_HARDENED_RUNTIME)
856ptrauth_failure: CODE_SIGN_ENTITLEMENTS = set_state_and_exception_port.entitlement
857
858decompression_failure: excserver exc_helpers.c
859decompression_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
860decompression_failure: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
861
862ipc/kernel_signed_pac_thread_state: excserver
863ipc/kernel_signed_pac_thread_state: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
864ipc/kernel_signed_pac_thread_state: CODE_SIGN_ENTITLEMENTS = pac_exception_entitlement.plist
865
866ifeq ($(findstring arm64e,$(ARCH_CONFIGS)),)
867EXCLUDED_SOURCES += pac_exception_entitlement.c
868else
869pac_exception_entitlement: excserver exc_helpers.c
870pac_exception_entitlement: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token
871pac_exception_entitlement: CODE_SIGN_ENTITLEMENTS = pac_exception_entitlement.plist
872endif
873
874ifeq ($(findstring arm64,$(ARCH_CONFIGS)),)
875EXCLUDED_SOURCES += arm_cpu_capabilities.c
876else
877arm_cpu_capabilities: INVALID_ARCHS = armv7k x86_64 x86_64h
878arm_cpu_capabilities: excserver exc_helpers.c
879arm_cpu_capabilities: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token -mcpu=apple-a15
880arm_cpu_capabilities: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
881endif
882
883# Disabling building of ldt files as dt_extractmeta crashes
884# in build systems. Ref rdar://110251082
885# Leaving commented bits for future re-enablement
886EXCLUDED_SOURCES += ldt_code32.s ldt.c
887
888#\ifeq ($(findstring x86_64,$(ARCH_CONFIGS)),)
889#EXCLUDED_SOURCES += ldt_code32.s ldt.c
890#\else # target = osx
891#$(OBJROOT)/ldt_mach_exc_server.c:
892#	$(MIG) $(CFLAGS) \
893#		-user /dev/null \
894#		-server $(OBJROOT)/ldt_mach_exc_server.c \
895#		-header $(OBJROOT)/ldt_mach_exc.h \
896#		mach_exc.defs
897#
898#ldt: INVALID_ARCHS = $(ARCH_CONFIGS)
899#ldt: $(OBJROOT)/ldt_mach_exc_server.c
900#ldt: OTHER_CFLAGS += -arch x86_64 -I $(OBJROOT) $(SRCROOT)/ldt_code32.s -Wl,-pagezero_size,0x1000 -Wno-missing-variable-declarations
901#ldt: CODE_SIGN_ENTITLEMENTS=ldt_entitlement.plist
902#\endif
903
904ifneq ($(PLATFORM),BridgeOS)
905EXCLUDED_SOURCES += remote_time.c
906else
907remote_time: INVALID_ARCHS = armv7 armv7s arm64_32
908endif
909
910vm_phys_footprint: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
911
912vm_kern_count_wired_kernelcache: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders/mach
913
914debug_control_port_for_pid: CODE_SIGN_ENTITLEMENTS = ./debug_control_port_for_pid_entitlement.plist
915
916prng: OTHER_LDFLAGS += -ldarwintest_utils
917
918preoslog: OTHER_LDFLAGS += -ldarwintest_utils
919preoslog: OTHER_CFLAGS += test_utils.c
920
921task_policy: CODE_SIGN_ENTITLEMENTS = ./task_policy_entitlement.plist
922
923OTHER_TEST_TARGETS += task_policy_unentitled
924task_policy_unentitled: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
925task_policy_unentitled: OTHER_CFLAGS += -DUNENTITLED
926task_policy_unentitled: task_policy.c
927	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
928	$(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@
929
930
931EXCLUDED_SOURCES += get_shared_cache_address.c
932
933
934ifneq ($(filter iPhoneOS MacOSX, $(PLATFORM)),)
935CUSTOM_TARGETS += get_shared_cache_address
936
937get_shared_cache_address: INVALID_ARCHS = arm64 i386 x86_64
938get_shared_cache_address: get_shared_cache_address.c
939	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/get_shared_cache_address
940
941install-get_shared_cache_address: get_shared_cache_address
942	$(CODESIGN) --force --sign - --timestamp=none --identifier=com.apple.get_shared_cache_address $(SYMROOT)/get_shared_cache_address
943	mkdir -p $(INSTALLDIR)
944	cp $(SYMROOT)/get_shared_cache_address $(INSTALLDIR)/
945endif
946
947
948OTHER_TEST_TARGETS += vm_memory_share_tests
949
950vm_memory_share_tests: INVALID_ARCHS = i386
951vm_memory_share_tests: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
952vm_memory_share_tests: vm_memory_tests_src/main.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
953	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
954	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
955	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
956
957# build the mach server as individual helper which does not use libdarwintest
958CUSTOM_TARGETS += vm_memory_share_tests_server
959vm_memory_share_tests_server: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
960vm_memory_share_tests_server: vm_memory_tests_src/server.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
961	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/vm_memory_share_tests_server
962	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
963	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
964
965install-vm_memory_share_tests_server: vm_memory_share_tests_server
966	mkdir -p $(INSTALLDIR)
967	cp $(SYMROOT)/vm_memory_share_tests_server $(INSTALLDIR)/
968
969ifeq ($(PLATFORM),MacOSX)
970EXCLUDED_SOURCES += vm/kern_max_task_pmem.c
971endif
972
973EXCLUDED_SOURCES += benchmark/helpers.c
974
975perf_vmfault: OTHER_CFLAGS += benchmark/helpers.c
976
977BATS_PLISTS += $(SRCROOT)/vm/fault_throughput.plist
978
979vm/fault_throughput: OTHER_CFLAGS += benchmark/helpers.c
980
981.PHONY: install-vm/fault_throughput
982install-vm/fault_throughput: vm/fault_throughput
983	mkdir -p $(INSTALLDIR)/vm
984	cp $(SYMROOT)/vm/fault_throughput $(INSTALLDIR)/vm/
985
986$(SYMROOT)/vm/fault_throughput.lua: $(SRCROOT)/vm/fault_throughput.lua
987	mkdir -p $(SYMROOT)/vm
988	cp $< $@
989	chmod +x $@
990
991.PHONY: install-fault_throughput_benchrun
992install-$(SYMROOT)/vm/fault_throughput.lua: $(SYMROOT)/vm/fault_throughput.lua
993	mkdir -p $(INSTALLDIR)/vm
994	cp $(SYMROOT)/vm/fault_throughput.lua $(INSTALLDIR)/vm/
995	chmod +x $(INSTALLDIR)/vm/fault_throughput.lua
996
997EXCLUDED_SOURCES += vm/fault_throughput.plist
998
999CUSTOM_TARGETS += $(SYMROOT)/vm/fault_throughput.lua vm/fault_throughput
1000
1001ifeq ($(PLATFORM),MacOSX)
1002mixed_pagesize: vm/mixed_pagesize.c
1003	mkdir -p $(SYMROOT)/vm
1004	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
1005
1006install-mixed_pagesize: mixed_pagesize
1007	mkdir -p $(INSTALLDIR)/vm
1008	cp $(SYMROOT)/vm/mixed_pagesize $(INSTALLDIR)/vm/
1009
1010BATS_PLISTS += $(SRCROOT)/vm/mixed_pagesize.plist
1011
1012EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
1013CUSTOM_TARGETS += mixed_pagesize
1014else
1015EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
1016endif
1017
1018manual_wq_cooperative: manual_wq_cooperative.c
1019	mkdir -p $(SYMROOT)
1020	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
1021
1022install-manual_wq_cooperative: manual_wq_cooperative
1023	mkdir -p $(INSTALLDIR)
1024	cp $(SYMROOT)/manual_wq_cooperative $(INSTALLDIR)
1025
1026BATS_PLISTS += $(SRCROOT)/workqueue.plist
1027EXCLUDED_SOURCES += manual_wq_cooperative.c workqueue.plist
1028CUSTOM_TARGETS += manual_wq_cooperative
1029
1030# VM madvise(2) benchmark
1031
1032BATS_PLISTS += $(SRCROOT)/vm/perf_madvise.plist
1033
1034vm/perf_madvise: OTHER_CFLAGS += benchmark/helpers.c
1035
1036.PHONY: install-vm/perf_madvise
1037install-vm/perf_madvise: vm/perf_madvise
1038	mkdir -p $(INSTALLDIR)/vm
1039	cp $(SYMROOT)/vm/perf_madvise $(INSTALLDIR)/vm/
1040
1041$(SYMROOT)/vm/perf_madvise.lua: $(SRCROOT)/vm/perf_madvise.lua
1042	mkdir -p $(SYMROOT)/vm
1043	cp $< $@
1044	chmod +x $@
1045
1046.PHONY: install-perf_madvise_benchrun
1047install-$(SYMROOT)/vm/perf_madvise.lua: $(SYMROOT)/vm/perf_madvise.lua
1048	mkdir -p $(INSTALLDIR)/vm
1049	cp $(SYMROOT)/vm/perf_madvise.lua $(INSTALLDIR)/vm
1050	chmod +x $(INSTALLDIR)/vm/perf_madvise.lua
1051
1052CUSTOM_TARGETS += $(SYMROOT)/vm/perf_madvise.lua vm/perf_madvise
1053
1054BATS_PLISTS += $(SRCROOT)/vm/perf_compressor.plist
1055EXCLUDED_SOURCES += vm/perf_compressor.plist
1056
1057vm/perf_compressor: OTHER_CFLAGS += benchmark/helpers.c
1058
1059.PHONY: install-vm/perf_compressor
1060install-vm/perf_compressor: vm/perf_compressor
1061	mkdir -p $(INSTALLDIR)/vm
1062	cp $(SYMROOT)/vm/perf_compressor $(INSTALLDIR)/vm/
1063
1064$(SYMROOT)/vm/perf_compressor.lua: $(SRCROOT)/vm/perf_compressor.lua
1065	mkdir -p $(SYMROOT)/vm
1066	cp $< $@
1067	chmod +x $@
1068
1069.PHONY: install-$(SYMROOT)/vm/perf_compressor_benchrun
1070install-$(SYMROOT)/vm/perf_compressor.lua: $(SYMROOT)/vm/perf_compressor.lua
1071	mkdir -p $(INSTALLDIR)/vm
1072	cp $(SYMROOT)/vm/perf_compressor.lua $(INSTALLDIR)/vm/
1073	chmod +x $(INSTALLDIR)/vm/perf_compressor.lua
1074
1075CUSTOM_TARGETS += $(SYMROOT)/vm/perf_compressor.lua vm/perf_compressor
1076
1077ioconnectasyncmethod_57641955: OTHER_LDFLAGS += -framework IOKit
1078
1079ifeq ($(PLATFORM),BridgeOS)
1080EXCLUDED_SOURCES += ipsec.m
1081else
1082ipsec: OTHER_LDFLAGS += -framework Foundation -framework CoreFoundation -framework NetworkExtension
1083ipsec: CODE_SIGN_ENTITLEMENTS = ipsec.entitlements
1084endif
1085
1086test_sysctl_kern_procargs_25397314: OTHER_LDFLAGS += -framework Foundation -ldarwintest_utils
1087
1088INCLUDED_TEST_SOURCE_DIRS += counter
1089
1090EXCLUDED_SOURCES += counter/common.c
1091counter/counter: OTHER_CFLAGS += counter/common.c test_utils.c
1092counter/counter: OTHER_LDFLAGS += -ldarwintest_utils -ldarwintest
1093
1094counter/benchmark: OTHER_CFLAGS += counter/common.c benchmark/helpers.c
1095
1096.PHONY: install-counter/benchmark
1097install-counter/benchmark: counter/benchmark
1098	mkdir -p $(INSTALLDIR)/counter
1099	cp $(SYMROOT)/counter/benchmark $(INSTALLDIR)/counter/
1100
1101$(SYMROOT)/counter/benchmark.lua: $(SRCROOT)/counter/benchmark.lua
1102	mkdir -p $(SYMROOT)/counter
1103	cp $< $@
1104	chmod +x $@
1105
1106.PHONY: install-counter_benchrun
1107install-$(SYMROOT)/counter/benchmark.lua: $(SYMROOT)/counter/benchmark.lua
1108	mkdir -p $(INSTALLDIR)/counter
1109	cp $(SYMROOT)/counter/benchmark.lua $(INSTALLDIR)/counter/
1110	chmod +x $(INSTALLDIR)/counter/benchmark.lua
1111
1112CUSTOM_TARGETS += $(SYMROOT)/counter/benchmark.lua counter/benchmark
1113
1114ifneq ($(PLATFORM),MacOSX)
1115EXCLUDED_SOURCES += vm/page_size_globals.c
1116else
1117vm/page_size_globals: INVALID_ARCHS = arm64 arm64e
1118endif
1119
1120# Same helper used in execperf, different build system.
1121static_binary: ../tools/tests/execperf/exit-asm.S
1122	$(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
1123	CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/static_binary
1124
1125install-static_binary: static_binary
1126	mkdir -p $(INSTALLDIR)
1127	cp $(SYMROOT)/static_binary $(INSTALLDIR)
1128
1129CUSTOM_TARGETS += static_binary
1130EXCLUDED_SOURCES += static_binary.c
1131
1132test_static_binary_csflags: static_binary
1133test_static_binary_csflags: OTHER_LDFLAGS += -ldarwintest_utils
1134
1135
1136libmalloc_apple_array: CODE_SIGN_ENTITLEMENTS = entitlements/libmalloc_apple_array.entitlements
1137libmalloc_apple_array: OTHER_CFLAGS += -DENTITLED=1 drop_priv.c test_utils.c
1138libmalloc_apple_array: OTHER_LDFLAGS += -ldarwintest_utils
1139libmalloc_apple_array: libmalloc_apple_array.c print_apple_array print_apple_array_HR1 print_apple_array_HR2
1140	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
1141	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
1142
1143libmalloc_apple_array_unentitled: OTHER_CFLAGS += drop_priv.c test_utils.c
1144libmalloc_apple_array_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
1145libmalloc_apple_array_unentitled: libmalloc_apple_array.c print_apple_array print_apple_array_HR1 print_apple_array_HR2
1146	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $(OTHER_CFLAGS) $< -o $(SYMROOT)/$@
1147	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1148
1149CUSTOM_TARGETS += print_apple_array
1150print_apple_array: print_apple_array.c
1151	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1152	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1153
1154CUSTOM_TARGETS += print_apple_array_HR1
1155print_apple_array_HR1: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-binary-entitlements-1.plist
1156print_apple_array_HR1: print_apple_array.c
1157	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1158	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1159
1160CUSTOM_TARGETS += print_apple_array_HR2
1161print_apple_array_HR2: CODE_SIGN_ENTITLEMENTS=entitlements/hardened-binary-entitlements-2.plist
1162print_apple_array_HR2: print_apple_array.c
1163	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
1164	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) --timestamp=none $(SYMROOT)/$@;
1165
1166
1167install-print_apple_array: print_apple_array
1168	mkdir -p $(INSTALLDIR)/tools
1169	cp $(SYMROOT)/print_apple_array $(INSTALLDIR)/tools/
1170
1171install-print_apple_array_HR1: print_apple_array_HR1
1172	mkdir -p $(INSTALLDIR)/tools
1173	cp $(SYMROOT)/print_apple_array_HR1 $(INSTALLDIR)/tools/
1174
1175install-print_apple_array_HR2: print_apple_array_HR2
1176	mkdir -p $(INSTALLDIR)/tools
1177	cp $(SYMROOT)/print_apple_array_HR2 $(INSTALLDIR)/tools/
1178
1179persona: CODE_SIGN_ENTITLEMENTS = persona.entitlements
1180persona_adoption: CODE_SIGN_ENTITLEMENTS = persona_adoption.entitlements
1181
1182OTHER_TEST_TARGETS += libmalloc_apple_array libmalloc_apple_array_unentitled
1183
1184entropy: OTHER_CFLAGS += -framework perfdata
1185
1186zero_to_n_tests: OTHER_LDFLAGS += -ldarwintest_utils -framework perfdata
1187
1188debug_enable_syscall_rejection: OTHER_LDFLAGS += -ldarwintest_utils
1189
1190sched_thread_group_fairness: CODE_SIGN_ENTITLEMENTS = sched_thread_group_fairness.entitlements
1191sched_thread_group_fairness: sched_thread_group_fairness_workload_config.h
1192sched_thread_group_fairness: OTHER_LDFLAGS += -framework perfdata
1193sched_thread_group_fairness: OTHER_CFLAGS += -DENTITLED=1
1194sched_thread_group_fairness_workload_config.h: sched_thread_group_fairness_workload_config.plist
1195	xxd -i $< > $@
1196
1197sched_yield_aggressor: OTHER_LDFLAGS += -ldarwintest_utils -framework perfdata
1198sched_yield_aggressor: OTHER_CFLAGS += -Wno-atomic-implicit-seq-cst
1199
1200sched_all_cores_running: OTHER_LDFLAGS += -ldarwintest_utils
1201
1202sched_overloaded_runqueue: CODE_SIGN_ENTITLEMENTS = sched_overloaded_runqueue.entitlements
1203sched_overloaded_runqueue: OTHER_CFLAGS += -DENTITLED=1
1204sched_overloaded_runqueue: OTHER_LDFLAGS += -framework ktrace -ldarwintest_utils
1205
1206thread_set_state_arm64_cpsr: CODE_SIGN_ENTITLEMENTS = thread_set_state.entitlement
1207
1208vm/app_swap: OTHER_LDFLAGS += -ldarwintest_utils
1209
1210CUSTOM_TARGETS += debug_syscall_rejection_helper
1211debug_syscall_rejection_helper: debug_syscall_rejection_helper.c
1212	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@; \
1213	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
1214	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
1215
1216
1217install-debug_syscall_rejection_helper: debug_syscall_rejection_helper
1218	mkdir -p $(INSTALLDIR)
1219	cp $(SYMROOT)/debug_syscall_rejection_helper $(INSTALLDIR)/
1220
1221file_leases: OTHER_CFLAGS += test_utils.c
1222file_leases: OTHER_LDFLAGS += -ldarwintest_utils
1223file_leases: CODE_SIGN_ENTITLEMENTS = file_leases.entitlements
1224
1225INCLUDED_TEST_SOURCE_DIRS += vfs
1226vfs/freeable_vnodes: OTHER_LDFLAGS += -ldarwintest_utils
1227
1228vm/vm_reclaim: OTHER_CFLAGS += -Wno-language-extension-token -Wno-c++98-compat memorystatus_assertion_helpers.c
1229vm/vm_reclaim: OTHER_LDFLAGS += -ldarwintest_utils
1230
1231vm/vm_reclaim: INVALID_ARCHS = armv7k arm64_32
1232
1233DIAG_MEM_THRESHOLD_UTILS = vm/diag_threshold_test.c
1234EXCLUDED_SOURCES += $(DIAG_MEM_THRESHOLD_UTILS)
1235
1236vm/diag_threshold_test: $(DIAG_MEM_THRESHOLD_UTILS) excserver
1237
1238vm/diag_threshold_test_double_limit: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1239vm/diag_threshold_test_double_limit: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1240vm/diag_threshold_test_double_limit: OTHER_CFLAGS += -l darwintest_utils
1241vm/diag_threshold_test_double_limit: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1242
1243vm/diag_threshold_test_simple: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1244vm/diag_threshold_test_simple: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1245vm/diag_threshold_test_simple: OTHER_CFLAGS += -l darwintest_utils
1246vm/diag_threshold_test_simple: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1247
1248vm/diag_threshold_test_enable_disable_threshold: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1249vm/diag_threshold_test_enable_disable_threshold: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1250vm/diag_threshold_test_enable_disable_threshold: OTHER_CFLAGS += -l darwintest_utils
1251vm/diag_threshold_test_enable_disable_threshold: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1252
1253vm/diag_threshold_test_no_limit_cross: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1254vm/diag_threshold_test_no_limit_cross: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1255vm/diag_threshold_test_no_limit_cross: OTHER_CFLAGS += -l darwintest_utils
1256vm/diag_threshold_test_no_limit_cross: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1257
1258vm/diag_threshold_test_no_retrigger: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1259vm/diag_threshold_test_no_retrigger: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1260vm/diag_threshold_test_no_retrigger: OTHER_CFLAGS += -l darwintest_utils
1261vm/diag_threshold_test_no_retrigger: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1262
1263vm/diag_threshold_test_with_low_watermark: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1264vm/diag_threshold_test_with_low_watermark: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1265vm/diag_threshold_test_with_low_watermark: OTHER_CFLAGS += -l darwintest_utils
1266vm/diag_threshold_test_with_low_watermark: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1267
1268vm/diag_threshold_test_with_high_watermark: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1269vm/diag_threshold_test_with_high_watermark: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1270vm/diag_threshold_test_with_high_watermark: OTHER_CFLAGS += -l darwintest_utils
1271vm/diag_threshold_test_with_high_watermark: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1272
1273vm/diag_threshold_test_watermark_and_threshold_same: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1274vm/diag_threshold_test_watermark_and_threshold_same: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1275vm/diag_threshold_test_watermark_and_threshold_same: OTHER_CFLAGS += -l darwintest_utils
1276vm/diag_threshold_test_watermark_and_threshold_same: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1277
1278vm/diag_threshold_test_limit_and_threshold_same: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1279vm/diag_threshold_test_limit_and_threshold_same: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1280vm/diag_threshold_test_limit_and_threshold_same: OTHER_CFLAGS += -l darwintest_utils
1281vm/diag_threshold_test_limit_and_threshold_same: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1282
1283vm/diag_threshold_test_logging: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1284vm/diag_threshold_test_logging: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1285vm/diag_threshold_test_logging: OTHER_CFLAGS += -l darwintest_utils
1286
1287vm/diag_threshold_test_large_limit: $(DIAG_MEM_THRESHOLD_UTILS)  excserver
1288vm/diag_threshold_test_large_limit: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
1289vm/diag_threshold_test_large_limit: OTHER_CFLAGS += -l darwintest_utils
1290vm/diag_threshold_test_large_limit: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1291
1292EXCLUDED_SOURCES += constrained_ctypes_tests.c
1293CUSTOM_TARGETS += constrained_ctypes_tests_enabled constrained_ctypes_tests_enacted constrained_ctypes_tests_disabled
1294constrained_ctypes_tests_enabled: OTHER_CFLAGS += -D__CCT_TEST_ENABLED
1295constrained_ctypes_tests_enabled: OTHER_LDFLAGS += -ldarwintest_utils
1296constrained_ctypes_tests_enabled: constrained_ctypes_tests.c
1297	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_enabled
1298	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_enabled;
1299
1300install-constrained_ctypes_tests_enabled: constrained_ctypes_tests_enabled
1301	mkdir -p $(INSTALLDIR)
1302	cp $(SYMROOT)/constrained_ctypes_tests_enabled $(INSTALLDIR)/
1303
1304constrained_ctypes_tests_enacted: OTHER_CFLAGS += -D__CCT_TEST_ENABLED
1305constrained_ctypes_tests_enacted: OTHER_CFLAGS += -D__CCT_TEST_ENACTED
1306constrained_ctypes_tests_enacted: OTHER_CFLAGS += -fbounds-attributes
1307constrained_ctypes_tests_enacted: OTHER_LDFLAGS += -ldarwintest_utils
1308constrained_ctypes_tests_enacted: constrained_ctypes_tests.c
1309	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_enacted
1310	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_enacted;
1311
1312install-constrained_ctypes_tests_enacted: constrained_ctypes_tests_enacted
1313	mkdir -p $(INSTALLDIR)
1314	cp $(SYMROOT)/constrained_ctypes_tests_enacted $(INSTALLDIR)/
1315
1316
1317constrained_ctypes_tests_disabled: OTHER_LDFLAGS += -ldarwintest_utils
1318constrained_ctypes_tests_disabled: constrained_ctypes_tests.c
1319	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) constrained_ctypes_tests.c -o $(SYMROOT)/constrained_ctypes_tests_disabled
1320	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/constrained_ctypes_tests_disabled;
1321
1322install-constrained_ctypes_tests_disabled: constrained_ctypes_tests_disabled
1323	mkdir -p $(INSTALLDIR)
1324	cp $(SYMROOT)/constrained_ctypes_tests_disabled $(INSTALLDIR)/
1325
1326task_suspend_stats: OTHER_LDFLAGS += -ldarwintest_utils
1327task_suspend_stats: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
1328
1329# os_atomic use throws this warning
1330setitimer: OTHER_CFLAGS += -Wno-c++98-compat
1331
1332
1333include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.targets
1334
1335exception_ports_info: CODE_SIGN_ENTITLEMENTS = set_exception_port.entitlement
1336