| 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | |
| 3 | CONTEXT_ANALYSIS_core.o := y |
| 4 | CONTEXT_ANALYSIS_fair.o := y |
| 5 | |
| 6 | # The compilers are complaining about unused variables inside an if(0) scope |
| 7 | # block. This is daft, shut them up. |
| 8 | ccflags-y += ) |
| 9 | |
| 10 | # These files are disabled because they produce non-interesting flaky coverage |
| 11 | # that is not a function of syscall inputs. E.g. involuntary context switches. |
| 12 | KCOV_INSTRUMENT := n |
| 13 | |
| 14 | # Disable KCSAN to avoid excessive noise and performance degradation. To avoid |
| 15 | # false positives ensure barriers implied by sched functions are instrumented. |
| 16 | KCSAN_SANITIZE := n |
| 17 | KCSAN_INSTRUMENT_BARRIERS := y |
| 18 | |
| 19 | |
| 20 | # According to Alan Modra <[email protected]>, the -fno-omit-frame-pointer is |
| 21 | # needed for x86 only. Why this used to be enabled for all architectures is beyond |
| 22 | # me. I suspect most platforms don't need this, but until we know that for sure |
| 23 | # I turn this off for IA-64 only. Andreas Schwab says it's also needed on m68k |
| 24 | # to get a correct value for the wait-channel (WCHAN in ps). --davidm |
| 25 | CFLAGS_core.o := $(PROFILING) -fno-omit-frame-pointer |
| 26 | endif |
| 27 | |
| 28 | # Branch profiling isn't noinstr-safe |
| 29 | |
| 30 | CFLAGS_build_policy.o += -DDISABLE_BRANCH_PROFILING |
| 31 | CFLAGS_build_utility.o += -DDISABLE_BRANCH_PROFILING |
| 32 | endif |
| 33 | # |
| 34 | # Build efficiency: |
| 35 | # |
| 36 | # These compilation units have roughly the same size and complexity - so their |
| 37 | # build parallelizes well and finishes roughly at once: |
| 38 | # |
| 39 | obj-y += core.o |
| 40 | obj-y += fair.o |
| 41 | obj-y += build_policy.o |
| 42 | obj-y += build_utility.o |