xref: /xnu-8019.80.24/tests/Makefile (revision a325d9c4a84054e40bbe985afedcb50ab80993ea)
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
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# the xnu build system will only ever call us with the default target
22.DEFAULT_GOAL := install
23
24include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.common
25
26OTHER_CFLAGS  = -Weverything -Wno-gnu-union-cast -Wno-missing-field-initializers -Wno-partial-availability
27OTHER_CFLAGS += -Wno-missing-noreturn -Wno-vla -Wno-reserved-id-macro -Wno-documentation-unknown-command
28OTHER_CFLAGS += -Wno-padded -Wno-used-but-marked-unused -Wno-covered-switch-default -Wno-nullability-extension
29OTHER_CFLAGS += -Wno-gnu-empty-initializer -Wno-unused-macros -Wno-undef -Wno-fixed-enum-extension
30OTHER_CFLAGS += -Wno-gnu-auto-type -Wno-switch-enum -Wno-variadic-macros
31OTHER_CFLAGS += --std=gnu11 -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
32OTHER_CFLAGS += -UT_NAMESPACE_PREFIX -DT_NAMESPACE_PREFIX=xnu
33OTHER_CFLAGS += -F $(SDKROOT)/System/Library/PrivateFrameworks
34
35OTHER_CFLAGS += -Wl,-sectcreate,__INFO_FILTER,__disable,/dev/null
36
37
38CODESIGN:=$(shell xcrun -sdk "$(TARGETSDK)" -find codesign)
39CODESIGN_HARDENED_RUNTIME:=$(CODESIGN) -o runtime
40CODESIGN_ALLOCATE:=$(shell xcrun -sdk "$(TARGETSDK)" -find codesign_allocate)
41
42ifeq ($(PLATFORM),iPhoneOS)
43  IOS_TEST_COMPAT = YES
44else
45  IOS_TEST_COMPAT = NO
46endif
47
48# to have custom compiler flags to
49# target: OTHER_CFLAGS += <my flags>
50
51atm_diagnostic_flag: OTHER_CFLAGS += drop_priv.c
52
53atm_diagnostic_flag_entitled: CODE_SIGN_ENTITLEMENTS = atm_diagnostic_flag.entitlements
54atm_diagnostic_flag_entitled: OTHER_CFLAGS += drop_priv.c
55
56avx: INVALID_ARCHS = $(filter arm%,$(ARCH_CONFIGS))
57avx: OTHER_CFLAGS += -mavx512f -mavx512bw -mavx512vl
58avx: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
59avx: CONFIG_FLAGS := $(filter-out -O%,$(CONFIG_FLAGS))
60# Level 2 optimization must be used to prevent compiler from generating
61# invalid instructions when compiling with AVX-512 flags.
62avx: CONFIG_FLAGS += -O2
63# Disable vzeroupper insertion to work around rdar://problem/35035096
64avx: CONFIG_FLAGS += -mllvm -x86-use-vzeroupper=0
65ifneq (osx,$(TARGET_NAME))
66EXCLUDED_SOURCES += avx.c
67endif
68
69CUSTOM_TARGETS = sr_entitlement_helper
70
71sr_entitlement_helper: sr_entitlement_helper.c
72	mkdir -p $(SYMROOT)
73	$(CC) -I $(OBJROOT) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) sr_entitlement_helper.c -o $(SYMROOT)/$@
74	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements sr_entitlement.entitlements $(SYMROOT)/$@; \
75	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements sr_entitlement.entitlements $(SYMROOT)/$@;
76
77install-sr_entitlement_helper: sr_entitlement_helper
78	mkdir -p $(INSTALLDIR)
79	cp $(SYMROOT)/sr_entitlement_helper $(INSTALLDIR)
80
81sr_entitlement: OTHER_LDFLAGS += -ldarwintest_utils
82
83restrict_jit: CODE_SIGN_ENTITLEMENTS = restrict_jit.entitlements
84
85backtracing_tests: OTHER_LDFLAGS += -framework CoreSymbolication
86backtracing_tests: CODE_SIGN_ENTITLEMENTS = kernel_symbolication_entitlements.plist
87
88data_protection: OTHER_LDFLAGS += -ldarwintest_utils -framework IOKit
89
90CUSTOM_TARGETS += immovable_send_client vm_spawn_tool port_exhaustion_client port_table_limits_client fd_table_limits_client
91
92exception_tests: excserver_protect exc_helpers.c
93exception_tests: CODE_SIGN_ENTITLEMENTS = exception_tests.entitlements
94exception_tests: OTHER_CFLAGS += $(OBJROOT)/excserver_protect.c
95exception_tests: OTHER_CFLAGS += -I $(OBJROOT)
96exception_tests: OTHER_CFLAGS += -DENTITLED=1
97
98immovable_send: excserver
99immovable_send: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
100immovable_send: OTHER_LDFLAGS += -ldarwintest_utils -lpthread -framework IOKit
101immovable_send: immovable_send_client
102
103immovable_send_client: immovable_send_client.c
104	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) immovable_send_client.c -o $(SYMROOT)/immovable_send_client
105
106install-immovable_send_client: immovable_send_client
107	mkdir -p $(INSTALLDIR)
108	cp $(SYMROOT)/immovable_send_client $(INSTALLDIR)/
109
110port_exhaustion: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
111port_exhaustion: port_exhaustion_client
112
113port_exhaustion_client: port_exhaustion_client.c
114	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) port_exhaustion_client.c -o $(SYMROOT)/port_exhaustion_client
115
116install-port_exhaustion_client: port_exhaustion_client
117	mkdir -p $(INSTALLDIR)
118	cp $(SYMROOT)/port_exhaustion_client $(INSTALLDIR)/
119
120port_table_limits: rnserver
121port_table_limits: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
122port_table_limits: OTHER_CFLAGS += $(OBJROOT)/rnServer.c -I $(OBJROOT)
123port_table_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
124port_table_limits: port_table_limits_client
125
126port_table_limits_client: port_table_limits_client.c
127	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) port_table_limits_client.c -o $(SYMROOT)/port_table_limits_client
128	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
129
130install-port_table_limits_client: port_table_limits_client
131	mkdir -p $(INSTALLDIR)
132	cp $(SYMROOT)/port_table_limits_client $(INSTALLDIR)/
133
134fd_table_limits: rnserver
135fd_table_limits: OTHER_CFLAGS += $(OBJROOT)/rnServer.c -I $(OBJROOT)
136fd_table_limits: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
137fd_table_limits: fd_table_limits_client
138
139fd_table_limits_client: fd_table_limits_client.c
140	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) fd_table_limits_client.c -o $(SYMROOT)/fd_table_limits_client
141	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
142
143install-fd_table_limits_client: fd_table_limits_client
144	mkdir -p $(INSTALLDIR)
145	cp $(SYMROOT)/fd_table_limits_client $(INSTALLDIR)/
146
147vm_spawn_tool: INVALID_ARCHS = i386
148vm_spawn_tool: vm_spawn_tool.c
149	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_spawn_tool.c -o $(SYMROOT)/vm_spawn_tool
150
151install-vm_spawn_tool: vm_spawn_tool
152	mkdir -p $(INSTALLDIR)/tools
153	cp $(SYMROOT)/vm_spawn_tool $(INSTALLDIR)/tools/
154
155CUSTOM_TARGETS += imm_pinned_control_port_crasher
156
157imm_pinned_control_port: excserver
158imm_pinned_control_port: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
159imm_pinned_control_port: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
160imm_pinned_control_port: OTHER_LDFLAGS += -ldarwintest_utils -lpthread
161imm_pinned_control_port: imm_pinned_control_port_crasher
162
163imm_pinned_control_port_crasher: imm_pinned_control_port_crasher.c
164	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) imm_pinned_control_port_crasher.c -o $(SYMROOT)/imm_pinned_control_port_crasher
165	$(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@
166
167install-imm_pinned_control_port_crasher: imm_pinned_control_port_crasher
168	mkdir -p $(INSTALLDIR)
169	cp $(SYMROOT)/imm_pinned_control_port_crasher $(INSTALLDIR)/
170
171kas_info: OTHER_LDFLAGS += -framework CoreSymbolication
172kas_info: CODE_SIGN_ENTITLEMENTS = kernel_symbolication_entitlements.plist
173
174INCLUDED_TEST_SOURCE_DIRS += ktrace
175
176ktrace/kdebug_tests: INVALID_ARCHS = i386
177ktrace/kdebug_tests: OTHER_LDFLAGS = -framework ktrace -ldarwintest_utils -framework kperf
178ktrace/kdebug_tests: OTHER_CFLAGS += test_utils.c
179
180ktrace/kdebug_coproc_tests: INVALID_ARCHS = i386
181ktrace/kdebug_coproc_tests: OTHER_LDFLAGS = -framework ktrace -ldarwintest_utils -framework kperf
182ktrace/kdebug_coproc_tests: OTHER_CFLAGS += test_utils.c
183
184ktrace/kpc_tests: OTHER_LDFLAGS += -framework kperf -framework ktrace
185ktrace/kpc_tests: INVALID_ARCHS = i386
186
187ktrace/kperf_tests: OTHER_CFLAGS += ktrace/kperf_helpers.c drop_priv.c
188ktrace/kperf_tests: OTHER_LDFLAGS += -framework kperf -framework kperfdata -framework ktrace -ldarwintest_utils
189
190ktrace/kperf_backtracing_tests: OTHER_CFLAGS += ktrace/kperf_helpers.c
191ktrace/kperf_backtracing_tests: OTHER_LDFLAGS += -framework kperf -framework kperfdata -framework ktrace
192ktrace/kperf_backtracing_tests: OTHER_LDFLAGS += -framework CoreSymbolication
193ktrace/kperf_backtracing_tests: CODE_SIGN_ENTITLEMENTS = kernel_symbolication_entitlements.plist
194
195EXCLUDED_SOURCES += drop_priv.c ktrace/kperf_helpers.c xnu_quick_test_helpers.c memorystatus_assertion_helpers.c bpflib.c in_cksum.c test_utils.c inet_transfer.c
196
197ifneq ($(IOS_TEST_COMPAT),YES)
198EXCLUDED_SOURCES += jumbo_va_spaces_28530648.c perf_compressor.c memorystatus_freeze_test.c vm/entitlement_increased_memory_limit.c
199endif
200
201perf_compressor: OTHER_LDFLAGS += -ldarwintest_utils
202perf_compressor: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
203
204
205memorystatus_freeze_test: CODE_SIGN_ENTITLEMENTS=./task_for_pid_entitlement.plist
206memorystatus_freeze_test: OTHER_LDFLAGS += -ldarwintest_utils
207memorystatus_freeze_test: OTHER_CFLAGS += -ldarwintest_utils memorystatus_assertion_helpers.c
208
209memorystatus_is_assertion: OTHER_LDFLAGS += -ldarwintest_utils
210memorystatus_is_assertion: OTHER_CFLAGS += memorystatus_assertion_helpers.c
211
212memorystatus_vm_map_fork: OTHER_CFLAGS += test_utils.c
213
214shared_cache_tests: OTHER_LDFLAGS += -ldarwintest_utils
215
216stackshot_tests: OTHER_CFLAGS += -Wno-objc-messaging-id
217stackshot_tests: OTHER_LDFLAGS += -lkdd -lz -ldarwintest_utils -framework Foundation
218
219stackshot_accuracy: OTHER_CFLAGS += -ldarwintest_utils -Wno-objc-messaging-id
220stackshot_accuracy: OTHER_LDFLAGS += -lkdd -ldarwintest_utils -framework Foundation
221stackshot_accuracy: INVALID_ARCHS = i386
222
223ifeq ($(PLATFORM),MacOSX)
224CUSTOM_TARGETS += stackshot_translated_child
225
226stackshot_translated_child: INVALID_ARCHS = arm64 arm64e
227stackshot_translated_child: stackshot_translated_child.c
228	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) stackshot_translated_child.c -o $(SYMROOT)/stackshot_translated_child
229
230install-stackshot_translated_child: stackshot_translated_child
231	mkdir -p $(INSTALLDIR)
232	cp $(SYMROOT)/stackshot_translated_child $(INSTALLDIR)/
233else
234EXCLUDED_SOURCES += stackshot_translated_child.c
235endif
236
237telemetry: OTHER_LDFLAGS = -framework ktrace -framework kperf -framework CoreFoundation
238
239memorystatus_zone_test: OTHER_CFLAGS += -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
240memorystatus_zone_test: OTHER_LDFLAGS += -framework ktrace
241memorystatus_zone_test: OTHER_LDFLAGS += -ldarwintest_utils
242
243memcmp_zero: OTHER_CFLAGS += ../osfmk/arm64/memcmp_zero.s
244
245text_corruption: OTHER_LDFLAGS += -ldarwintest_utils
246CUSTOM_TARGETS += text_corruption_helper
247
248text_corruption_helper:
249	$(CC) $(LDFLAGS) $(CFLAGS) text_corruption_helper.c -lm -o $(SYMROOT)/$@;
250	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
251
252install-text_corruption_helper: text_corruption_helper
253	mkdir -p $(INSTALLDIR)
254	cp $(SYMROOT)/text_corruption_helper $(INSTALLDIR)/
255
256kevent_qos: OTHER_CFLAGS += -Wno-unused-macros
257kevent_qos: OTHER_CFLAGS += -I $(OBJROOT)/
258
259mach_get_times: OTHER_LDFLAGS += -ldarwintest_utils
260
261monotonic_core: OTHER_LDFLAGS += -framework ktrace
262
263perfmon_unit_tests: OTHER_CFLAGS += -Wno-missing-variable-declarations -Wno-format-pedantic -Wno-language-extension-token
264
265perf_exit: perf_exit_proc
266perf_exit: OTHER_LDFLAGS = -framework ktrace -ldarwintest_utils
267perf_exit: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
268
269CUSTOM_TARGETS += prioritize_process_launch_helper
270prioritize_process_launch: prioritize_process_launch_helper
271
272prioritize_process_launch_helper: prioritize_process_launch_helper.c
273	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) prioritize_process_launch_helper.c -o $(SYMROOT)/prioritize_process_launch_helper
274	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
275	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
276
277install-prioritize_process_launch_helper: prioritize_process_launch_helper
278	mkdir -p $(INSTALLDIR)
279	cp $(SYMROOT)/prioritize_process_launch_helper $(INSTALLDIR)/
280
281
282perf_spawn_fork: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
283
284mach_exception_reply: OTHER_CFLAGS += -Wno-cast-align
285
286os_thread_self_restrict: os_thread_self_restrict.c os_thread_self_restrict-entitlements.plist
287os_thread_self_restrict: CODE_SIGN_ENTITLEMENTS=os_thread_self_restrict-entitlements.plist
288os_thread_self_restrict: OTHER_LDFLAGS += -sectcreate __TEXT __info_plist os_thread_self_restrict-identifier.plist
289
290subsystem_root_path: subsystem_root_path.c subsystem_root_path-entitlements.plist
291subsystem_root_path: CODE_SIGN_ENTITLEMENTS=subsystem_root_path-entitlements.plist
292
293EXCLUDED_SOURCES += $(wildcard bounded_ptr_src/*.cpp)
294bounded_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
295bounded_ptr: $(wildcard bounded_ptr_src/*.cpp) bounded_ptr.cpp
296
297EXCLUDED_SOURCES += bounded_ptr_03.cpp
298bounded_ptr_03: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++03
299bounded_ptr_03: bounded_ptr_03.cpp
300
301EXCLUDED_SOURCES += $(wildcard bounded_array_src/*.cpp)
302bounded_array: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
303bounded_array: $(wildcard bounded_array_src/*.cpp) bounded_array.cpp
304
305EXCLUDED_SOURCES += $(wildcard bounded_array_ref_src/*.cpp)
306bounded_array_ref: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
307bounded_array_ref: $(wildcard bounded_array_ref_src/*.cpp) bounded_array_ref.cpp
308
309EXCLUDED_SOURCES += $(wildcard intrusive_shared_ptr_src/*.cpp)
310intrusive_shared_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
311intrusive_shared_ptr: $(wildcard intrusive_shared_ptr_src/*.cpp) intrusive_shared_ptr.cpp
312
313EXCLUDED_SOURCES += $(wildcard safe_allocation_src/*.cpp)
314safe_allocation: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
315safe_allocation: $(wildcard safe_allocation_src/*.cpp) safe_allocation.cpp
316
317EXCLUDED_SOURCES += osptr_compat.cpp
318osptr_98: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++98 -DOSPTR_STD="98"
319osptr_98: osptr_compat.cpp
320	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
321osptr_11: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++11 -DOSPTR_STD="11"
322osptr_11: osptr_compat.cpp
323	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
324osptr_14: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++14 -DOSPTR_STD="14"
325osptr_14: osptr_compat.cpp
326	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
327osptr_17: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++17 -DOSPTR_STD="17"
328osptr_17: osptr_compat.cpp
329	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
330
331priority_queue: OTHER_CXXFLAGS += -std=c++17
332zalloc_buddy: OTHER_CFLAGS += -Wno-format-pedantic
333
334os_refcnt: OTHER_CFLAGS += -I$(SRCROOT)/../libkern/ -Wno-gcc-compat -Wno-undef -O3 -flto
335
336kernel_inspection: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
337kernel_inspection: OTHER_CFLAGS += -DENTITLED=1
338
339turnstile_multihop: OTHER_CFLAGS += -Wno-unused-macros
340turnstile_multihop: OTHER_CFLAGS += -I $(OBJROOT)/
341
342CUSTOM_TARGETS += perf_exit_proc
343
344perf_exit_proc:
345	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) perf_exit_proc.c -o $(SYMROOT)/perf_exit_proc
346
347install-perf_exit_proc: perf_exit_proc
348	mkdir -p $(INSTALLDIR)
349	cp $(SYMROOT)/perf_exit_proc $(INSTALLDIR)/
350
351stackshot_idle_25570396: OTHER_LDFLAGS += -lkdd -framework Foundation
352
353stackshot_block_owner_14362384: OTHER_LDFLAGS += -framework Foundation -lpthread -lkdd
354ifeq ($(PLATFORM),MacOSX)
355stackshot_block_owner_14362384: OTHER_LDFLAGS += -lpcre
356endif
357
358all: $(DSTROOT)/usr/local/bin/kcdata
359
360$(DSTROOT)/usr/local/bin/kcdata: $(SRCROOT)/../tools/lldbmacros/kcdata.py
361	mkdir -p $(dir $@)
362	cp $< $@
363	chmod a+x $@
364
365xnu_quick_test: OTHER_CFLAGS += xnu_quick_test_helpers.c
366
367CUSTOM_TARGETS += vm_set_max_addr_helper
368
369vm_set_max_addr_helper: vm_set_max_addr_helper.c
370	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_set_max_addr_helper.c -o $(SYMROOT)/vm_set_max_addr_helper; \
371	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
372	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
373
374install-vm_set_max_addr_helper: vm_set_max_addr_helper
375	mkdir -p $(INSTALLDIR)
376	cp $(SYMROOT)/vm_set_max_addr_helper $(INSTALLDIR)/
377
378CUSTOM_TARGETS += subsystem_root_path_helper_entitled
379CUSTOM_TARGETS += subsystem_root_path_helper
380
381subsystem_root_path_helper_entitled: subsystem_root_path_helper.c subsystem_root_path-entitlements.plist
382	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper_entitled; \
383	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
384	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements subsystem_root_path-entitlements.plist $(SYMROOT)/$@;
385
386install-subsystem_root_path_helper_entitled: subsystem_root_path_helper_entitled
387	mkdir -p $(INSTALLDIR)
388	cp $(SYMROOT)/subsystem_root_path_helper_entitled $(INSTALLDIR)/
389
390subsystem_root_path_helper: subsystem_root_path_helper.c
391	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper; \
392	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
393	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
394
395install-subsystem_root_path_helper: subsystem_root_path_helper
396	mkdir -p $(INSTALLDIR)
397	cp $(SYMROOT)/subsystem_root_path_helper $(INSTALLDIR)/
398
399CUSTOM_TARGETS += vm_test_code_signing_helper
400
401vm_test_code_signing_helper: vm_test_code_signing_helper.c
402	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_test_code_signing_helper.c -o $(SYMROOT)/vm_test_code_signing_helper; \
403	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
404	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
405
406install-vm_test_code_signing_helper: vm_test_code_signing_helper
407	mkdir -p $(INSTALLDIR)
408	cp $(SYMROOT)/vm_test_code_signing_helper $(INSTALLDIR)/
409
410vm_test_code_signing: OTHER_LDFLAGS += -ldarwintest_utils
411
412INCLUDED_TEST_SOURCE_DIRS += vm ipc rm
413
414# Revert to legacy vm_test suite until <rdar://problem/56675212> gets solved
415EXCLUDED_SOURCES += vm/vm_allocation.c
416
417ifeq ($(IOS_TEST_COMPAT),YES)
418OTHER_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
419jumbo_va_spaces_28530648: CODE_SIGN_ENTITLEMENTS = jumbo_va_spaces_28530648.entitlements
420jumbo_va_spaces_28530648: OTHER_CFLAGS += -DENTITLED=1 -DTESTNAME=jumbo_va_spaces_28530648
421jumbo_va_spaces_28530648: OTHER_LDFLAGS += -ldarwintest_utils
422jumbo_va_spaces_28530648: OTHER_LDFLAGS += -sectcreate __TEXT __info_plist jumbo_va_spaces_28530648-identifier.plist
423
424jumbo_va_spaces_52551256: CODE_SIGN_ENTITLEMENTS = jumbo_va_spaces_52551256.entitlements
425jumbo_va_spaces_52551256: OTHER_CFLAGS += -DENTITLED=1 -DTESTNAME=jumbo_va_spaces_52551256
426jumbo_va_spaces_52551256: OTHER_LDFLAGS += -ldarwintest_utils
427jumbo_va_spaces_52551256: jumbo_va_spaces_28530648.c
428	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
429	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
430
431jumbo_va_spaces_28530648_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
432jumbo_va_spaces_28530648_unentitled: OTHER_CFLAGS += -DTESTNAME=jumbo_va_spaces_28530648_unentitled
433jumbo_va_spaces_28530648_unentitled: jumbo_va_spaces_28530648.c
434	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
435
436vm/entitlement_increased_memory_limit: CODE_SIGN_ENTITLEMENTS = vm/entitlement_increased_memory_limit.entitlements
437vm/entitlement_increased_memory_limit: OTHER_CFLAGS += -DENTITLED=1
438vm/entitlement_increased_memory_limit: OTHER_LDFLAGS += -ldarwintest_utils memorystatus_assertion_helpers.c
439vm/entitlement_increased_memory_limit: vm/entitlement_increased_memory_limit.c
440	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
441	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
442
443vm/entitlement_increased_memory_limit_unentitled: OTHER_LDFLAGS += -ldarwintest_utils memorystatus_assertion_helpers.c
444vm/entitlement_increased_memory_limit_unentitled: vm/entitlement_increased_memory_limit.c
445	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
446
447vm_phys_footprint_legacy: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
448vm_phys_footprint_legacy: OTHER_CFLAGS += -DLEGACY_FOOTPRINT_ENTITLED=1
449vm_phys_footprint_legacy: CODE_SIGN_ENTITLEMENTS=./legacy_footprint.entitlement
450vm_phys_footprint_legacy: vm_phys_footprint.c
451	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
452
453endif
454
455task_info_28439149: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
456
457ipc_read_inspect: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
458
459ipc_thread_ports_race: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
460ipc_thread_ports_race: OTHER_LDFLAGS += -ldarwintest_utils
461
462proc_info: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
463proc_info: OTHER_LDFLAGS += -ldarwintest_utils
464
465proc_info_list_kthreads: CODE_SIGN_ENTITLEMENTS = ./proc_info_list_kthreads.entitlements
466
467proc_info_44873309: CODE_SIGN_ENTITLEMENTS = ./proc_info_44873309.entitlements
468
469disk_mount_conditioner: disk_mount_conditioner*
470disk_mount_conditioner: CODE_SIGN_ENTITLEMENTS=./disk_mount_conditioner-entitlements.plist
471disk_mount_conditioner: OTHER_LDFLAGS += -ldarwintest_utils
472
473disk_mount_conditioner: OTHER_TEST_TARGETS += disk_mount_conditioner_unentitled
474disk_mount_conditioner_unentitled: OTHER_CFLAGS += -DTEST_UNENTITLED
475disk_mount_conditioner_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
476disk_mount_conditioner_unentitled: disk_mount_conditioner.c
477	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
478
479work_interval_test: CODE_SIGN_ENTITLEMENTS = work_interval_test.entitlements
480work_interval_test: OTHER_CFLAGS += -DENTITLED=1
481
482settimeofday_29193041: OTHER_CFLAGS += drop_priv.c
483
484settimeofday_29193041_entitled: CODE_SIGN_ENTITLEMENTS = settimeofday_29193041.entitlements
485settimeofday_29193041_entitled: OTHER_CFLAGS += drop_priv.c
486
487thread_group_set_32261625: OTHER_LDFLAGS = -framework ktrace
488
489task_info: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
490task_info: OTHER_CFLAGS += test_utils.c
491
492extract_right_soft_fail: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
493
494ifneq ($(IOS_TEST_COMPAT),YES)
495	EXCLUDED_SOURCES += task_vm_info_decompressions.c
496endif
497
498ifneq ($(PLATFORM),iPhoneOS)
499	EXCLUDED_SOURCES += vm/compression_sweep.c
500endif
501
502tcp_bind_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
503socket_bind_35243417: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
504socket_bind_35685803: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
505icmp_fragmetned_payload: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
506
507net_tuntests: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
508
509net_bridge: inet_transfer.c bpflib.c in_cksum.c
510net_bridge: OTHER_LDFLAGS += -ldarwintest_utils
511net_bridge: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
512
513CUSTOM_TARGETS += posix_spawn_archpref_helper
514
515posix_spawn_archpref_helper: posix_spawn_archpref_helper.c
516	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_archpref_helper.c -o $(SYMROOT)/$@;
517	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
518
519install-posix_spawn_archpref_helper: posix_spawn_archpref_helper
520	mkdir -p $(INSTALLDIR)
521	cp $(SYMROOT)/posix_spawn_archpref_helper $(INSTALLDIR)/
522
523CUSTOM_TARGETS += posix_spawn_alt_rosetta_helper
524
525posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper.c
526	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_alt_rosetta_helper.c -o $(SYMROOT)/$@;
527	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
528
529install-posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper
530	mkdir -p $(INSTALLDIR)
531	cp $(SYMROOT)/posix_spawn_alt_rosetta_helper $(INSTALLDIR)/
532
533MIG:=SDKROOT=$(SDKROOT) $(shell xcrun -sdk "$(TARGETSDK)" -find mig)
534
535CUSTOM_TARGETS += excserver
536
537excserver:
538	$(MIG) $(CFLAGS) \
539		-sheader $(OBJROOT)/excserver.h \
540		-server $(OBJROOT)/excserver.c \
541		-header /dev/null -user /dev/null \
542		excserver.defs
543install-excserver: ;
544
545CUSTOM_TARGETS += excserver_protect
546
547excserver_protect:
548	$(MIG) $(CFLAGS) \
549		-DMACH_EXC_SERVER_TASKIDTOKEN \
550		-sheader $(OBJROOT)/excserver_protect.h \
551		-server $(OBJROOT)/excserver_protect.c \
552		-header /dev/null -user /dev/null \
553		excserver_protect.defs
554install-excserver_protect: ;
555
556EXCLUDED_SOURCES += exc_helpers.c
557
558CUSTOM_TARGETS += notifyserver
559
560notifyserver:
561	$(MIG) $(CFLAGS) \
562		-DMACH_NOTIFY_SERVICE_PORT_DESTROYED_EXPECTED \
563		-user /dev/null \
564		-header $(OBJROOT)/notify.h \
565		-sheader $(OBJROOT)/notifyServer.h \
566		-server $(OBJROOT)/notifyServer.c \
567		notifyserver.defs
568install-notifyserver: ;
569
570CUSTOM_TARGETS += rnserver
571
572rnserver:
573	$(MIG) $(CFLAGS) \
574		-user /dev/null \
575		-header $(OBJROOT)/rn.h \
576		-sheader $(OBJROOT)/rnServer.h \
577		-server $(OBJROOT)/rnServer.c \
578		rnserver.defs
579install-rnserver: ;
580
581
582x18: OTHER_CFLAGS += -Wno-language-extension-token
583
584pmap_bench: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
585
586hw_breakpoint_step_arm64: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
587hw_breakpoint_step_arm64: INVALID_ARCHS = $(filter-out arm64%,$(ARCH_CONFIGS))
588hw_breakpoint_step_arm64: excserver
589hw_breakpoint_step_arm64: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
590
591exc_resource_threads: excserver
592exc_resource_threads: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
593
594mach_service_port: notifyserver
595mach_service_port: OTHER_CFLAGS += $(OBJROOT)/notifyServer.c -I $(OBJROOT)
596
597fp_exception: excserver exc_helpers.c
598fp_exception: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
599
600ptrauth_failure: excserver exc_helpers.c
601ptrauth_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT) -Wno-language-extension-token
602ptrauth_failure: CODESIGN = $(CODESIGN_HARDENED_RUNTIME)
603
604decompression_failure: excserver exc_helpers.c
605decompression_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
606
607ifeq ($(findstring arm64,$(ARCH_CONFIGS)),)
608EXCLUDED_SOURCES += arm_cpu_capabilities.c
609else
610arm_cpu_capabilities: INVALID_ARCHS = armv7k x86_64
611arm_cpu_capabilities: excserver exc_helpers.c
612arm_cpu_capabilities: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token -mcpu=apple-a15
613endif
614
615ifeq ($(findstring x86_64,$(ARCH_CONFIGS)),)
616EXCLUDED_SOURCES += ldt_code32.s ldt.c
617else # target = osx
618$(OBJROOT)/ldt_mach_exc_server.c:
619	$(MIG) $(CFLAGS) \
620		-user /dev/null \
621		-server $(OBJROOT)/ldt_mach_exc_server.c \
622		-header $(OBJROOT)/ldt_mach_exc.h \
623		mach_exc.defs
624
625ldt: INVALID_ARCHS = $(ARCH_CONFIGS)
626ldt: $(OBJROOT)/ldt_mach_exc_server.c
627ldt: OTHER_CFLAGS += -arch x86_64 -I $(OBJROOT) $(SRCROOT)/ldt_code32.s -Wl,-pagezero_size,0x1000 -Wno-missing-variable-declarations
628ldt: CODE_SIGN_ENTITLEMENTS=ldt_entitlement.plist
629endif
630
631ifneq ($(PLATFORM),BridgeOS)
632EXCLUDED_SOURCES += remote_time.c
633else
634remote_time: INVALID_ARCHS = armv7 armv7s arm64_32
635endif
636
637vm_phys_footprint: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
638
639vm_kern_count_wired_kernelcache: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders/mach
640
641debug_control_port_for_pid: CODE_SIGN_ENTITLEMENTS = ./debug_control_port_for_pid_entitlement.plist
642
643prng: OTHER_LDFLAGS += -ldarwintest_utils
644
645preoslog: OTHER_LDFLAGS += -ldarwintest_utils
646preoslog: OTHER_CFLAGS += test_utils.c
647
648task_policy: CODE_SIGN_ENTITLEMENTS = ./task_policy_entitlement.plist
649
650OTHER_TEST_TARGETS += task_policy_unentitled
651task_policy_unentitled: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
652task_policy_unentitled: OTHER_CFLAGS += -DUNENTITLED
653task_policy_unentitled: task_policy.c
654	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
655	$(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@
656
657
658port_object_description_race_77259918: OTHER_CFLAGS += -framework IOKit -framework CoreFoundation
659port_object_description_race_77259918: iokit/port_object_description_race_77259918.c
660	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
661OTHER_TEST_TARGETS += port_object_description_race_77259918
662
663EXCLUDED_SOURCES += get_shared_cache_address.c
664ifneq ($(filter iPhoneOS MacOSX, $(PLATFORM)),)
665CUSTOM_TARGETS += get_shared_cache_address
666get_shared_cache_address: INVALID_ARCHS = arm64 i386 x86_64
667get_shared_cache_address: get_shared_cache_address.c
668	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/get_shared_cache_address
669
670install-get_shared_cache_address: get_shared_cache_address
671	$(CODESIGN) --force --sign - --timestamp=none --identifier=com.apple.get_shared_cache_address $(SYMROOT)/get_shared_cache_address
672	mkdir -p $(INSTALLDIR)
673	cp $(SYMROOT)/get_shared_cache_address $(INSTALLDIR)/
674endif
675
676ifneq ($(PLATFORM),MacOSX)
677EXCLUDED_SOURCES += hvtest_x86.m hvtest_x86_guest.c hvtest_x86_asm.s
678else
679EXCLUDED_SOURCES += hvtest_x86_guest.c hvtest_x86_asm.s
680hvtest_x86: CODE_SIGN_ENTITLEMENTS = hv_public.entitlements
681hvtest_x86: INVALID_ARCHS += arm64e arm64 i386
682hvtest_x86: OTHER_CFLAGS += hvtest_x86_guest.c hvtest_x86_asm.s -framework Hypervisor -framework Foundation
683endif
684
685OTHER_TEST_TARGETS += io_catalog_send_data vm_memory_share_tests
686
687vm_memory_share_tests: INVALID_ARCHS = i386
688vm_memory_share_tests: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
689vm_memory_share_tests: vm_memory_tests_src/main.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
690	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
691	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
692	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
693
694# build the mach server as individual helper which does not use libdarwintest
695CUSTOM_TARGETS += vm_memory_share_tests_server
696vm_memory_share_tests_server: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
697vm_memory_share_tests_server: vm_memory_tests_src/server.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
698	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/vm_memory_share_tests_server
699	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
700	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
701
702install-vm_memory_share_tests_server: vm_memory_share_tests_server
703	mkdir -p $(INSTALLDIR)
704	cp $(SYMROOT)/vm_memory_share_tests_server $(INSTALLDIR)/
705
706io_catalog_send_data: INVALID_ARCHS = i386
707io_catalog_send_data: OTHER_CFLAGS += -DTEST_UNENTITLED -framework IOKit -framework CoreFoundation -framework Foundation
708
709io_catalog_send_data: iokit/io_catalog_send_data.m
710	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
711
712ifeq ($(PLATFORM),MacOSX)
713EXCLUDED_SOURCES += vm/kern_max_task_pmem.c
714endif
715
716EXCLUDED_SOURCES += benchmark/helpers.c
717
718perf_vmfault: OTHER_CFLAGS += benchmark/helpers.c
719
720fault_throughput: vm/fault_throughput.c
721	mkdir -p $(SYMROOT)/vm
722	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
723fault_throughput: OTHER_CFLAGS += benchmark/helpers.c
724
725install-fault_throughput: fault_throughput
726	mkdir -p $(INSTALLDIR)/vm
727	cp $(SYMROOT)/vm/fault_throughput $(INSTALLDIR)/vm/
728
729BATS_PLISTS += $(SRCROOT)/vm/fault_throughput.plist
730
731ifeq ($(PLATFORM),MacOSX)
732mixed_pagesize: vm/mixed_pagesize.c
733	mkdir -p $(SYMROOT)/vm
734	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
735
736install-mixed_pagesize: mixed_pagesize
737	mkdir -p $(INSTALLDIR)/vm
738	cp $(SYMROOT)/vm/mixed_pagesize $(INSTALLDIR)/vm/
739
740BATS_PLISTS += $(SRCROOT)/vm/mixed_pagesize.plist
741
742EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
743CUSTOM_TARGETS += mixed_pagesize
744else
745EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
746endif
747
748manual_wq_cooperative: manual_wq_cooperative.c
749	mkdir -p $(SYMROOT)
750	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
751
752install-manual_wq_cooperative: manual_wq_cooperative
753	mkdir -p $(INSTALLDIR)
754	cp $(SYMROOT)/manual_wq_cooperative $(INSTALLDIR)
755
756BATS_PLISTS += $(SRCROOT)/workqueue.plist
757EXCLUDED_SOURCES += manual_wq_cooperative.c workqueue.plist
758CUSTOM_TARGETS += manual_wq_cooperative
759
760fault_throughput_benchrun:
761	mkdir -p $(SYMROOT)/vm
762	cp $(SRCROOT)/vm/fault_throughput.lua $(SYMROOT)/vm/fault_throughput.lua
763	chmod +x $(SYMROOT)/vm/fault_throughput.lua
764
765install-fault_throughput_benchrun: fault_throughput_benchrun
766	mkdir -p $(INSTALLDIR)/vm
767	cp $(SYMROOT)/vm/fault_throughput.lua $(INSTALLDIR)/vm
768	chmod +x $(INSTALLDIR)/vm/fault_throughput.lua
769
770CUSTOM_TARGETS += fault_throughput fault_throughput_benchrun
771EXCLUDED_SOURCES += vm/fault_throughput.plist vm/fault_throughput.c
772
773perf_madvise: vm/perf_madvise.c
774	mkdir -p $(SYMROOT)/vm
775	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
776perf_madvise: OTHER_CFLAGS += benchmark/helpers.c
777install-perf_madvise: perf_madvise
778	mkdir -p $(INSTALLDIR)/vm
779	cp $(SYMROOT)/vm/perf_madvise $(INSTALLDIR)/vm/
780perf_madvise_benchrun:
781	mkdir -p $(SYMROOT)/vm
782	cp $(SRCROOT)/vm/perf_madvise.lua $(SYMROOT)/vm/perf_madvise.lua
783	chmod +x $(SYMROOT)/vm/perf_madvise.lua
784install-perf_madvise_benchrun: perf_madvise_benchrun
785	mkdir -p $(INSTALLDIR)/vm
786	cp $(SYMROOT)/vm/perf_madvise.lua $(INSTALLDIR)/vm
787	chmod +x $(INSTALLDIR)/vm/perf_madvise.lua
788
789CUSTOM_TARGETS += perf_madvise perf_madvise_benchrun
790EXCLUDED_SOURCES += vm/perf_madvise.c
791
792task_create_suid_cred: CODE_SIGN_ENTITLEMENTS = ./task_create_suid_cred_entitlement.plist
793
794OTHER_TEST_TARGETS += task_create_suid_cred_unentitled
795task_create_suid_cred_unentitled: OTHER_CFLAGS += -DUNENTITLED
796task_create_suid_cred_unentitled: task_create_suid_cred.c
797	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
798
799ioconnectasyncmethod_57641955: OTHER_LDFLAGS += -framework IOKit
800
801ifeq ($(PLATFORM),BridgeOS)
802EXCLUDED_SOURCES += ipsec.m
803else
804ipsec: OTHER_LDFLAGS += -framework Foundation -framework CoreFoundation -framework NetworkExtension
805ipsec: CODE_SIGN_ENTITLEMENTS = ipsec.entitlements
806endif
807
808test_sysctl_kern_procargs_25397314: OTHER_LDFLAGS += -framework Foundation -ldarwintest_utils
809
810INCLUDED_TEST_SOURCE_DIRS += counter
811
812EXCLUDED_SOURCES += counter/common.c
813counter/counter: OTHER_CFLAGS += counter/common.c test_utils.c
814counter/counter: OTHER_LDFLAGS += -ldarwintest_utils -ldarwintest
815
816counter/benchmark: counter/benchmark.c
817	mkdir -p $(SYMROOT)/counter
818	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
819	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
820
821counter/benchmark: OTHER_CFLAGS += counter/common.c benchmark/helpers.c
822
823install-counter/benchmark: counter/benchmark
824	mkdir -p $(INSTALLDIR)/counter
825	cp $(SYMROOT)/counter/benchmark $(INSTALLDIR)/counter/
826
827counter/benchmark_benchrun:
828	mkdir -p $(SYMROOT)/counter
829	cp $(SRCROOT)/counter/benchmark.lua $(SYMROOT)/counter/benchmark.lua
830	chmod +x $(SYMROOT)/counter/benchmark.lua
831
832install-counter/benchmark_benchrun: counter/benchmark_benchrun
833	mkdir -p $(INSTALLDIR)/counter
834	cp $(SYMROOT)/counter/benchmark.lua $(INSTALLDIR)/counter/
835	chmod +x $(INSTALLDIR)/counter/benchmark.lua
836
837CUSTOM_TARGETS += counter/benchmark counter/benchmark_benchrun
838EXCLUDED_SOURCES += counter/benchmark.c
839
840ifneq ($(PLATFORM),MacOSX)
841EXCLUDED_SOURCES += vm/page_size_globals.c
842else
843vm/page_size_globals: INVALID_ARCHS = arm64 arm64e
844endif
845
846# Same helper used in execperf, different build system.
847static_binary: ../tools/tests/execperf/exit-asm.S
848	$(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
849	CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/static_binary
850
851install-static_binary: static_binary
852	mkdir -p $(INSTALLDIR)
853	cp $(SYMROOT)/static_binary $(INSTALLDIR)
854
855CUSTOM_TARGETS += static_binary
856EXCLUDED_SOURCES += static_binary.c
857
858test_static_binary_csflags: static_binary
859test_static_binary_csflags: OTHER_LDFLAGS += -ldarwintest_utils
860
861
862trial_experiments: CODE_SIGN_ENTITLEMENTS = trial_experiments.entitlements
863trial_experiments: OTHER_CFLAGS += -DENTITLED=1 test_utils.c drop_priv.c
864trial_experiments: OTHER_LDFLAGS += -ldarwintest_utils
865trial_experiments: trial_experiments.c
866	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
867	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
868
869trial_experiments_unentitled: OTHER_CFLAGS += drop_priv.c test_utils.c
870trial_experiments_unentitled: trial_experiments.c
871	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
872	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
873
874CUSTOM_TARGETS += print_apple_array
875print_apple_array: print_apple_array.c
876	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) print_apple_array.c -o $(SYMROOT)/print_apple_array
877	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
878
879install-print_apple_array: print_apple_array
880	mkdir -p $(INSTALLDIR)/tools
881	cp $(SYMROOT)/print_apple_array $(INSTALLDIR)/tools/
882
883OTHER_TEST_TARGETS += trial_experiments trial_experiments_unentitled
884
885entropy: OTHER_CFLAGS += -framework perfdata
886
887zero_to_n_tests: OTHER_LDFLAGS += -ldarwintest_utils
888
889include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.targets
890
891