Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 #
0003 # Makefile for the linux kernel.
0004 #
0005 
0006 CFLAGS_armv8_deprecated.o := -I$(src)
0007 
0008 CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
0009 CFLAGS_REMOVE_insn.o = $(CC_FLAGS_FTRACE)
0010 CFLAGS_REMOVE_return_address.o = $(CC_FLAGS_FTRACE)
0011 
0012 # Remove stack protector to avoid triggering unneeded stack canary
0013 # checks due to randomize_kstack_offset.
0014 CFLAGS_REMOVE_syscall.o  = -fstack-protector -fstack-protector-strong
0015 CFLAGS_syscall.o        += -fno-stack-protector
0016 
0017 # When KASAN is enabled, a stack trace is recorded for every alloc/free, which
0018 # can significantly impact performance. Avoid instrumenting the stack trace
0019 # collection code to minimize this impact.
0020 KASAN_SANITIZE_stacktrace.o := n
0021 
0022 # It's not safe to invoke KCOV when portions of the kernel environment aren't
0023 # available or are out-of-sync with HW state. Since `noinstr` doesn't always
0024 # inhibit KCOV instrumentation, disable it for the entire compilation unit.
0025 KCOV_INSTRUMENT_entry-common.o := n
0026 KCOV_INSTRUMENT_idle.o := n
0027 
0028 # Object file lists.
0029 obj-y                   := debug-monitors.o entry.o irq.o fpsimd.o              \
0030                            entry-common.o entry-fpsimd.o process.o ptrace.o     \
0031                            setup.o signal.o sys.o stacktrace.o time.o traps.o   \
0032                            io.o vdso.o hyp-stub.o psci.o cpu_ops.o              \
0033                            return_address.o cpuinfo.o cpu_errata.o              \
0034                            cpufeature.o alternative.o cacheinfo.o               \
0035                            smp.o smp_spin_table.o topology.o smccc-call.o       \
0036                            syscall.o proton-pack.o idreg-override.o idle.o      \
0037                            patching.o
0038 
0039 targets                 += efi-entry.o
0040 
0041 OBJCOPYFLAGS := --prefix-symbols=__efistub_
0042 $(obj)/%.stub.o: $(obj)/%.o FORCE
0043         $(call if_changed,objcopy)
0044 
0045 obj-$(CONFIG_COMPAT)                    += sys32.o signal32.o                   \
0046                                            sys_compat.o
0047 obj-$(CONFIG_COMPAT)                    += sigreturn32.o
0048 obj-$(CONFIG_KUSER_HELPERS)             += kuser32.o
0049 obj-$(CONFIG_FUNCTION_TRACER)           += ftrace.o entry-ftrace.o
0050 obj-$(CONFIG_MODULES)                   += module.o
0051 obj-$(CONFIG_ARM64_MODULE_PLTS)         += module-plts.o
0052 obj-$(CONFIG_PERF_EVENTS)               += perf_regs.o perf_callchain.o
0053 obj-$(CONFIG_HW_PERF_EVENTS)            += perf_event.o
0054 obj-$(CONFIG_HAVE_HW_BREAKPOINT)        += hw_breakpoint.o
0055 obj-$(CONFIG_CPU_PM)                    += sleep.o suspend.o
0056 obj-$(CONFIG_CPU_IDLE)                  += cpuidle.o
0057 obj-$(CONFIG_JUMP_LABEL)                += jump_label.o
0058 obj-$(CONFIG_KGDB)                      += kgdb.o
0059 obj-$(CONFIG_EFI)                       += efi.o efi-entry.stub.o               \
0060                                            efi-rt-wrapper.o
0061 obj-$(CONFIG_PCI)                       += pci.o
0062 obj-$(CONFIG_ARMV8_DEPRECATED)          += armv8_deprecated.o
0063 obj-$(CONFIG_ACPI)                      += acpi.o
0064 obj-$(CONFIG_ACPI_NUMA)                 += acpi_numa.o
0065 obj-$(CONFIG_ARM64_ACPI_PARKING_PROTOCOL)       += acpi_parking_protocol.o
0066 obj-$(CONFIG_PARAVIRT)                  += paravirt.o
0067 obj-$(CONFIG_RANDOMIZE_BASE)            += kaslr.o pi/
0068 obj-$(CONFIG_HIBERNATION)               += hibernate.o hibernate-asm.o
0069 obj-$(CONFIG_ELF_CORE)                  += elfcore.o
0070 obj-$(CONFIG_KEXEC_CORE)                += machine_kexec.o relocate_kernel.o    \
0071                                            cpu-reset.o
0072 obj-$(CONFIG_KEXEC_FILE)                += machine_kexec_file.o kexec_image.o
0073 obj-$(CONFIG_ARM64_RELOC_TEST)          += arm64-reloc-test.o
0074 arm64-reloc-test-y := reloc_test_core.o reloc_test_syms.o
0075 obj-$(CONFIG_CRASH_DUMP)                += crash_dump.o
0076 obj-$(CONFIG_CRASH_CORE)                += crash_core.o
0077 obj-$(CONFIG_ARM_SDE_INTERFACE)         += sdei.o
0078 obj-$(CONFIG_ARM64_PTR_AUTH)            += pointer_auth.o
0079 obj-$(CONFIG_ARM64_MTE)                 += mte.o
0080 obj-y                                   += vdso-wrap.o
0081 obj-$(CONFIG_COMPAT_VDSO)               += vdso32-wrap.o
0082 
0083 # Force dependency (vdso*-wrap.S includes vdso.so through incbin)
0084 $(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so
0085 $(obj)/vdso32-wrap.o: $(obj)/vdso32/vdso.so
0086 
0087 obj-y                                   += probes/
0088 head-y                                  := head.o
0089 extra-y                                 += $(head-y) vmlinux.lds
0090 
0091 ifeq ($(CONFIG_DEBUG_EFI),y)
0092 AFLAGS_head.o += -DVMLINUX_PATH="\"$(realpath $(objtree)/vmlinux)\""
0093 endif
0094 
0095 # for cleaning
0096 subdir- += vdso vdso32