xref: /linux/kernel/sched/Makefile (revision 04e49d926f438134b6453505aa206e70f8cf4cb1)
1# SPDX-License-Identifier: GPL-2.0
2
3CONTEXT_ANALYSIS_core.o := y
4CONTEXT_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.
8ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
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.
12KCOV_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.
16KCSAN_SANITIZE := n
17KCSAN_INSTRUMENT_BARRIERS := y
18
19ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
20# According to Alan Modra <alan@linuxcare.com.au>, 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
25CFLAGS_core.o := $(PROFILING) -fno-omit-frame-pointer
26endif
27
28# Branch profiling isn't noinstr-safe
29ifdef CONFIG_TRACE_BRANCH_PROFILING
30CFLAGS_build_policy.o += -DDISABLE_BRANCH_PROFILING
31CFLAGS_build_utility.o += -DDISABLE_BRANCH_PROFILING
32endif
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#
39obj-y += core.o
40obj-y += fair.o
41obj-y += build_policy.o
42obj-y += build_utility.o
43