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