| .. | .. |
|---|
| 5 | 5 | |
|---|
| 6 | 6 | obj-y = fork.o exec_domain.o panic.o \ |
|---|
| 7 | 7 | 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 \ |
|---|
| 9 | 9 | signal.o sys.o umh.o workqueue.o pid.o task_work.o \ |
|---|
| 10 | 10 | extable.o params.o \ |
|---|
| 11 | 11 | kthread.o sys_ni.o nsproxy.o \ |
|---|
| 12 | 12 | 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 |
|---|
| 14 | 14 | |
|---|
| 15 | +obj-$(CONFIG_USERMODE_DRIVER) += usermode_driver.o |
|---|
| 15 | 16 | obj-$(CONFIG_MODULES) += kmod.o |
|---|
| 16 | 17 | obj-$(CONFIG_MULTIUSER) += groups.o |
|---|
| 17 | 18 | |
|---|
| .. | .. |
|---|
| 23 | 24 | # Prevents flicker of uninteresting __do_softirq()/__local_bh_disable_ip() |
|---|
| 24 | 25 | # in coverage traces. |
|---|
| 25 | 26 | 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 |
|---|
| 26 | 30 | # These are called from save_stack_trace() on slub debug path, |
|---|
| 27 | 31 | # and produce insane amounts of uninteresting coverage. |
|---|
| 28 | 32 | KCOV_INSTRUMENT_module.o := n |
|---|
| 29 | 33 | KCOV_INSTRUMENT_extable.o := n |
|---|
| 34 | +KCOV_INSTRUMENT_stacktrace.o := n |
|---|
| 30 | 35 | # Don't self-instrument. |
|---|
| 31 | 36 | KCOV_INSTRUMENT_kcov.o := n |
|---|
| 32 | 37 | 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 |
|---|
| 39 | 40 | |
|---|
| 40 | 41 | # Don't instrument error handlers |
|---|
| 41 | | -CFLAGS_cfi.o = $(DISABLE_CFI_CLANG) |
|---|
| 42 | +CFLAGS_REMOVE_cfi.o := $(CC_FLAGS_CFI) |
|---|
| 42 | 43 | |
|---|
| 43 | 44 | obj-y += sched/ |
|---|
| 44 | 45 | obj-y += locking/ |
|---|
| .. | .. |
|---|
| 48 | 49 | obj-y += rcu/ |
|---|
| 49 | 50 | obj-y += livepatch/ |
|---|
| 50 | 51 | obj-y += dma/ |
|---|
| 52 | +obj-y += entry/ |
|---|
| 51 | 53 | |
|---|
| 52 | | -obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o |
|---|
| 54 | +obj-$(CONFIG_KCMP) += kcmp.o |
|---|
| 53 | 55 | obj-$(CONFIG_FREEZER) += freezer.o |
|---|
| 54 | 56 | obj-$(CONFIG_PROFILING) += profile.o |
|---|
| 55 | 57 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
|---|
| 56 | 58 | obj-y += time/ |
|---|
| 57 | | -obj-$(CONFIG_FUTEX) += futex.o |
|---|
| 59 | +obj-$(CONFIG_FUTEX) += futex/ |
|---|
| 58 | 60 | obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o |
|---|
| 59 | 61 | obj-$(CONFIG_SMP) += smp.o |
|---|
| 60 | 62 | ifneq ($(CONFIG_SMP),y) |
|---|
| .. | .. |
|---|
| 63 | 65 | obj-$(CONFIG_UID16) += uid16.o |
|---|
| 64 | 66 | obj-$(CONFIG_MODULES) += module.o |
|---|
| 65 | 67 | obj-$(CONFIG_MODULE_SIG) += module_signing.o |
|---|
| 68 | +obj-$(CONFIG_MODULE_SIG_FORMAT) += module_signature.o |
|---|
| 66 | 69 | obj-$(CONFIG_KALLSYMS) += kallsyms.o |
|---|
| 67 | 70 | obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o |
|---|
| 68 | 71 | obj-$(CONFIG_CRASH_CORE) += crash_core.o |
|---|
| 69 | 72 | obj-$(CONFIG_KEXEC_CORE) += kexec_core.o |
|---|
| 70 | 73 | obj-$(CONFIG_KEXEC) += kexec.o |
|---|
| 71 | 74 | obj-$(CONFIG_KEXEC_FILE) += kexec_file.o |
|---|
| 75 | +obj-$(CONFIG_KEXEC_ELF) += kexec_elf.o |
|---|
| 72 | 76 | obj-$(CONFIG_BACKTRACE_SELF_TEST) += backtracetest.o |
|---|
| 73 | 77 | obj-$(CONFIG_COMPAT) += compat.o |
|---|
| 74 | 78 | obj-$(CONFIG_CGROUPS) += cgroup/ |
|---|
| .. | .. |
|---|
| 80 | 84 | obj-$(CONFIG_SMP) += stop_machine.o |
|---|
| 81 | 85 | obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o |
|---|
| 82 | 86 | 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 |
|---|
| 86 | 88 | obj-$(CONFIG_GCOV_KERNEL) += gcov/ |
|---|
| 87 | 89 | obj-$(CONFIG_KCOV) += kcov.o |
|---|
| 88 | 90 | obj-$(CONFIG_KPROBES) += kprobes.o |
|---|
| .. | .. |
|---|
| 106 | 108 | obj-$(CONFIG_IRQ_WORK) += irq_work.o |
|---|
| 107 | 109 | obj-$(CONFIG_CPU_PM) += cpu_pm.o |
|---|
| 108 | 110 | obj-$(CONFIG_BPF) += bpf/ |
|---|
| 109 | | -obj-$(CONFIG_CFI_CLANG) += cfi.o |
|---|
| 111 | +obj-$(CONFIG_KCSAN) += kcsan/ |
|---|
| 110 | 112 | obj-$(CONFIG_SHADOW_CALL_STACK) += scs.o |
|---|
| 113 | +obj-$(CONFIG_HAVE_STATIC_CALL_INLINE) += static_call.o |
|---|
| 114 | +obj-$(CONFIG_CFI_CLANG) += cfi.o |
|---|
| 111 | 115 | |
|---|
| 112 | 116 | obj-$(CONFIG_PERF_EVENTS) += events/ |
|---|
| 113 | 117 | |
|---|
| .. | .. |
|---|
| 119 | 123 | obj-$(CONFIG_TORTURE_TEST) += torture.o |
|---|
| 120 | 124 | |
|---|
| 121 | 125 | obj-$(CONFIG_HAS_IOMEM) += iomem.o |
|---|
| 122 | | -obj-$(CONFIG_ZONE_DEVICE) += memremap.o |
|---|
| 123 | 126 | obj-$(CONFIG_RSEQ) += rseq.o |
|---|
| 127 | +obj-$(CONFIG_WATCH_QUEUE) += watch_queue.o |
|---|
| 124 | 128 | |
|---|
| 125 | | -$(obj)/configs.o: $(obj)/config_data.h |
|---|
| 129 | +obj-$(CONFIG_SYSCTL_KUNIT_TEST) += sysctl-test.o |
|---|
| 126 | 130 | |
|---|
| 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 |
|---|
| 129 | 143 | $(call if_changed,gzip) |
|---|
| 130 | 144 | |
|---|
| 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) |
|---|
| 135 | 149 | |
|---|
| 136 | 150 | $(obj)/kheaders.o: $(obj)/kheaders_data.tar.xz |
|---|
| 137 | 151 | |
|---|
| 138 | 152 | 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 $@ |
|---|
| 140 | 154 | $(obj)/kheaders_data.tar.xz: FORCE |
|---|
| 141 | 155 | $(call cmd,genikh) |
|---|
| 142 | 156 | |
|---|