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