1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for the linux kernel.
6 CPPFLAGS_vmlinux.lds
:= -DTEXT_OFFSET
=$(TEXT_OFFSET
)
7 AFLAGS_head.o
:= -DTEXT_OFFSET
=$(TEXT_OFFSET
)
9 ifdef CONFIG_FUNCTION_TRACER
10 CFLAGS_REMOVE_ftrace.o
= -pg
11 CFLAGS_REMOVE_insn.o
= -pg
12 CFLAGS_REMOVE_patch.o
= -pg
13 CFLAGS_REMOVE_unwind.o
= -pg
16 CFLAGS_REMOVE_return_address.o
= -pg
20 obj-y
:= elf.o entry-common.o irq.o opcodes.o \
21 process.o ptrace.o reboot.o io.o \
22 setup.o signal.o sigreturn_codes.o \
23 stacktrace.o sys_arm.o time.o traps.o
25 KASAN_SANITIZE_stacktrace.o
:= n
26 KASAN_SANITIZE_traps.o
:= n
28 ifneq ($(CONFIG_ARM_UNWIND
),y
)
29 obj-
$(CONFIG_FRAME_POINTER
) += return_address.o
32 obj-
$(CONFIG_ATAGS
) += atags_parse.o
33 obj-
$(CONFIG_ATAGS_PROC
) += atags_proc.o
34 obj-
$(CONFIG_DEPRECATED_PARAM_STRUCT
) += atags_compat.o
36 ifeq ($(CONFIG_CPU_V7M
),y
)
37 obj-y
+= entry-v7m.o v7m.o
42 obj-
$(CONFIG_MMU
) += bugs.o
43 obj-
$(CONFIG_CPU_IDLE
) += cpuidle.o
44 obj-
$(CONFIG_ISA_DMA_API
) += dma.o
45 obj-
$(CONFIG_FIQ
) += fiq.o fiqasm.o
46 obj-
$(CONFIG_MODULES
) += armksyms.o module.o
47 obj-
$(CONFIG_ARM_MODULE_PLTS
) += module-plts.o
48 obj-
$(CONFIG_PCI
) += bios32.o isa.o
49 obj-
$(CONFIG_ARM_CPU_SUSPEND
) += sleep.o suspend.o
50 obj-
$(CONFIG_HIBERNATION
) += hibernate.o
51 obj-
$(CONFIG_SMP
) += smp.o
53 obj-
$(CONFIG_SMP
) += smp_tlb.o
55 obj-
$(CONFIG_HAVE_ARM_SCU
) += smp_scu.o
56 obj-
$(CONFIG_HAVE_ARM_TWD
) += smp_twd.o
57 obj-
$(CONFIG_ARM_ARCH_TIMER
) += arch_timer.o
58 obj-
$(CONFIG_FUNCTION_TRACER
) += entry-ftrace.o
59 obj-
$(CONFIG_DYNAMIC_FTRACE
) += ftrace.o insn.o patch.o
60 obj-
$(CONFIG_FUNCTION_GRAPH_TRACER
) += ftrace.o insn.o patch.o
61 obj-
$(CONFIG_JUMP_LABEL
) += jump_label.o insn.o patch.o
62 obj-
$(CONFIG_KEXEC_CORE
) += machine_kexec.o relocate_kernel.o
63 obj-
$(CONFIG_VMCORE_INFO
) += vmcore_info.o
64 # Main staffs in KPROBES are in arch/arm/probes/ .
65 obj-
$(CONFIG_KPROBES
) += patch.o insn.o
66 obj-
$(CONFIG_OABI_COMPAT
) += sys_oabi-compat.o
67 obj-
$(CONFIG_ARM_THUMBEE
) += thumbee.o
68 obj-
$(CONFIG_KGDB
) += kgdb.o patch.o
69 obj-
$(CONFIG_ARM_UNWIND
) += unwind.o
70 obj-
$(CONFIG_HAVE_TCM
) += tcm.o
71 obj-
$(CONFIG_OF
) += devtree.o
72 obj-
$(CONFIG_CRASH_DUMP
) += crash_dump.o
73 obj-
$(CONFIG_SWP_EMULATE
) += swp_emulate.o
74 obj-
$(CONFIG_HAVE_HW_BREAKPOINT
) += hw_breakpoint.o
76 obj-
$(CONFIG_CPU_XSCALE
) += xscale-cp0.o
77 obj-
$(CONFIG_CPU_XSC3
) += xscale-cp0.o
78 obj-
$(CONFIG_CPU_MOHAWK
) += xscale-cp0.o
79 obj-
$(CONFIG_IWMMXT
) += iwmmxt.o
80 obj-
$(CONFIG_PERF_EVENTS
) += perf_regs.o perf_callchain.o
81 AFLAGS_iwmmxt.o
:= -Wa
,-mcpu
=iwmmxt
82 obj-
$(CONFIG_ARM_CPU_TOPOLOGY
) += topology.o
83 obj-
$(CONFIG_VDSO
) += vdso.o
84 obj-
$(CONFIG_EFI
) += efi.o
85 obj-
$(CONFIG_PARAVIRT
) += paravirt.o
87 obj-y
+= head
$(MMUEXT
).o
88 obj-
$(CONFIG_DEBUG_LL
) += debug.o
89 obj-
$(CONFIG_EARLY_PRINTK
) += early_printk.o
90 obj-
$(CONFIG_ARM_PATCH_PHYS_VIRT
) += phys2virt.o
92 # This is executed very early using a temporary stack when no memory allocator
93 # nor global data is available. Everything has to be allocated on the stack.
94 CFLAGS_head-inflate-data.o
:= $(call cc-option
,-Wframe-larger-than
=10240)
95 obj-
$(CONFIG_XIP_DEFLATED_DATA
) += head-inflate-data.o
97 obj-
$(CONFIG_ARM_VIRT_EXT
) += hyp-stub.o
98 ifeq ($(CONFIG_ARM_PSCI
),y
)
99 obj-
$(CONFIG_SMP
) += psci_smp.o
102 obj-
$(CONFIG_HAVE_ARM_SMCCC
) += smccc-call.o
104 obj-
$(CONFIG_GENERIC_CPU_VULNERABILITIES
) += spectre.o
106 extra-y
:= vmlinux.lds