hc
2024-05-10 61598093bbdd283a7edc367d900f223070ead8d2
kernel/kernel/Makefile
....@@ -5,13 +5,14 @@
55
66 obj-y = fork.o exec_domain.o panic.o \
77 cpu.o exit.o softirq.o resource.o \
8
- sysctl.o sysctl_binary.o capability.o ptrace.o user.o \
8
+ sysctl.o capability.o ptrace.o user.o \
99 signal.o sys.o umh.o workqueue.o pid.o task_work.o \
1010 extable.o params.o \
1111 kthread.o sys_ni.o nsproxy.o \
1212 notifier.o ksysfs.o cred.o reboot.o \
13
- async.o range.o smpboot.o ucount.o
13
+ async.o range.o smpboot.o ucount.o regset.o
1414
15
+obj-$(CONFIG_USERMODE_DRIVER) += usermode_driver.o
1516 obj-$(CONFIG_MODULES) += kmod.o
1617 obj-$(CONFIG_MULTIUSER) += groups.o
1718
....@@ -23,22 +24,22 @@
2324 # Prevents flicker of uninteresting __do_softirq()/__local_bh_disable_ip()
2425 # in coverage traces.
2526 KCOV_INSTRUMENT_softirq.o := n
27
+# Avoid KCSAN instrumentation in softirq ("No shared variables, all the data
28
+# are CPU local" => assume no data races), to reduce overhead in interrupts.
29
+KCSAN_SANITIZE_softirq.o = n
2630 # These are called from save_stack_trace() on slub debug path,
2731 # and produce insane amounts of uninteresting coverage.
2832 KCOV_INSTRUMENT_module.o := n
2933 KCOV_INSTRUMENT_extable.o := n
34
+KCOV_INSTRUMENT_stacktrace.o := n
3035 # Don't self-instrument.
3136 KCOV_INSTRUMENT_kcov.o := n
3237 KASAN_SANITIZE_kcov.o := n
33
-CFLAGS_kcov.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector)
34
-
35
-ifndef CONFIG_CFI_CLANG
36
-# cond_syscall is currently not gcc LTO compatible
37
-CFLAGS_sys_ni.o = $(DISABLE_LTO)
38
-endif
38
+KCSAN_SANITIZE_kcov.o := n
39
+CFLAGS_kcov.o := $(call cc-option, -fno-conserve-stack) -fno-stack-protector
3940
4041 # Don't instrument error handlers
41
-CFLAGS_cfi.o = $(DISABLE_CFI_CLANG)
42
+CFLAGS_REMOVE_cfi.o := $(CC_FLAGS_CFI)
4243
4344 obj-y += sched/
4445 obj-y += locking/
....@@ -48,13 +49,14 @@
4849 obj-y += rcu/
4950 obj-y += livepatch/
5051 obj-y += dma/
52
+obj-y += entry/
5153
52
-obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
54
+obj-$(CONFIG_KCMP) += kcmp.o
5355 obj-$(CONFIG_FREEZER) += freezer.o
5456 obj-$(CONFIG_PROFILING) += profile.o
5557 obj-$(CONFIG_STACKTRACE) += stacktrace.o
5658 obj-y += time/
57
-obj-$(CONFIG_FUTEX) += futex.o
59
+obj-$(CONFIG_FUTEX) += futex/
5860 obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
5961 obj-$(CONFIG_SMP) += smp.o
6062 ifneq ($(CONFIG_SMP),y)
....@@ -63,12 +65,14 @@
6365 obj-$(CONFIG_UID16) += uid16.o
6466 obj-$(CONFIG_MODULES) += module.o
6567 obj-$(CONFIG_MODULE_SIG) += module_signing.o
68
+obj-$(CONFIG_MODULE_SIG_FORMAT) += module_signature.o
6669 obj-$(CONFIG_KALLSYMS) += kallsyms.o
6770 obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
6871 obj-$(CONFIG_CRASH_CORE) += crash_core.o
6972 obj-$(CONFIG_KEXEC_CORE) += kexec_core.o
7073 obj-$(CONFIG_KEXEC) += kexec.o
7174 obj-$(CONFIG_KEXEC_FILE) += kexec_file.o
75
+obj-$(CONFIG_KEXEC_ELF) += kexec_elf.o
7276 obj-$(CONFIG_BACKTRACE_SELF_TEST) += backtracetest.o
7377 obj-$(CONFIG_COMPAT) += compat.o
7478 obj-$(CONFIG_CGROUPS) += cgroup/
....@@ -80,9 +84,7 @@
8084 obj-$(CONFIG_SMP) += stop_machine.o
8185 obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
8286 obj-$(CONFIG_AUDIT) += audit.o auditfilter.o
83
-obj-$(CONFIG_AUDITSYSCALL) += auditsc.o
84
-obj-$(CONFIG_AUDIT_WATCH) += audit_watch.o audit_fsnotify.o
85
-obj-$(CONFIG_AUDIT_TREE) += audit_tree.o
87
+obj-$(CONFIG_AUDITSYSCALL) += auditsc.o audit_watch.o audit_fsnotify.o audit_tree.o
8688 obj-$(CONFIG_GCOV_KERNEL) += gcov/
8789 obj-$(CONFIG_KCOV) += kcov.o
8890 obj-$(CONFIG_KPROBES) += kprobes.o
....@@ -106,8 +108,10 @@
106108 obj-$(CONFIG_IRQ_WORK) += irq_work.o
107109 obj-$(CONFIG_CPU_PM) += cpu_pm.o
108110 obj-$(CONFIG_BPF) += bpf/
109
-obj-$(CONFIG_CFI_CLANG) += cfi.o
111
+obj-$(CONFIG_KCSAN) += kcsan/
110112 obj-$(CONFIG_SHADOW_CALL_STACK) += scs.o
113
+obj-$(CONFIG_HAVE_STATIC_CALL_INLINE) += static_call.o
114
+obj-$(CONFIG_CFI_CLANG) += cfi.o
111115
112116 obj-$(CONFIG_PERF_EVENTS) += events/
113117
....@@ -119,24 +123,34 @@
119123 obj-$(CONFIG_TORTURE_TEST) += torture.o
120124
121125 obj-$(CONFIG_HAS_IOMEM) += iomem.o
122
-obj-$(CONFIG_ZONE_DEVICE) += memremap.o
123126 obj-$(CONFIG_RSEQ) += rseq.o
127
+obj-$(CONFIG_WATCH_QUEUE) += watch_queue.o
124128
125
-$(obj)/configs.o: $(obj)/config_data.h
129
+obj-$(CONFIG_SYSCTL_KUNIT_TEST) += sysctl-test.o
126130
127
-targets += config_data.gz
128
-$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
131
+CFLAGS_stackleak.o += $(DISABLE_STACKLEAK_PLUGIN)
132
+obj-$(CONFIG_GCC_PLUGIN_STACKLEAK) += stackleak.o
133
+KASAN_SANITIZE_stackleak.o := n
134
+KCSAN_SANITIZE_stackleak.o := n
135
+KCOV_INSTRUMENT_stackleak.o := n
136
+
137
+obj-$(CONFIG_SCF_TORTURE_TEST) += scftorture.o
138
+
139
+$(obj)/configs.o: $(obj)/config_data.gz
140
+
141
+targets += config_data config_data.gz
142
+$(obj)/config_data.gz: $(obj)/config_data FORCE
129143 $(call if_changed,gzip)
130144
131
- filechk_ikconfiggz = (echo "static const char kernel_config_data[] __used = MAGIC_START"; cat $< | scripts/bin2c; echo "MAGIC_END;")
132
-targets += config_data.h
133
-$(obj)/config_data.h: $(obj)/config_data.gz FORCE
134
- $(call filechk,ikconfiggz)
145
+filechk_cat = cat $<
146
+
147
+$(obj)/config_data: $(KCONFIG_CONFIG) FORCE
148
+ $(call filechk,cat)
135149
136150 $(obj)/kheaders.o: $(obj)/kheaders_data.tar.xz
137151
138152 quiet_cmd_genikh = CHK $(obj)/kheaders_data.tar.xz
139
-cmd_genikh = $(CONFIG_SHELL) $(srctree)/kernel/gen_kheaders.sh $@
153
+ cmd_genikh = $(CONFIG_SHELL) $(srctree)/kernel/gen_kheaders.sh $@
140154 $(obj)/kheaders_data.tar.xz: FORCE
141155 $(call cmd,genikh)
142156