Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0 |
Catalin Marinas | 8c2c3df | 2012-04-20 14:45:54 +0100 | [diff] [blame] | 2 | # |
| 3 | # Makefile for the linux kernel. |
| 4 | # |
| 5 | |
Punit Agrawal | d784e29 | 2014-11-18 11:41:27 +0000 | [diff] [blame] | 6 | CFLAGS_armv8_deprecated.o := -I$(src) |
Catalin Marinas | 8c2c3df | 2012-04-20 14:45:54 +0100 | [diff] [blame] | 7 | |
Torsten Duwe | edf072d | 2019-02-08 16:10:07 +0100 | [diff] [blame] | 8 | CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) |
| 9 | CFLAGS_REMOVE_insn.o = $(CC_FLAGS_FTRACE) |
| 10 | CFLAGS_REMOVE_return_address.o = $(CC_FLAGS_FTRACE) |
AKASHI Takahiro | 819e50e | 2014-04-30 18:54:33 +0900 | [diff] [blame] | 11 | |
Kees Cook | 7091877 | 2021-04-01 16:23:46 -0700 | [diff] [blame] | 12 | # Remove stack protector to avoid triggering unneeded stack canary |
| 13 | # checks due to randomize_kstack_offset. |
| 14 | CFLAGS_REMOVE_syscall.o = -fstack-protector -fstack-protector-strong |
| 15 | CFLAGS_syscall.o += -fno-stack-protector |
| 16 | |
Andrey Konovalov | 802b911 | 2022-05-23 16:51:51 +0200 | [diff] [blame] | 17 | # When KASAN is enabled, a stack trace is recorded for every alloc/free, which |
| 18 | # can significantly impact performance. Avoid instrumenting the stack trace |
| 19 | # collection code to minimize this impact. |
| 20 | KASAN_SANITIZE_stacktrace.o := n |
| 21 | |
Mark Rutland | bf6fa2c0 | 2021-06-07 10:46:23 +0100 | [diff] [blame] | 22 | # It's not safe to invoke KCOV when portions of the kernel environment aren't |
| 23 | # available or are out-of-sync with HW state. Since `noinstr` doesn't always |
| 24 | # inhibit KCOV instrumentation, disable it for the entire compilation unit. |
Mark Rutland | e6f85cb | 2021-07-15 13:30:49 +0100 | [diff] [blame] | 25 | KCOV_INSTRUMENT_entry-common.o := n |
Mark Rutland | b5df5b8 | 2021-06-07 10:46:24 +0100 | [diff] [blame] | 26 | KCOV_INSTRUMENT_idle.o := n |
Mark Rutland | bf6fa2c0 | 2021-06-07 10:46:23 +0100 | [diff] [blame] | 27 | |
Catalin Marinas | 8c2c3df | 2012-04-20 14:45:54 +0100 | [diff] [blame] | 28 | # Object file lists. |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 29 | obj-y := debug-monitors.o entry.o irq.o fpsimd.o \ |
Mark Rutland | ed3768d | 2019-10-25 17:42:13 +0100 | [diff] [blame] | 30 | entry-common.o entry-fpsimd.o process.o ptrace.o \ |
| 31 | setup.o signal.o sys.o stacktrace.o time.o traps.o \ |
Julien Thierry | 72fd723 | 2021-03-03 18:05:32 +0100 | [diff] [blame] | 32 | io.o vdso.o hyp-stub.o psci.o cpu_ops.o \ |
Will Deacon | f5e0a12 | 2015-02-25 12:10:35 +0000 | [diff] [blame] | 33 | return_address.o cpuinfo.o cpu_errata.o \ |
Will Deacon | 4b3dc96 | 2015-05-29 18:28:44 +0100 | [diff] [blame] | 34 | cpufeature.o alternative.o cacheinfo.o \ |
Mark Rutland | 4141c85 | 2018-07-11 14:56:43 +0100 | [diff] [blame] | 35 | smp.o smp_spin_table.o topology.o smccc-call.o \ |
Ard Biesheuvel | e223a44 | 2024-02-14 13:28:50 +0100 | [diff] [blame] | 36 | syscall.o proton-pack.o idle.o patching.o pi/ |
Catalin Marinas | 8c2c3df | 2012-04-20 14:45:54 +0100 | [diff] [blame] | 37 | |
Vincenzo Frascino | af1b3cf | 2019-04-15 10:49:37 +0100 | [diff] [blame] | 38 | obj-$(CONFIG_COMPAT) += sys32.o signal32.o \ |
Vincenzo Frascino | bfe801e | 2019-06-21 10:52:42 +0100 | [diff] [blame] | 39 | sys_compat.o |
Vincenzo Frascino | bfe801e | 2019-06-21 10:52:42 +0100 | [diff] [blame] | 40 | obj-$(CONFIG_COMPAT) += sigreturn32.o |
Ard Biesheuvel | 3fc24ef | 2022-07-01 15:53:22 +0200 | [diff] [blame] | 41 | obj-$(CONFIG_COMPAT_ALIGNMENT_FIXUPS) += compat_alignment.o |
Vincenzo Frascino | af1b3cf | 2019-04-15 10:49:37 +0100 | [diff] [blame] | 42 | obj-$(CONFIG_KUSER_HELPERS) += kuser32.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 43 | obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o |
Mark Rutland | ea3752b | 2023-05-30 12:03:27 +0100 | [diff] [blame] | 44 | obj-$(CONFIG_MODULES) += module.o module-plts.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 45 | obj-$(CONFIG_PERF_EVENTS) += perf_regs.o perf_callchain.o |
Lecopzer Chen | 94946f9 | 2023-05-19 10:18:41 -0700 | [diff] [blame] | 46 | obj-$(CONFIG_HARDLOCKUP_DETECTOR_PERF) += watchdog_hld.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 47 | obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o |
| 48 | obj-$(CONFIG_CPU_PM) += sleep.o suspend.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 49 | obj-$(CONFIG_JUMP_LABEL) += jump_label.o |
| 50 | obj-$(CONFIG_KGDB) += kgdb.o |
Ard Biesheuvel | 4ef8060 | 2022-10-17 17:14:41 +0200 | [diff] [blame] | 51 | obj-$(CONFIG_EFI) += efi.o efi-rt-wrapper.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 52 | obj-$(CONFIG_PCI) += pci.o |
| 53 | obj-$(CONFIG_ARMV8_DEPRECATED) += armv8_deprecated.o |
| 54 | obj-$(CONFIG_ACPI) += acpi.o |
| 55 | obj-$(CONFIG_ACPI_NUMA) += acpi_numa.o |
| 56 | obj-$(CONFIG_ARM64_ACPI_PARKING_PROTOCOL) += acpi_parking_protocol.o |
| 57 | obj-$(CONFIG_PARAVIRT) += paravirt.o |
Ard Biesheuvel | 734958e | 2024-02-14 13:28:49 +0100 | [diff] [blame] | 58 | obj-$(CONFIG_RANDOMIZE_BASE) += kaslr.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 59 | obj-$(CONFIG_HIBERNATION) += hibernate.o hibernate-asm.o |
Catalin Marinas | 6dd8b1a | 2022-01-31 16:54:55 +0000 | [diff] [blame] | 60 | obj-$(CONFIG_ELF_CORE) += elfcore.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 61 | obj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o \ |
Geoff Levand | d28f6df | 2016-06-23 17:54:48 +0000 | [diff] [blame] | 62 | cpu-reset.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 63 | obj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o |
| 64 | obj-$(CONFIG_ARM64_RELOC_TEST) += arm64-reloc-test.o |
Ard Biesheuvel | 214fad5 | 2017-03-31 08:55:33 +0100 | [diff] [blame] | 65 | arm64-reloc-test-y := reloc_test_core.o reloc_test_syms.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 66 | obj-$(CONFIG_CRASH_DUMP) += crash_dump.o |
Baoquan He | 443cbaf | 2024-01-24 13:12:42 +0800 | [diff] [blame] | 67 | obj-$(CONFIG_VMCORE_INFO) += vmcore_info.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 68 | obj-$(CONFIG_ARM_SDE_INTERFACE) += sdei.o |
Masahiro Yamada | 2f328fe | 2019-01-04 09:18:41 +0900 | [diff] [blame] | 69 | obj-$(CONFIG_ARM64_PTR_AUTH) += pointer_auth.o |
Vincenzo Frascino | 637ec83 | 2019-09-16 11:51:17 +0100 | [diff] [blame] | 70 | obj-$(CONFIG_ARM64_MTE) += mte.o |
Masahiro Yamada | a5b8ca97 | 2020-12-18 11:45:40 +0900 | [diff] [blame] | 71 | obj-y += vdso-wrap.o |
| 72 | obj-$(CONFIG_COMPAT_VDSO) += vdso32-wrap.o |
Catalin Marinas | 8c2c3df | 2012-04-20 14:45:54 +0100 | [diff] [blame] | 73 | |
Joey Gouly | 205f399 | 2022-05-10 11:27:21 +0100 | [diff] [blame] | 74 | # Force dependency (vdso*-wrap.S includes vdso.so through incbin) |
| 75 | $(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so |
| 76 | $(obj)/vdso32-wrap.o: $(obj)/vdso32/vdso.so |
| 77 | |
Masahiro Yamada | a5b8ca97 | 2020-12-18 11:45:40 +0900 | [diff] [blame] | 78 | obj-y += probes/ |
Masahiro Yamada | 3216484 | 2022-09-25 03:19:14 +0900 | [diff] [blame] | 79 | obj-y += head.o |
| 80 | extra-y += vmlinux.lds |
Ard Biesheuvel | 757b435 | 2017-02-02 17:33:19 +0000 | [diff] [blame] | 81 | |
| 82 | ifeq ($(CONFIG_DEBUG_EFI),y) |
| 83 | AFLAGS_head.o += -DVMLINUX_PATH="\"$(realpath $(objtree)/vmlinux)\"" |
| 84 | endif |
Masahiro Yamada | 8212f89 | 2021-10-13 15:36:22 +0900 | [diff] [blame] | 85 | |
| 86 | # for cleaning |
| 87 | subdir- += vdso vdso32 |