1# 2# Mach Operating System 3# Copyright (c) 1986 Carnegie-Mellon University 4# All rights reserved. The CMU software License Agreement specifies 5# the terms and conditions for use and redistribution. 6# 7 8export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd 9export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def 10export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule 11export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir 12 13include $(MakeInc_cmd) 14include $(MakeInc_def) 15 16# 17# XXX: CFLAGS 18# 19CFLAGS+= -include meta_features.h -DMACH_KERNEL_PRIVATE -DMACH_KERNEL 20SFLAGS+= -include meta_features.h 21 22ifeq ($(KSANCOV),1) 23# Don't instrument functions called by the ksancov runtime. SanitizeCoverage does 24# not support denylists, so exclude the whole file. 25machine_routines.o_CFLAGS_RM = $(KCOV_CFLAGS) 26machine_routines_common.o_CFLAGS_RM = $(KCOV_CFLAGS) 27pcb_native.o_CFLAGS_RM = $(KCOV_CFLAGS) 28endif 29 30# 31# XXX: INCFLAGS to include libsa prototypes 32# 33INCFLAGS_MAKEFILE= -I$(SOURCE)libsa 34 35# 36# Directories for generated files 37# 38COMP_SUBDIRS = \ 39 atm \ 40 default_pager \ 41 device \ 42 kern \ 43 mach \ 44 UserNotification \ 45 gssd \ 46 kextd \ 47 lockd 48 49# 50# Make sure we don't remove this by accident if interrupted at the wrong 51# time. 52# 53.PRECIOUS: Makefile 54 55# 56# Theses macros are filled in by the config program depending on the 57# current configuration. The MACHDEP macro is replaced by the 58# contents of the machine dependent makefile template and the others 59# are replaced by the corresponding symbol definitions for the 60# configuration. 61# 62 63%OBJS 64 65%LIBOBJS 66 67%CFILES 68 69%CXXFILES 70 71%SFILES 72 73%MACHDEP 74 75# Ease debuggability of VM test code as much as possible. 76vm_tests.o_CFLAGS_ADD += -g 77 78# 79# vm_sanitize/vm_sanitize_error_compat use the UBSan verifier to detect 80# potential undefined behavior at compile time. The verifier inspects the 81# compiled object files to detect calls to the UBSan minimal runtime. 82# 83# False positives are possible if checks are generated where UB is not actually 84# possible. If possible, code should be re-architected to allow the compiler 85# to optimize out the checks; if not __attribute__((nosanitize)) can be used. 86# 87# As of the time of writing, we enable all checks except the following: 88# `alignment` since it generates checks for calls to os_xyz_overflow() 89# `bool` since it generates checks most times bools are used 90# `function` since it generates checks for any non-trivial usage of function 91# pointers, and there is no way to do runtime type checking to eliminate 92# these checks. 93# `null` since it generates NULL checks on typically non-null arguments. 94# Marking these arguments using __attribute__(nonnull) may have an 95# undesired effect of optimizing out explicitly written NULL checks. 96# `unreachable` since it generates a check after each panic() 97# `obj-cast`,`return`,`vptr` since they are not relevant to C code 98# 99VM_UBSAN_CHECKS = bounds, builtin, enum, float-cast-overflow, \ 100 float-divide-by-zero, implicit-signed-integer-truncation, \ 101 implicit-unsigned-integer-truncation, integer-divide-by-zero, \ 102 nonnull-attribute, nullability-arg, nullability-assign, nullability-return, \ 103 object-size, pointer-overflow, returns-nonnull-attribute, shift, \ 104 signed-integer-overflow, unsigned-integer-overflow, unsigned-shift-base, \ 105 vla-bound 106VM_UBSAN_FLAGS = -fsanitize=$(subst ${} ${},,${VM_UBSAN_CHECKS}) 107 108# 109# KASAN and coverage configurations have different code generation than customer 110# release kernels, and are not frequently built at desk like development kernels. 111# Build-time UBSan "violations" that affect only these kernels are likely to be 112# false positives and have no real-world security impact regardless. 113# 114ifeq ($(KASAN),1) 115# UBSan build-time validations disabled on KASAN builds 116else ifeq ($(BUILD_CODE_COVERAGE),1) 117# UBSan build-time validations disabled on code coverage builds 118else 119 vm_sanitize.o_CFLAGS_ADD += ${VM_UBSAN_FLAGS} 120 vm_sanitize.o_VERIFIER = VERIFIER_NO_UBSAN_CHECKS 121 vm_sanitize_error_compat.o_CFLAGS_ADD += ${VM_UBSAN_FLAGS} 122 vm_sanitize_error_compat.o_VERIFIER = VERIFIER_NO_UBSAN_CHECKS 123endif 124 125cccbc.o_INCFLAGS += -I${SRCROOT}/EXTERNAL_HEADERS/corecrypto 126ccdrbg.o_INCFLAGS += -I${SRCROOT}/EXTERNAL_HEADERS/corecrypto 127ccgcm.o_INCFLAGS += -I${SRCROOT}/EXTERNAL_HEADERS/corecrypto 128ccmode_gcm_gf_mult.o_INCFLAGS += -I${SRCROOT}/EXTERNAL_HEADERS/corecrypto 129ccmode_gcm_mult_h.o_INCFLAGS += -I${SRCROOT}/EXTERNAL_HEADERS/corecrypto 130 131# 132# Enforce semantic types 133# 134 135SEMANTIC_TYPES_SRC = $(notdir $(wildcard ${SRCROOT}/osfmk/vm/*.c)) 136SEMANTIC_TYPES_OBJ = $(SEMANTIC_TYPES_SRC:.c=.o) 137 138define FORCE_UNSAFE_TYPES 139$1_CFLAGS_ADD += -DVM_UNSAFE_TYPES 140endef 141 142$(foreach file,$(SEMANTIC_TYPES_OBJ),$(eval $(call FORCE_UNSAFE_TYPES, $(file)))) 143 144# 145# Diagnostic opt-outs. We need to make this list empty. 146# 147# DO NOT ADD MORE HERE. 148# 149# -Wno-format-nonliteral 150ktest_emit.o_CWARNFLAGS_ADD += -Wno-format-nonliteral 151# -Wno-atomic-implicit-seq-cst 152mp.o_CWARNFLAGS_ADD += -Wno-atomic-implicit-seq-cst 153pmCPU.o_CWARNFLAGS_ADD += -Wno-atomic-implicit-seq-cst 154pmap_pcid.o_CWARNFLAGS_ADD += -Wno-atomic-implicit-seq-cst 155xcpm_dvfs.o_CWARNFLAGS_ADD += -Wno-atomic-implicit-seq-cst 156xcpm_fi.o_CWARNFLAGS_ADD += -Wno-atomic-implicit-seq-cst 157xcpm_idle.o_CWARNFLAGS_ADD += -Wno-atomic-implicit-seq-cst 158# -Wno-cast-align 159bsd_i386.o_CWARNFLAGS_ADD += -Wno-cast-align 160ccdigest_final_64be.o_CWARNFLAGS_ADD += -Wno-cast-align 161ccsha512_ltc_compress.o_CWARNFLAGS_ADD += -Wno-cast-align 162ccdigest_init.o_CWARNFLAGS_ADD += -Wno-cast-align 163ccdigest_update.o_CWARNFLAGS_ADD += -Wno-cast-align 164cchmac_final.o_CWARNFLAGS_ADD += -Wno-cast-align 165cchmac_init.o_CWARNFLAGS_ADD += -Wno-cast-align 166ccmode_gcm_gf_mult.o_CWARNFLAGS_ADD += -Wno-cast-align 167ccmode_gcm_mult_h.o_CWARNFLAGS_ADD += -Wno-cast-align 168commpage.o_CWARNFLAGS_ADD += -Wno-cast-align 169cpu_threads.o_CWARNFLAGS_ADD += -Wno-cast-align 170host.o_CWARNFLAGS_ADD += -Wno-cast-align 171kdp_machdep.o_CWARNFLAGS_ADD += -Wno-cast-align 172kdp_udp.o_CWARNFLAGS_ADD += -Wno-cast-align 173kdp_x86_common.o_CWARNFLAGS_ADD += -Wno-cast-align 174locks_i386.o_CWARNFLAGS_ADD += -Wno-cast-align 175machine_task.o_CWARNFLAGS_ADD += -Wno-cast-align 176model_dep.o_CWARNFLAGS_ADD += -Wno-cast-align 177mp_desc.o_CWARNFLAGS_ADD += -Wno-cast-align 178pcb.o_CWARNFLAGS_ADD += -Wno-cast-align 179pcb_native.o_CWARNFLAGS_ADD += -Wno-cast-align 180processor.o_CWARNFLAGS_ADD += -Wno-cast-align 181status.o_CWARNFLAGS_ADD += -Wno-cast-align 182task.o_CWARNFLAGS_ADD += -Wno-cast-align 183task_policy.o_CWARNFLAGS_ADD += -Wno-cast-align 184video_console.o_CWARNFLAGS_ADD += -Wno-cast-align 185# -Wno-implicit-int-conversion 186acpi.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 187commpage.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 188cpu.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 189cpu_threads.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 190kdebug_trigger.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 191kern_stackshot.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 192lapic_native.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 193loose_ends.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 194lz4.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 195model_dep.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 196mp.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 197mp_desc.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 198pcb.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 199pcb_native.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 200pmap_pcid.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 201pmap_x86_common.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 202sched_clutch.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 203trap.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 204uat.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 205video_console.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 206xcpm_dvfs.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 207xcpm_ioctl.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 208# -Wno-shorten-64-to-32 209arm_vm_init.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 210backtrace.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 211btlog.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 212caches.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 213callstack.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 214clock.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 215clock_oldops.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 216iokit_rpc.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 217ipc_kmsg.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 218ipc_pset.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 219ipc_right.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 220kdp_core.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 221kdp_vm.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 222kern_cdata.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 223kern_stackshot.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 224loose_ends.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 225mach_msg.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 226machine_routines.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 227mk_timer.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 228model_dep.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 229pcb.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 230pmap.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 231processor_core.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 232rtclock.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 233status.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 234telemetry.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 235vm_init.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 236vm_kern.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 237vm_object.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 238vm_shared_region_pager.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 239vm_dyld_pager.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 240vm_swapfile_pager.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 241vm_user.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 242# -Wno-sign-conversion 243Diagnostics.o_CWARNFLAGS_ADD += -Wno-sign-conversion 244acpi.o_CWARNFLAGS_ADD += -Wno-sign-conversion 245action.o_CWARNFLAGS_ADD += -Wno-sign-conversion 246affinity.o_CWARNFLAGS_ADD += -Wno-sign-conversion 247alternate_debugger.o_CWARNFLAGS_ADD += -Wno-sign-conversion 248arcade.o_CWARNFLAGS_ADD += -Wno-sign-conversion 249arm_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion 250arm_timer.o_CWARNFLAGS_ADD += -Wno-sign-conversion 251arm_vm_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion 252ast.o_CWARNFLAGS_ADD += -Wno-sign-conversion 253backtrace.o_CWARNFLAGS_ADD += -Wno-sign-conversion 254bank.o_CWARNFLAGS_ADD += -Wno-sign-conversion 255bitmap_test.o_CWARNFLAGS_ADD += -Wno-sign-conversion 256bsd_arm64.o_CWARNFLAGS_ADD += -Wno-sign-conversion 257bsd_i386.o_CWARNFLAGS_ADD += -Wno-sign-conversion 258bsd_i386_native.o_CWARNFLAGS_ADD += -Wno-sign-conversion 259bsd_kern.o_CWARNFLAGS_ADD += -Wno-sign-conversion 260bsd_vm.o_CWARNFLAGS_ADD += -Wno-sign-conversion 261btlog.o_CWARNFLAGS_ADD += -Wno-sign-conversion 262caches.o_CWARNFLAGS_ADD += -Wno-sign-conversion 263callstack.o_CWARNFLAGS_ADD += -Wno-sign-conversion 264ccdrbg_nisthmac.o_CWARNFLAGS_ADD += -Wno-sign-conversion 265cchmac.o_CWARNFLAGS_ADD += -Wno-sign-conversion 266cchmac_final.o_CWARNFLAGS_ADD += -Wno-sign-conversion 267cchmac_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion 268clock.o_CWARNFLAGS_ADD += -Wno-sign-conversion 269clock_oldops.o_CWARNFLAGS_ADD += -Wno-sign-conversion 270coalition.o_CWARNFLAGS_ADD += -Wno-sign-conversion 271commpage.o_CWARNFLAGS_ADD += -Wno-sign-conversion 272copyio.o_CWARNFLAGS_ADD += -Wno-sign-conversion 273corpse.o_CWARNFLAGS_ADD += -Wno-sign-conversion 274cpu.o_CWARNFLAGS_ADD += -Wno-sign-conversion 275cpu_common.o_CWARNFLAGS_ADD += -Wno-sign-conversion 276cpu_threads.o_CWARNFLAGS_ADD += -Wno-sign-conversion 277cpu_topology.o_CWARNFLAGS_ADD += -Wno-sign-conversion 278cpuid.o_CWARNFLAGS_ADD += -Wno-sign-conversion 279dbgwrap.o_CWARNFLAGS_ADD += -Wno-sign-conversion 280debug.o_CWARNFLAGS_ADD += -Wno-sign-conversion 281ecc_logging.o_CWARNFLAGS_ADD += -Wno-sign-conversion 282entropy.o_CWARNFLAGS_ADD += -Wno-sign-conversion 283exception.o_CWARNFLAGS_ADD += -Wno-sign-conversion 284fpu.o_CWARNFLAGS_ADD += -Wno-sign-conversion 285host.o_CWARNFLAGS_ADD += -Wno-sign-conversion 286host_notify.o_CWARNFLAGS_ADD += -Wno-sign-conversion 287hv.o_CWARNFLAGS_ADD += -Wno-sign-conversion 288i386_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion 289i386_timer.o_CWARNFLAGS_ADD += -Wno-sign-conversion 290i386_vm_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion 291iokit_rpc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 292ipc_eventlink.o_CWARNFLAGS_ADD += -Wno-sign-conversion 293ipc_host.o_CWARNFLAGS_ADD += -Wno-sign-conversion 294ipc_importance.o_CWARNFLAGS_ADD += -Wno-sign-conversion 295ipc_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion 296ipc_kmsg.o_CWARNFLAGS_ADD += -Wno-sign-conversion 297ipc_kobject.o_CWARNFLAGS_ADD += -Wno-sign-conversion 298ipc_mqueue.o_CWARNFLAGS_ADD += -Wno-sign-conversion 299ipc_object.o_CWARNFLAGS_ADD += -Wno-sign-conversion 300ipc_port.o_CWARNFLAGS_ADD += -Wno-sign-conversion 301ipc_pset.o_CWARNFLAGS_ADD += -Wno-sign-conversion 302ipc_right.o_CWARNFLAGS_ADD += -Wno-sign-conversion 303ipc_space.o_CWARNFLAGS_ADD += -Wno-sign-conversion 304ipc_tt.o_CWARNFLAGS_ADD += -Wno-sign-conversion 305ipc_voucher.o_CWARNFLAGS_ADD += -Wno-sign-conversion 306kalloc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 307kdp.o_CWARNFLAGS_ADD += -Wno-sign-conversion 308kdp_core.o_CWARNFLAGS_ADD += -Wno-sign-conversion 309kdp_machdep.o_CWARNFLAGS_ADD += -Wno-sign-conversion 310kdp_serial.o_CWARNFLAGS_ADD += -Wno-sign-conversion 311kdp_vm.o_CWARNFLAGS_ADD += -Wno-sign-conversion 312kern_monotonic.o_CWARNFLAGS_ADD += -Wno-sign-conversion 313kern_stackshot.o_CWARNFLAGS_ADD += -Wno-sign-conversion 314kernel_tests.o_CWARNFLAGS_ADD += -Wno-sign-conversion 315kext_alloc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 316kpc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 317kpc_arm.o_CWARNFLAGS_ADD += -Wno-sign-conversion 318kpc_common.o_CWARNFLAGS_ADD += -Wno-sign-conversion 319kpc_x86.o_CWARNFLAGS_ADD += -Wno-sign-conversion 320kperf.o_CWARNFLAGS_ADD += -Wno-sign-conversion 321kperf_kpc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 322kperf_mp.o_CWARNFLAGS_ADD += -Wno-sign-conversion 323kperf_timer.o_CWARNFLAGS_ADD += -Wno-sign-conversion 324kperfbsd.o_CWARNFLAGS_ADD += -Wno-sign-conversion 325ktest_emit.o_CWARNFLAGS_ADD += -Wno-sign-conversion 326lapic_native.o_CWARNFLAGS_ADD += -Wno-sign-conversion 327lazy.o_CWARNFLAGS_ADD += -Wno-sign-conversion 328ledger.o_CWARNFLAGS_ADD += -Wno-sign-conversion 329lockdown_mode.o_CWARNFLAGS_ADD += -Wno-sign-conversion 330locks.o_CWARNFLAGS_ADD += -Wno-sign-conversion 331locks_arm.o_CWARNFLAGS_ADD += -Wno-sign-conversion 332locks_i386.o_CWARNFLAGS_ADD += -Wno-sign-conversion 333locks_i386_opt.o_CWARNFLAGS_ADD += -Wno-sign-conversion 334loose_ends.o_CWARNFLAGS_ADD += -Wno-sign-conversion 335lowmem_vectors.o_CWARNFLAGS_ADD += -Wno-sign-conversion 336lz4.o_CWARNFLAGS_ADD += -Wno-sign-conversion 337mach_debug.o_CWARNFLAGS_ADD += -Wno-sign-conversion 338mach_kernelrpc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 339mach_port.o_CWARNFLAGS_ADD += -Wno-sign-conversion 340machdep_call.o_CWARNFLAGS_ADD += -Wno-sign-conversion 341machine.o_CWARNFLAGS_ADD += -Wno-sign-conversion 342machine_check.o_CWARNFLAGS_ADD += -Wno-sign-conversion 343machine_remote_time.o_CWARNFLAGS_ADD += -Wno-sign-conversion 344machine_routines.o_CWARNFLAGS_ADD += -Wno-sign-conversion 345machine_routines_common.o_CWARNFLAGS_ADD += -Wno-sign-conversion 346machine_task.o_CWARNFLAGS_ADD += -Wno-sign-conversion 347meminfo.o_CWARNFLAGS_ADD += -Wno-sign-conversion 348memory_object.o_CWARNFLAGS_ADD += -Wno-sign-conversion 349mk_sp.o_CWARNFLAGS_ADD += -Wno-sign-conversion 350mk_timer.o_CWARNFLAGS_ADD += -Wno-sign-conversion 351model_dep.o_CWARNFLAGS_ADD += -Wno-sign-conversion 352monotonic_arm64.o_CWARNFLAGS_ADD += -Wno-sign-conversion 353monotonic_x86_64.o_CWARNFLAGS_ADD += -Wno-sign-conversion 354mp.o_CWARNFLAGS_ADD += -Wno-sign-conversion 355mp_desc.o_CWARNFLAGS_ADD += -Wno-sign-conversion 356mp_native.o_CWARNFLAGS_ADD += -Wno-sign-conversion 357mpsc_queue.o_CWARNFLAGS_ADD += -Wno-sign-conversion 358mtrr.o_CWARNFLAGS_ADD += -Wno-sign-conversion 359pal_routines.o_CWARNFLAGS_ADD += -Wno-sign-conversion 360pcb.o_CWARNFLAGS_ADD += -Wno-sign-conversion 361pcb_native.o_CWARNFLAGS_ADD += -Wno-sign-conversion 362pet.o_CWARNFLAGS_ADD += -Wno-sign-conversion 363platform_tests.o_CWARNFLAGS_ADD += -Wno-sign-conversion 364pmCPU.o_CWARNFLAGS_ADD += -Wno-sign-conversion 365pmap.o_CWARNFLAGS_ADD += -Wno-sign-conversion 366pmap_common.o_CWARNFLAGS_ADD += -Wno-sign-conversion 367pmap_pcid.o_CWARNFLAGS_ADD += -Wno-sign-conversion 368pmap_tests.o_CWARNFLAGS_ADD += -Wno-sign-conversion 369pmap_x86_common.o_CWARNFLAGS_ADD += -Wno-sign-conversion 370printf.o_CWARNFLAGS_ADD += -Wno-sign-conversion 371priority.o_CWARNFLAGS_ADD += -Wno-sign-conversion 372prng_random.o_CWARNFLAGS_ADD += -Wno-sign-conversion 373processor.o_CWARNFLAGS_ADD += -Wno-sign-conversion 374remote_time.o_CWARNFLAGS_ADD += -Wno-sign-conversion 375rtclock.o_CWARNFLAGS_ADD += -Wno-sign-conversion 376sart.o_CWARNFLAGS_ADD += -Wno-sign-conversion 377sched_amp.o_CWARNFLAGS_ADD += -Wno-sign-conversion 378sched_amp_common.o_CWARNFLAGS_ADD += -Wno-sign-conversion 379sched_average.o_CWARNFLAGS_ADD += -Wno-sign-conversion 380sched_clutch.o_CWARNFLAGS_ADD += -Wno-sign-conversion 381sched_dualq.o_CWARNFLAGS_ADD += -Wno-sign-conversion 382sched_prim.o_CWARNFLAGS_ADD += -Wno-sign-conversion 383serial_console.o_CWARNFLAGS_ADD += -Wno-sign-conversion 384serial_general.o_CWARNFLAGS_ADD += -Wno-sign-conversion 385sfi.o_CWARNFLAGS_ADD += -Wno-sign-conversion 386shart.o_CWARNFLAGS_ADD += -Wno-sign-conversion 387sleh.o_CWARNFLAGS_ADD += -Wno-sign-conversion 388stack.o_CWARNFLAGS_ADD += -Wno-sign-conversion 389startup.o_CWARNFLAGS_ADD += -Wno-sign-conversion 390status.o_CWARNFLAGS_ADD += -Wno-sign-conversion 391status_shared.o_CWARNFLAGS_ADD += -Wno-sign-conversion 392subrs.o_CWARNFLAGS_ADD += -Wno-sign-conversion 393sync_sema.o_CWARNFLAGS_ADD += -Wno-sign-conversion 394syscall_subr.o_CWARNFLAGS_ADD += -Wno-sign-conversion 395t8020dart.o_CWARNFLAGS_ADD += -Wno-sign-conversion 396task.o_CWARNFLAGS_ADD += -Wno-sign-conversion 397task_policy.o_CWARNFLAGS_ADD += -Wno-sign-conversion 398telemetry.o_CWARNFLAGS_ADD += -Wno-sign-conversion 399test_lock.o_CWARNFLAGS_ADD += -Wno-sign-conversion 400test_thread_call.o_CWARNFLAGS_ADD += -Wno-sign-conversion 401thread_call.o_CWARNFLAGS_ADD += -Wno-sign-conversion 402thread_group.o_CWARNFLAGS_ADD += -Wno-sign-conversion 403thread_policy.o_CWARNFLAGS_ADD += -Wno-sign-conversion 404timer_call.o_CWARNFLAGS_ADD += -Wno-sign-conversion 405trap.o_CWARNFLAGS_ADD += -Wno-sign-conversion 406trustcache.o_CWARNFLAGS_ADD += -Wno-sign-conversion 407turnstile.o_CWARNFLAGS_ADD += -Wno-sign-conversion 408uat.o_CWARNFLAGS_ADD += -Wno-sign-conversion 409ucode.o_CWARNFLAGS_ADD += -Wno-sign-conversion 410ux_handler.o_CWARNFLAGS_ADD += -Wno-sign-conversion 411vfp_state_test.o_CWARNFLAGS_ADD += -Wno-sign-conversion 412video_console.o_CWARNFLAGS_ADD += -Wno-sign-conversion 413video_scroll.o_CWARNFLAGS_ADD += -Wno-sign-conversion 414vm32_user.o_CWARNFLAGS_ADD += -Wno-sign-conversion 415vm_compressor.o_CWARNFLAGS_ADD += -Wno-sign-conversion 416vm_compressor_algorithms.o_CWARNFLAGS_ADD += -Wno-sign-conversion 417vm_compressor_backing_store.o_CWARNFLAGS_ADD += -Wno-sign-conversion 418vm_compressor_pager.o_CWARNFLAGS_ADD += -Wno-sign-conversion 419vm_fault.o_CWARNFLAGS_ADD += -Wno-sign-conversion 420vm_kern.o_CWARNFLAGS_ADD += -Wno-sign-conversion 421vm_map.o_CWARNFLAGS_ADD += -Wno-sign-conversion 422vm_map_store_ll.o_CWARNFLAGS_ADD += -Wno-sign-conversion 423vm_map_store_rb.o_CWARNFLAGS_ADD += -Wno-sign-conversion 424vm_object.o_CWARNFLAGS_ADD += -Wno-sign-conversion 425vm_pageout.o_CWARNFLAGS_ADD += -Wno-sign-conversion 426vm_phantom_cache.o_CWARNFLAGS_ADD += -Wno-sign-conversion 427vm_purgeable.o_CWARNFLAGS_ADD += -Wno-sign-conversion 428vm_resident.o_CWARNFLAGS_ADD += -Wno-sign-conversion 429vm_shared_region.o_CWARNFLAGS_ADD += -Wno-sign-conversion 430vm_user.o_CWARNFLAGS_ADD += -Wno-sign-conversion 431vmx_cpu.o_CWARNFLAGS_ADD += -Wno-sign-conversion 432waitq.o_CWARNFLAGS_ADD += -Wno-sign-conversion 433work_interval.o_CWARNFLAGS_ADD += -Wno-sign-conversion 434xcpm_dvfs.o_CWARNFLAGS_ADD += -Wno-sign-conversion 435xcpm_fi.o_CWARNFLAGS_ADD += -Wno-sign-conversion 436xcpm_idle.o_CWARNFLAGS_ADD += -Wno-sign-conversion 437xcpm_ioctl.o_CWARNFLAGS_ADD += -Wno-sign-conversion 438# -Wno-xnu-typed-allocators 439kalloc.o_CWARNFLAGS_ADD += -Wno-xnu-typed-allocators 440exclaves_conclave_launcher.tightbeam.o_CWARNFLAGS_ADD += -Wno-unused-parameter 441# -Wno-vla 442exclaves_boot.o_CWARNFLAGS_ADD += -Wno-vla 443exclaves_xnuproxy.o_CWARNFLAGS_ADD += -Wno-vla 444machine.o_CWARNFLAGS_ADD += -Wno-vla 445pmap.o_CWARNFLAGS_ADD += -Wno-vla 446ppl_hib.o_CWARNFLAGS_ADD += -Wno-vla 447processor_core.o_CWARNFLAGS_ADD += -Wno-vla 448sleh.o_CWARNFLAGS_ADD += -Wno-vla 449vm_reclaim.o_CWARNFLAGS_ADD += -Wno-vla 450# -Wno-enum-compare 451exclaves_memory.o_CWARNFLAGS_ADD += -Wno-enum-compare 452lock_mtx.o_CWARNFLAGS_ADD += -Wno-enum-compare 453pmap.o_CWARNFLAGS_ADD += -Wno-enum-compare 454 455# Rebuild if per-file overrides change 456${OBJS}: $(firstword $(MAKEFILE_LIST)) 457 458# Rebuild if global compile flags change 459$(COBJS): .CFLAGS 460.CFLAGS: ALWAYS 461 $(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS) 462$(CXXOBJS): .CXXFLAGS 463.CXXFLAGS: ALWAYS 464 $(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS) 465$(SOBJS): .SFLAGS 466.SFLAGS: ALWAYS 467 $(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS) 468 469$(COMPONENT).filelist: $(OBJS) 470 $(_v)for hib_file in ${HIB_FILES}; \ 471 do \ 472 $(SEG_HACK) -n __HIB -o $${hib_file}__ $${hib_file} || exit 1; \ 473 mv $${hib_file}__ $${hib_file} || exit 1; \ 474 done 475 @$(LOG_LDFILELIST) "$(COMPONENT)" 476 $(_v)for obj in ${OBJS}; do \ 477 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ 478 done > $(COMPONENT).filelist 479 480ifeq ($(XNU_LibAllFiles),1) 481LIBOBJS := $(OBJS) 482endif 483 484$(COMPONENT).libfilelist: $(LIBOBJS) 485 @$(LOG_LDFILELIST) "lib$(COMPONENT)" 486 $(_v)for obj in ${LIBOBJS}; do \ 487 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ 488 done > $(COMPONENT).libfilelist 489 490ifeq ($(RC_ProjectName),xnu_libraries) 491do_all: $(COMPONENT).libfilelist 492else 493do_all: $(COMPONENT).filelist 494endif 495 496do_build_all:: do_all 497 498# genassym.o actually is an assembly file, 499# we name it genassym.o to help with the automatic 500# dependency generation 501 502GENASSYM_LOCATION = $(CURRENT_ARCH_CONFIG_LC) 503 504ifeq ($(CURRENT_ARCH_CONFIG_LC),x86_64) 505GENASSYM_LOCATION = i386 506else ifeq ($(CURRENT_ARCH_CONFIG_LC),x86_64h) 507GENASSYM_LOCATION = i386 508endif 509 510-include genassym.d 511genassym.o: .CFLAGS $(firstword $(MAKEFILE_LIST)) 512genassym.o: $(SOURCE_DIR)/$(COMPONENT)/$(GENASSYM_LOCATION)/genassym.c 513 @$(LOG_GENASSYM) "$<" 514 $(_v)${GENASSYM_KCC} ${CFLAGS} ${CFLAGS_NOLTO_FLAG} -fno-integrated-as -MD -S -o ${@} ${INCFLAGS} $< 515 516assym.s: genassym.o 517 $(_v)sed -e '/^[[:space:]]*DEFINITION__define__/!d;{N;s/\n//;}' -e 's/^[[:space:]]*DEFINITION__define__\([^:]*\):.*ascii.*\"[\$$]*\([-0-9\#]*\)\".*$$/#define \1 \2/' -e 'p' -e 's/#//2' -e 's/^[[:space:]]*#define \([A-Za-z0-9_]*\)[[:space:]]*[\$$#]*\([-0-9]*\).*$$/#define \1_NUM \2/' genassym.o > $@ 518 519${SOBJS}: assym.s 520 521%RULES 522 523include $(MakeInc_rule) 524include $(MakeInc_dir) 525