xref: /xnu-8020.140.41/tests/Makefile (revision 27b03b360a988dfd3dfdf34262bb0042026747cc)
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 -DT_LEAKS_DISABLE=1
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
237microstackshot_tests: OTHER_LDFLAGS = -ldarwintest_utils -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
256codesigntests: CODE_SIGN_ENTITLEMENTS=codesigntests-entitlements.plist
257codesigntests: OTHER_CFLAGS += -DTESTNAME=codesigntests
258# Adding a custom target and build/install rules since CODE_SIGN_ENTITLEMENTS
259# does not take in arguments, and we need to sign this test using a sha256T
260# digest
261
262OTHER_TEST_TARGETS += codesigntests_sha256t
263codesigntests_sha256t: OTHER_CFLAGS += -DTESTNAME=codesigntests_sha256t
264
265codesigntests_sha256t: codesigntests.c
266	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(DT_LDFLAGS) $(LDFLAGS) $(CFLAGS) codesigntests.c -o $(SYMROOT)/$@;
267	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --digest=sha256T -s - --entitlements codesigntests-entitlements.plist $(SYMROOT)/$@;
268install-codesigntests_sha256t: codesigntests_sha256t
269	mkdir -p $(INSTALLDIR)
270	cp $(SYMROOT)/codesigntests_sha256t $(INSTALLDIR)/
271
272
273
274kevent_qos: OTHER_CFLAGS += -Wno-unused-macros
275kevent_qos: OTHER_CFLAGS += -I $(OBJROOT)/
276
277mach_get_times: OTHER_LDFLAGS += -ldarwintest_utils
278
279monotonic_core: OTHER_LDFLAGS += -framework ktrace
280
281perfmon_unit_tests: OTHER_CFLAGS += -Wno-missing-variable-declarations -Wno-format-pedantic -Wno-language-extension-token
282
283perf_exit: perf_exit_proc
284perf_exit: OTHER_LDFLAGS = -framework ktrace -ldarwintest_utils
285perf_exit: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
286
287CUSTOM_TARGETS += prioritize_process_launch_helper
288prioritize_process_launch: prioritize_process_launch_helper
289
290prioritize_process_launch_helper: prioritize_process_launch_helper.c
291	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) prioritize_process_launch_helper.c -o $(SYMROOT)/prioritize_process_launch_helper
292	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
293	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
294
295install-prioritize_process_launch_helper: prioritize_process_launch_helper
296	mkdir -p $(INSTALLDIR)
297	cp $(SYMROOT)/prioritize_process_launch_helper $(INSTALLDIR)/
298
299
300perf_spawn_fork: CODE_SIGN_ENTITLEMENTS=./private_entitlement.plist
301
302mach_exception_reply: OTHER_CFLAGS += -Wno-cast-align
303
304os_thread_self_restrict: os_thread_self_restrict.c os_thread_self_restrict-entitlements.plist
305os_thread_self_restrict: CODE_SIGN_ENTITLEMENTS=os_thread_self_restrict-entitlements.plist
306os_thread_self_restrict: OTHER_LDFLAGS += -sectcreate __TEXT __info_plist os_thread_self_restrict-identifier.plist
307
308subsystem_root_path: subsystem_root_path.c subsystem_root_path-entitlements.plist
309subsystem_root_path: CODE_SIGN_ENTITLEMENTS=subsystem_root_path-entitlements.plist
310
311EXCLUDED_SOURCES += $(wildcard bounded_ptr_src/*.cpp)
312bounded_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
313bounded_ptr: $(wildcard bounded_ptr_src/*.cpp) bounded_ptr.cpp
314
315EXCLUDED_SOURCES += bounded_ptr_03.cpp
316bounded_ptr_03: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++03
317bounded_ptr_03: bounded_ptr_03.cpp
318
319EXCLUDED_SOURCES += $(wildcard bounded_array_src/*.cpp)
320bounded_array: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
321bounded_array: $(wildcard bounded_array_src/*.cpp) bounded_array.cpp
322
323EXCLUDED_SOURCES += $(wildcard bounded_array_ref_src/*.cpp)
324bounded_array_ref: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
325bounded_array_ref: $(wildcard bounded_array_ref_src/*.cpp) bounded_array_ref.cpp
326
327EXCLUDED_SOURCES += $(wildcard intrusive_shared_ptr_src/*.cpp)
328intrusive_shared_ptr: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
329intrusive_shared_ptr: $(wildcard intrusive_shared_ptr_src/*.cpp) intrusive_shared_ptr.cpp
330
331EXCLUDED_SOURCES += $(wildcard safe_allocation_src/*.cpp)
332safe_allocation: OTHER_CXXFLAGS += -Werror=implicit-int-conversion -Werror=shorten-64-to-32 -I$(SRCROOT)/../libkern -std=c++17
333safe_allocation: $(wildcard safe_allocation_src/*.cpp) safe_allocation.cpp
334
335EXCLUDED_SOURCES += osptr_compat.cpp
336osptr_98: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++98 -DOSPTR_STD="98"
337osptr_98: osptr_compat.cpp
338	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
339osptr_11: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++11 -DOSPTR_STD="11"
340osptr_11: osptr_compat.cpp
341	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
342osptr_14: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++14 -DOSPTR_STD="14"
343osptr_14: osptr_compat.cpp
344	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
345osptr_17: OTHER_CXXFLAGS += -I$(SRCROOT)/../libkern -std=c++17 -DOSPTR_STD="17"
346osptr_17: osptr_compat.cpp
347	$(CXX) $(DT_CXXFLAGS) $(OTHER_CXXFLAGS) $(CXXFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
348
349priority_queue: OTHER_CXXFLAGS += -std=c++17
350vm/zalloc: OTHER_LDFLAGS += -ldarwintest_utils
351vm/zalloc_buddy: OTHER_CFLAGS += -Wno-format-pedantic
352
353os_refcnt: OTHER_CFLAGS += -I$(SRCROOT)/../libkern/ -Wno-gcc-compat -Wno-undef -O3 -flto
354
355kernel_inspection: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
356kernel_inspection: OTHER_CFLAGS += -DENTITLED=1
357
358turnstile_multihop: OTHER_CFLAGS += -Wno-unused-macros
359turnstile_multihop: OTHER_CFLAGS += -I $(OBJROOT)/
360
361CUSTOM_TARGETS += perf_exit_proc
362
363perf_exit_proc:
364	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) perf_exit_proc.c -o $(SYMROOT)/perf_exit_proc
365
366install-perf_exit_proc: perf_exit_proc
367	mkdir -p $(INSTALLDIR)
368	cp $(SYMROOT)/perf_exit_proc $(INSTALLDIR)/
369
370stackshot_idle_25570396: OTHER_LDFLAGS += -lkdd -framework Foundation
371
372stackshot_block_owner_14362384: OTHER_LDFLAGS += -framework Foundation -lpthread -lkdd
373ifeq ($(PLATFORM),MacOSX)
374stackshot_block_owner_14362384: OTHER_LDFLAGS += -lpcre
375endif
376
377all: $(DSTROOT)/usr/local/bin/kcdata
378
379$(DSTROOT)/usr/local/bin/kcdata: $(SRCROOT)/../tools/lldbmacros/kcdata.py
380	mkdir -p $(dir $@)
381	cp $< $@
382	chmod a+x $@
383
384xnu_quick_test: OTHER_CFLAGS += xnu_quick_test_helpers.c
385
386CUSTOM_TARGETS += vm_set_max_addr_helper
387
388vm_set_max_addr_helper: vm_set_max_addr_helper.c
389	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_set_max_addr_helper.c -o $(SYMROOT)/vm_set_max_addr_helper; \
390	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
391	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
392
393install-vm_set_max_addr_helper: vm_set_max_addr_helper
394	mkdir -p $(INSTALLDIR)
395	cp $(SYMROOT)/vm_set_max_addr_helper $(INSTALLDIR)/
396
397CUSTOM_TARGETS += subsystem_root_path_helper_entitled
398CUSTOM_TARGETS += subsystem_root_path_helper
399
400subsystem_root_path_helper_entitled: subsystem_root_path_helper.c subsystem_root_path-entitlements.plist
401	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper_entitled; \
402	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
403	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements subsystem_root_path-entitlements.plist $(SYMROOT)/$@;
404
405install-subsystem_root_path_helper_entitled: subsystem_root_path_helper_entitled
406	mkdir -p $(INSTALLDIR)
407	cp $(SYMROOT)/subsystem_root_path_helper_entitled $(INSTALLDIR)/
408
409subsystem_root_path_helper: subsystem_root_path_helper.c
410	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) subsystem_root_path_helper.c -o $(SYMROOT)/subsystem_root_path_helper; \
411	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
412	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
413
414install-subsystem_root_path_helper: subsystem_root_path_helper
415	mkdir -p $(INSTALLDIR)
416	cp $(SYMROOT)/subsystem_root_path_helper $(INSTALLDIR)/
417
418CUSTOM_TARGETS += vm_test_code_signing_helper
419
420vm_test_code_signing_helper: vm_test_code_signing_helper.c
421	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) vm_test_code_signing_helper.c -o $(SYMROOT)/vm_test_code_signing_helper; \
422	echo $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@; \
423	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
424
425install-vm_test_code_signing_helper: vm_test_code_signing_helper
426	mkdir -p $(INSTALLDIR)
427	cp $(SYMROOT)/vm_test_code_signing_helper $(INSTALLDIR)/
428
429vm_test_code_signing: OTHER_LDFLAGS += -ldarwintest_utils
430
431INCLUDED_TEST_SOURCE_DIRS += vm ipc rm workq
432
433# Revert to legacy vm_test suite until <rdar://problem/56675212> gets solved
434EXCLUDED_SOURCES += vm/vm_allocation.c
435
436EXCLUDED_SOURCES += jumbo_va_spaces_common.c
437
438ifeq ($(IOS_TEST_COMPAT),YES)
439OTHER_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
440jumbo_va_spaces_28530648: CODE_SIGN_ENTITLEMENTS = jumbo_va_spaces_28530648.entitlements
441jumbo_va_spaces_28530648: OTHER_CFLAGS += -DENTITLED=1 -DTESTNAME=jumbo_va_spaces_28530648
442jumbo_va_spaces_28530648: jumbo_va_spaces_common.c
443jumbo_va_spaces_28530648: OTHER_LDFLAGS += -ldarwintest_utils
444jumbo_va_spaces_28530648: OTHER_LDFLAGS += -sectcreate __TEXT __info_plist jumbo_va_spaces_28530648-identifier.plist
445
446jumbo_va_spaces_52551256: CODE_SIGN_ENTITLEMENTS = jumbo_va_spaces_52551256.entitlements
447jumbo_va_spaces_52551256: OTHER_CFLAGS += -DENTITLED=1 -DTESTNAME=jumbo_va_spaces_52551256
448jumbo_va_spaces_52551256: OTHER_LDFLAGS += -ldarwintest_utils
449jumbo_va_spaces_52551256: jumbo_va_spaces_28530648.c jumbo_va_spaces_common.c
450	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
451	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
452
453jumbo_va_spaces_28530648_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
454jumbo_va_spaces_28530648_unentitled: OTHER_CFLAGS += -DTESTNAME=jumbo_va_spaces_28530648_unentitled
455
456jumbo_va_spaces_28530648_unentitled: jumbo_va_spaces_28530648.c jumbo_va_spaces_common.c
457	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
458
459vm/entitlement_increased_memory_limit: CODE_SIGN_ENTITLEMENTS = vm/entitlement_increased_memory_limit.entitlements
460vm/entitlement_increased_memory_limit: OTHER_CFLAGS += -DENTITLED=1 jumbo_va_spaces_common.c
461vm/entitlement_increased_memory_limit: OTHER_LDFLAGS += -ldarwintest_utils memorystatus_assertion_helpers.c
462vm/entitlement_increased_memory_limit: vm/entitlement_increased_memory_limit.c
463	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
464	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
465
466vm/entitlement_increased_memory_limit_unentitled: OTHER_LDFLAGS += -ldarwintest_utils memorystatus_assertion_helpers.c
467vm/entitlement_increased_memory_limit_unentitled: vm/entitlement_increased_memory_limit.c jumbo_va_spaces_common.c
468	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
469
470vm_phys_footprint_legacy: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
471vm_phys_footprint_legacy: OTHER_CFLAGS += -DLEGACY_FOOTPRINT_ENTITLED=1
472vm_phys_footprint_legacy: CODE_SIGN_ENTITLEMENTS=./legacy_footprint.entitlement
473vm_phys_footprint_legacy: vm_phys_footprint.c
474	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
475
476endif
477
478task_info_28439149: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
479
480ipc_read_inspect: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
481
482ipc_thread_ports_race: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
483ipc_thread_ports_race: OTHER_LDFLAGS += -ldarwintest_utils
484
485proc_info: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
486proc_info: OTHER_LDFLAGS += -ldarwintest_utils
487
488proc_info_list_kthreads: CODE_SIGN_ENTITLEMENTS = ./proc_info_list_kthreads.entitlements
489
490proc_info_44873309: CODE_SIGN_ENTITLEMENTS = ./proc_info_44873309.entitlements
491
492disk_mount_conditioner: disk_mount_conditioner*
493disk_mount_conditioner: CODE_SIGN_ENTITLEMENTS=./disk_mount_conditioner-entitlements.plist
494disk_mount_conditioner: OTHER_LDFLAGS += -ldarwintest_utils
495
496disk_mount_conditioner: OTHER_TEST_TARGETS += disk_mount_conditioner_unentitled
497disk_mount_conditioner_unentitled: OTHER_CFLAGS += -DTEST_UNENTITLED
498disk_mount_conditioner_unentitled: OTHER_LDFLAGS += -ldarwintest_utils
499disk_mount_conditioner_unentitled: disk_mount_conditioner.c
500	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
501
502work_interval_test: CODE_SIGN_ENTITLEMENTS = work_interval_test.entitlements
503work_interval_test: OTHER_CFLAGS += -DENTITLED=1
504
505settimeofday_29193041: OTHER_CFLAGS += drop_priv.c
506
507settimeofday_29193041_entitled: CODE_SIGN_ENTITLEMENTS = settimeofday_29193041.entitlements
508settimeofday_29193041_entitled: OTHER_CFLAGS += drop_priv.c
509
510thread_group_set_32261625: OTHER_LDFLAGS = -framework ktrace
511
512task_info: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
513task_info: OTHER_CFLAGS += test_utils.c
514
515extract_right_soft_fail: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
516
517ifneq ($(IOS_TEST_COMPAT),YES)
518	EXCLUDED_SOURCES += task_vm_info_decompressions.c
519endif
520
521ifneq ($(PLATFORM),iPhoneOS)
522	EXCLUDED_SOURCES += vm/compression_sweep.c
523endif
524
525tcp_bind_connect: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
526socket_bind_35243417: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
527socket_bind_35685803: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
528icmp_fragmetned_payload: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
529
530net_tuntests: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
531
532net_bridge: inet_transfer.c bpflib.c in_cksum.c
533net_bridge: OTHER_LDFLAGS += -ldarwintest_utils
534net_bridge: CODE_SIGN_ENTITLEMENTS = network_entitlements.plist
535
536CUSTOM_TARGETS += posix_spawn_archpref_helper
537
538posix_spawn_archpref_helper: posix_spawn_archpref_helper.c
539	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_archpref_helper.c -o $(SYMROOT)/$@;
540	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
541
542install-posix_spawn_archpref_helper: posix_spawn_archpref_helper
543	mkdir -p $(INSTALLDIR)
544	cp $(SYMROOT)/posix_spawn_archpref_helper $(INSTALLDIR)/
545
546CUSTOM_TARGETS += posix_spawn_alt_rosetta_helper
547
548posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper.c
549	$(CC) $(LDFLAGS) $(CFLAGS) posix_spawn_alt_rosetta_helper.c -o $(SYMROOT)/$@;
550	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
551
552install-posix_spawn_alt_rosetta_helper: posix_spawn_alt_rosetta_helper
553	mkdir -p $(INSTALLDIR)
554	cp $(SYMROOT)/posix_spawn_alt_rosetta_helper $(INSTALLDIR)/
555
556MIG:=SDKROOT=$(SDKROOT) $(shell xcrun -sdk "$(TARGETSDK)" -find mig)
557
558CUSTOM_TARGETS += excserver
559
560excserver:
561	$(MIG) $(CFLAGS) \
562		-sheader $(OBJROOT)/excserver.h \
563		-server $(OBJROOT)/excserver.c \
564		-header /dev/null -user /dev/null \
565		excserver.defs
566install-excserver: ;
567
568CUSTOM_TARGETS += excserver_protect
569
570excserver_protect:
571	$(MIG) $(CFLAGS) \
572		-DMACH_EXC_SERVER_TASKIDTOKEN \
573		-sheader $(OBJROOT)/excserver_protect.h \
574		-server $(OBJROOT)/excserver_protect.c \
575		-header /dev/null -user /dev/null \
576		excserver_protect.defs
577install-excserver_protect: ;
578
579EXCLUDED_SOURCES += exc_helpers.c
580
581CUSTOM_TARGETS += notifyserver
582
583notifyserver:
584	$(MIG) $(CFLAGS) \
585		-DMACH_NOTIFY_SERVICE_PORT_DESTROYED_EXPECTED \
586		-user /dev/null \
587		-header $(OBJROOT)/notify.h \
588		-sheader $(OBJROOT)/notifyServer.h \
589		-server $(OBJROOT)/notifyServer.c \
590		notifyserver.defs
591install-notifyserver: ;
592
593CUSTOM_TARGETS += rnserver
594
595rnserver:
596	$(MIG) $(CFLAGS) \
597		-user /dev/null \
598		-header $(OBJROOT)/rn.h \
599		-sheader $(OBJROOT)/rnServer.h \
600		-server $(OBJROOT)/rnServer.c \
601		rnserver.defs
602install-rnserver: ;
603
604
605x18: OTHER_CFLAGS += -Wno-language-extension-token
606
607pmap_bench: INVALID_ARCHS = $(filter-out arm%,$(ARCH_CONFIGS))
608
609hw_breakpoint_step_arm64: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
610hw_breakpoint_step_arm64: INVALID_ARCHS = $(filter-out arm64%,$(ARCH_CONFIGS))
611hw_breakpoint_step_arm64: excserver
612hw_breakpoint_step_arm64: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
613
614exc_resource_threads: excserver
615exc_resource_threads: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
616
617mach_service_port: notifyserver
618mach_service_port: OTHER_CFLAGS += $(OBJROOT)/notifyServer.c -I $(OBJROOT)
619
620fp_exception: excserver exc_helpers.c
621fp_exception: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
622
623ptrauth_failure: excserver exc_helpers.c
624ptrauth_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT) -Wno-language-extension-token
625ptrauth_failure: CODESIGN = $(CODESIGN_HARDENED_RUNTIME)
626
627decompression_failure: excserver exc_helpers.c
628decompression_failure: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
629
630ipc/kernel_signed_pac_thread_state: excserver
631ipc/kernel_signed_pac_thread_state: OTHER_CFLAGS += $(OBJROOT)/excserver.c -I $(OBJROOT)
632ipc/kernel_signed_pac_thread_state: CODE_SIGN_ENTITLEMENTS = ipc/pac_exception_entitlement.plist
633
634ifeq ($(findstring arm64,$(ARCH_CONFIGS)),)
635EXCLUDED_SOURCES += arm_cpu_capabilities.c
636else
637arm_cpu_capabilities: INVALID_ARCHS = armv7k x86_64
638arm_cpu_capabilities: excserver exc_helpers.c
639arm_cpu_capabilities: OTHER_CFLAGS += $(OBJROOT)/excserver.c -Wno-language-extension-token -mcpu=apple-a15
640endif
641
642ifeq ($(findstring x86_64,$(ARCH_CONFIGS)),)
643EXCLUDED_SOURCES += ldt_code32.s ldt.c
644else # target = osx
645$(OBJROOT)/ldt_mach_exc_server.c:
646	$(MIG) $(CFLAGS) \
647		-user /dev/null \
648		-server $(OBJROOT)/ldt_mach_exc_server.c \
649		-header $(OBJROOT)/ldt_mach_exc.h \
650		mach_exc.defs
651
652ldt: INVALID_ARCHS = $(ARCH_CONFIGS)
653ldt: $(OBJROOT)/ldt_mach_exc_server.c
654ldt: OTHER_CFLAGS += -arch x86_64 -I $(OBJROOT) $(SRCROOT)/ldt_code32.s -Wl,-pagezero_size,0x1000 -Wno-missing-variable-declarations
655ldt: CODE_SIGN_ENTITLEMENTS=ldt_entitlement.plist
656endif
657
658ifneq ($(PLATFORM),BridgeOS)
659EXCLUDED_SOURCES += remote_time.c
660else
661remote_time: INVALID_ARCHS = armv7 armv7s arm64_32
662endif
663
664vm_phys_footprint: OTHER_LDFLAGS += -framework CoreFoundation -framework IOSurface
665
666vm_kern_count_wired_kernelcache: OTHER_CFLAGS += -I$(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders/mach
667
668debug_control_port_for_pid: CODE_SIGN_ENTITLEMENTS = ./debug_control_port_for_pid_entitlement.plist
669
670prng: OTHER_LDFLAGS += -ldarwintest_utils
671
672preoslog: OTHER_LDFLAGS += -ldarwintest_utils
673preoslog: OTHER_CFLAGS += test_utils.c
674
675task_policy: CODE_SIGN_ENTITLEMENTS = ./task_policy_entitlement.plist
676
677OTHER_TEST_TARGETS += task_policy_unentitled
678task_policy_unentitled: CODE_SIGN_ENTITLEMENTS = task_for_pid_entitlement.plist
679task_policy_unentitled: OTHER_CFLAGS += -DUNENTITLED
680task_policy_unentitled: task_policy.c
681	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
682	$(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@
683
684
685port_object_description_race_77259918: OTHER_CFLAGS += -framework IOKit -framework CoreFoundation
686port_object_description_race_77259918: iokit/port_object_description_race_77259918.c
687	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
688OTHER_TEST_TARGETS += port_object_description_race_77259918
689
690EXCLUDED_SOURCES += get_shared_cache_address.c
691ifneq ($(filter iPhoneOS MacOSX, $(PLATFORM)),)
692CUSTOM_TARGETS += get_shared_cache_address
693get_shared_cache_address: INVALID_ARCHS = arm64 i386 x86_64
694get_shared_cache_address: get_shared_cache_address.c
695	$(CC) $(OTHER_CFLAGS) $(CFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/get_shared_cache_address
696
697install-get_shared_cache_address: get_shared_cache_address
698	$(CODESIGN) --force --sign - --timestamp=none --identifier=com.apple.get_shared_cache_address $(SYMROOT)/get_shared_cache_address
699	mkdir -p $(INSTALLDIR)
700	cp $(SYMROOT)/get_shared_cache_address $(INSTALLDIR)/
701endif
702
703ifneq ($(PLATFORM),MacOSX)
704EXCLUDED_SOURCES += hvtest_x86.m hvtest_x86_guest.c hvtest_x86_asm.s
705else
706EXCLUDED_SOURCES += hvtest_x86_guest.c hvtest_x86_asm.s
707hvtest_x86: CODE_SIGN_ENTITLEMENTS = hv_public.entitlements
708hvtest_x86: INVALID_ARCHS += arm64e arm64 i386
709hvtest_x86: OTHER_CFLAGS += hvtest_x86_guest.c hvtest_x86_asm.s -framework Hypervisor -framework Foundation
710endif
711
712OTHER_TEST_TARGETS += io_catalog_send_data vm_memory_share_tests
713
714vm_memory_share_tests: INVALID_ARCHS = i386
715vm_memory_share_tests: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
716vm_memory_share_tests: vm_memory_tests_src/main.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
717	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
718	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
719	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
720
721# build the mach server as individual helper which does not use libdarwintest
722CUSTOM_TARGETS += vm_memory_share_tests_server
723vm_memory_share_tests_server: CODE_SIGN_ENTITLEMENTS = ./task_for_pid_entitlement.plist
724vm_memory_share_tests_server: vm_memory_tests_src/server.c vm_memory_tests_src/common.c vm_memory_tests_src/vm_tests.c
725	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/vm_memory_share_tests_server
726	echo $(CODESIGN) --force --sign - --timestamp=none --entitlements $(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
727	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements "$(SRCROOT)/$(CODE_SIGN_ENTITLEMENTS)" $(SYMROOT)/$@;
728
729install-vm_memory_share_tests_server: vm_memory_share_tests_server
730	mkdir -p $(INSTALLDIR)
731	cp $(SYMROOT)/vm_memory_share_tests_server $(INSTALLDIR)/
732
733io_catalog_send_data: INVALID_ARCHS = i386
734io_catalog_send_data: OTHER_CFLAGS += -DTEST_UNENTITLED -framework IOKit -framework CoreFoundation -framework Foundation
735
736io_catalog_send_data: iokit/io_catalog_send_data.m
737	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
738
739ifeq ($(PLATFORM),MacOSX)
740EXCLUDED_SOURCES += vm/kern_max_task_pmem.c
741endif
742
743EXCLUDED_SOURCES += benchmark/helpers.c
744
745perf_vmfault: OTHER_CFLAGS += benchmark/helpers.c
746
747fault_throughput: vm/fault_throughput.c
748	mkdir -p $(SYMROOT)/vm
749	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
750fault_throughput: OTHER_CFLAGS += benchmark/helpers.c
751
752install-fault_throughput: fault_throughput
753	mkdir -p $(INSTALLDIR)/vm
754	cp $(SYMROOT)/vm/fault_throughput $(INSTALLDIR)/vm/
755
756BATS_PLISTS += $(SRCROOT)/vm/fault_throughput.plist
757
758ifeq ($(PLATFORM),MacOSX)
759mixed_pagesize: vm/mixed_pagesize.c
760	mkdir -p $(SYMROOT)/vm
761	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
762
763install-mixed_pagesize: mixed_pagesize
764	mkdir -p $(INSTALLDIR)/vm
765	cp $(SYMROOT)/vm/mixed_pagesize $(INSTALLDIR)/vm/
766
767BATS_PLISTS += $(SRCROOT)/vm/mixed_pagesize.plist
768
769EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
770CUSTOM_TARGETS += mixed_pagesize
771else
772EXCLUDED_SOURCES += vm/mixed_pagesize.c vm/mixed_pagesize.plist
773endif
774
775manual_wq_cooperative: manual_wq_cooperative.c
776	mkdir -p $(SYMROOT)
777	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
778
779install-manual_wq_cooperative: manual_wq_cooperative
780	mkdir -p $(INSTALLDIR)
781	cp $(SYMROOT)/manual_wq_cooperative $(INSTALLDIR)
782
783BATS_PLISTS += $(SRCROOT)/workqueue.plist
784EXCLUDED_SOURCES += manual_wq_cooperative.c workqueue.plist
785CUSTOM_TARGETS += manual_wq_cooperative
786
787fault_throughput_benchrun:
788	mkdir -p $(SYMROOT)/vm
789	cp $(SRCROOT)/vm/fault_throughput.lua $(SYMROOT)/vm/fault_throughput.lua
790	chmod +x $(SYMROOT)/vm/fault_throughput.lua
791
792install-fault_throughput_benchrun: fault_throughput_benchrun
793	mkdir -p $(INSTALLDIR)/vm
794	cp $(SYMROOT)/vm/fault_throughput.lua $(INSTALLDIR)/vm
795	chmod +x $(INSTALLDIR)/vm/fault_throughput.lua
796
797CUSTOM_TARGETS += fault_throughput fault_throughput_benchrun
798EXCLUDED_SOURCES += vm/fault_throughput.plist vm/fault_throughput.c
799
800perf_madvise: vm/perf_madvise.c
801	mkdir -p $(SYMROOT)/vm
802	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/vm/$@
803perf_madvise: OTHER_CFLAGS += benchmark/helpers.c
804install-perf_madvise: perf_madvise
805	mkdir -p $(INSTALLDIR)/vm
806	cp $(SYMROOT)/vm/perf_madvise $(INSTALLDIR)/vm/
807perf_madvise_benchrun:
808	mkdir -p $(SYMROOT)/vm
809	cp $(SRCROOT)/vm/perf_madvise.lua $(SYMROOT)/vm/perf_madvise.lua
810	chmod +x $(SYMROOT)/vm/perf_madvise.lua
811install-perf_madvise_benchrun: perf_madvise_benchrun
812	mkdir -p $(INSTALLDIR)/vm
813	cp $(SYMROOT)/vm/perf_madvise.lua $(INSTALLDIR)/vm
814	chmod +x $(INSTALLDIR)/vm/perf_madvise.lua
815
816CUSTOM_TARGETS += perf_madvise perf_madvise_benchrun
817EXCLUDED_SOURCES += vm/perf_madvise.c
818
819ioconnectasyncmethod_57641955: OTHER_LDFLAGS += -framework IOKit
820
821ifeq ($(PLATFORM),BridgeOS)
822EXCLUDED_SOURCES += ipsec.m
823else
824ipsec: OTHER_LDFLAGS += -framework Foundation -framework CoreFoundation -framework NetworkExtension
825ipsec: CODE_SIGN_ENTITLEMENTS = ipsec.entitlements
826endif
827
828test_sysctl_kern_procargs_25397314: OTHER_LDFLAGS += -framework Foundation -ldarwintest_utils
829
830INCLUDED_TEST_SOURCE_DIRS += counter
831
832EXCLUDED_SOURCES += counter/common.c
833counter/counter: OTHER_CFLAGS += counter/common.c test_utils.c
834counter/counter: OTHER_LDFLAGS += -ldarwintest_utils -ldarwintest
835
836counter/benchmark: counter/benchmark.c
837	mkdir -p $(SYMROOT)/counter
838	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
839	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
840
841counter/benchmark: OTHER_CFLAGS += counter/common.c benchmark/helpers.c
842
843install-counter/benchmark: counter/benchmark
844	mkdir -p $(INSTALLDIR)/counter
845	cp $(SYMROOT)/counter/benchmark $(INSTALLDIR)/counter/
846
847counter/benchmark_benchrun:
848	mkdir -p $(SYMROOT)/counter
849	cp $(SRCROOT)/counter/benchmark.lua $(SYMROOT)/counter/benchmark.lua
850	chmod +x $(SYMROOT)/counter/benchmark.lua
851
852install-counter/benchmark_benchrun: counter/benchmark_benchrun
853	mkdir -p $(INSTALLDIR)/counter
854	cp $(SYMROOT)/counter/benchmark.lua $(INSTALLDIR)/counter/
855	chmod +x $(INSTALLDIR)/counter/benchmark.lua
856
857CUSTOM_TARGETS += counter/benchmark counter/benchmark_benchrun
858EXCLUDED_SOURCES += counter/benchmark.c
859
860ifneq ($(PLATFORM),MacOSX)
861EXCLUDED_SOURCES += vm/page_size_globals.c
862else
863vm/page_size_globals: INVALID_ARCHS = arm64 arm64e
864endif
865
866# Same helper used in execperf, different build system.
867static_binary: ../tools/tests/execperf/exit-asm.S
868	$(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
869	CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/static_binary
870
871install-static_binary: static_binary
872	mkdir -p $(INSTALLDIR)
873	cp $(SYMROOT)/static_binary $(INSTALLDIR)
874
875CUSTOM_TARGETS += static_binary
876EXCLUDED_SOURCES += static_binary.c
877
878test_static_binary_csflags: static_binary
879test_static_binary_csflags: OTHER_LDFLAGS += -ldarwintest_utils
880
881
882trial_experiments: CODE_SIGN_ENTITLEMENTS = trial_experiments.entitlements
883trial_experiments: OTHER_CFLAGS += -DENTITLED=1
884trial_experiments: OTHER_LDFLAGS += -ldarwintest_utils
885trial_experiments: trial_experiments.c drop_priv.c test_utils.c
886	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $^ -o $(SYMROOT)/$@
887	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements $(CODE_SIGN_ENTITLEMENTS) $(SYMROOT)/$@;
888
889trial_experiments_unentitled: OTHER_CFLAGS += drop_priv.c test_utils.c
890trial_experiments_unentitled: trial_experiments.c
891	$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) $< -o $(SYMROOT)/$@
892	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
893
894CUSTOM_TARGETS += print_apple_array
895print_apple_array: print_apple_array.c
896	$(CC) $(DT_CFLAGS) -I $(OBJROOT) $(CFLAGS) $(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) print_apple_array.c -o $(SYMROOT)/print_apple_array
897	env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/$@;
898
899install-print_apple_array: print_apple_array
900	mkdir -p $(INSTALLDIR)/tools
901	cp $(SYMROOT)/print_apple_array $(INSTALLDIR)/tools/
902
903OTHER_TEST_TARGETS += trial_experiments trial_experiments_unentitled
904
905entropy: OTHER_CFLAGS += -framework perfdata
906
907zero_to_n_tests: OTHER_LDFLAGS += -ldarwintest_utils
908
909include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.targets
910
911