1 # SPDX-License-Identifier: GPL-2.0-only !! 1 # SPDX-License-Identifier: GPL-2.0 2 # 2 # 3 # Makefile for the RISC-V Linux kernel !! 3 # Makefile for the Linux/MIPS kernel. 4 # 4 # 5 5 6 ifdef CONFIG_FTRACE !! 6 extra-y := vmlinux.lds 7 CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) << 8 CFLAGS_REMOVE_patch.o = $(CC_FLAGS_FTRACE) << 9 CFLAGS_REMOVE_sbi.o = $(CC_FLAGS_FTRACE) << 10 CFLAGS_REMOVE_return_address.o = $(CC_FLAGS_F << 11 endif << 12 CFLAGS_syscall_table.o += $(call cc-option,-W << 13 CFLAGS_compat_syscall_table.o += $(call cc-opt << 14 7 15 ifdef CONFIG_KEXEC_CORE !! 8 obj-y += head.o branch.o cmpxchg.o elf.o entry.o genex.o idle.o irq.o \ 16 AFLAGS_kexec_relocate.o := -mcmodel=medany $(c !! 9 process.o prom.o ptrace.o reset.o setup.o signal.o \ 17 endif !! 10 syscall.o time.o topology.o traps.o unaligned.o watch.o \ >> 11 vdso.o cacheinfo.o >> 12 >> 13 ifdef CONFIG_CPU_R3K_TLB >> 14 obj-y += cpu-r3k-probe.o >> 15 else >> 16 obj-y += cpu-probe.o >> 17 endif >> 18 >> 19 ifdef CONFIG_FUNCTION_TRACER >> 20 CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) >> 21 CFLAGS_REMOVE_early_printk.o = $(CC_FLAGS_FTRACE) >> 22 CFLAGS_REMOVE_perf_event.o = $(CC_FLAGS_FTRACE) >> 23 CFLAGS_REMOVE_perf_event_mipsxx.o = $(CC_FLAGS_FTRACE) >> 24 endif >> 25 >> 26 obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o >> 27 obj-$(CONFIG_CEVT_R4K) += cevt-r4k.o >> 28 obj-$(CONFIG_CEVT_DS1287) += cevt-ds1287.o >> 29 obj-$(CONFIG_CEVT_GT641XX) += cevt-gt641xx.o >> 30 obj-$(CONFIG_CEVT_SB1250) += cevt-sb1250.o >> 31 obj-$(CONFIG_CEVT_TXX9) += cevt-txx9.o >> 32 obj-$(CONFIG_CSRC_BCM1480) += csrc-bcm1480.o >> 33 obj-$(CONFIG_CSRC_IOASIC) += csrc-ioasic.o >> 34 obj-$(CONFIG_CSRC_R4K) += csrc-r4k.o >> 35 obj-$(CONFIG_CSRC_SB1250) += csrc-sb1250.o >> 36 obj-$(CONFIG_SYNC_R4K) += sync-r4k.o 18 37 19 # cmodel=medany and notrace when patching earl !! 38 obj-$(CONFIG_DEBUG_FS) += segment.o 20 ifdef CONFIG_RISCV_ALTERNATIVE_EARLY !! 39 obj-$(CONFIG_STACKTRACE) += stacktrace.o 21 CFLAGS_alternative.o := -mcmodel=medany !! 40 obj-$(CONFIG_MODULES) += module.o 22 CFLAGS_cpufeature.o := -mcmodel=medany << 23 CFLAGS_sbi_ecall.o := -mcmodel=medany << 24 ifdef CONFIG_FTRACE << 25 CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRAC << 26 CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE << 27 CFLAGS_REMOVE_sbi_ecall.o = $(CC_FLAGS_FTRACE) << 28 endif << 29 ifdef CONFIG_RELOCATABLE << 30 CFLAGS_alternative.o += -fno-pie << 31 CFLAGS_cpufeature.o += -fno-pie << 32 CFLAGS_sbi_ecall.o += -fno-pie << 33 endif << 34 ifdef CONFIG_KASAN << 35 KASAN_SANITIZE_alternative.o := n << 36 KASAN_SANITIZE_cpufeature.o := n << 37 KASAN_SANITIZE_sbi_ecall.o := n << 38 endif << 39 ifdef CONFIG_FORTIFY_SOURCE << 40 CFLAGS_alternative.o += -D__NO_FORTIFY << 41 CFLAGS_cpufeature.o += -D__NO_FORTIFY << 42 CFLAGS_sbi_ecall.o += -D__NO_FORTIFY << 43 endif << 44 endif << 45 41 46 extra-y += vmlinux.lds !! 42 obj-$(CONFIG_FTRACE_SYSCALLS) += ftrace.o >> 43 obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o >> 44 >> 45 sw-y := r4k_switch.o >> 46 sw-$(CONFIG_CPU_R3000) := r2300_switch.o >> 47 sw-$(CONFIG_CPU_CAVIUM_OCTEON) := octeon_switch.o >> 48 obj-y += $(sw-y) >> 49 >> 50 obj-$(CONFIG_MIPS_FP_SUPPORT) += fpu-probe.o >> 51 obj-$(CONFIG_CPU_R2300_FPU) += r2300_fpu.o >> 52 obj-$(CONFIG_CPU_R4K_FPU) += r4k_fpu.o 47 53 48 obj-y += head.o << 49 obj-y += soc.o << 50 obj-$(CONFIG_RISCV_ALTERNATIVE) += alternative << 51 obj-y += cpu.o << 52 obj-y += cpufeature.o << 53 obj-y += entry.o << 54 obj-y += irq.o << 55 obj-y += process.o << 56 obj-y += ptrace.o << 57 obj-y += reset.o << 58 obj-y += return_address.o << 59 obj-y += setup.o << 60 obj-y += signal.o << 61 obj-y += syscall_table.o << 62 obj-y += sys_riscv.o << 63 obj-y += sys_hwprobe.o << 64 obj-y += time.o << 65 obj-y += traps.o << 66 obj-y += riscv_ksyms.o << 67 obj-y += stacktrace.o << 68 obj-y += cacheinfo.o << 69 obj-y += patch.o << 70 obj-y += vendor_extensions.o << 71 obj-y += vendor_extensions/ << 72 obj-y += probes/ << 73 obj-y += tests/ << 74 obj-$(CONFIG_MMU) += vdso.o vdso/ << 75 << 76 obj-$(CONFIG_RISCV_MISALIGNED) += traps_misal << 77 obj-$(CONFIG_RISCV_MISALIGNED) += unaligned_a << 78 obj-$(CONFIG_RISCV_PROBE_UNALIGNED_ACCESS) << 79 << 80 obj-$(CONFIG_FPU) += fpu.o << 81 obj-$(CONFIG_FPU) += kernel_mode << 82 obj-$(CONFIG_RISCV_ISA_V) += vector.o << 83 obj-$(CONFIG_RISCV_ISA_V) += kernel_mode << 84 obj-$(CONFIG_SMP) += smpboot.o << 85 obj-$(CONFIG_SMP) += smp.o 54 obj-$(CONFIG_SMP) += smp.o 86 obj-$(CONFIG_SMP) += cpu_ops.o !! 55 obj-$(CONFIG_SMP_UP) += smp-up.o >> 56 obj-$(CONFIG_CPU_BMIPS) += smp-bmips.o bmips_vec.o bmips_5xxx_init.o 87 57 88 obj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_s !! 58 obj-$(CONFIG_MIPS_MT) += mips-mt.o 89 obj-$(CONFIG_MODULES) += module.o !! 59 obj-$(CONFIG_MIPS_MT_FPAFF) += mips-mt-fpaff.o 90 obj-$(CONFIG_MODULE_SECTIONS) += module-sect !! 60 obj-$(CONFIG_MIPS_MT_SMP) += smp-mt.o >> 61 obj-$(CONFIG_MIPS_CPS) += smp-cps.o cps-vec.o >> 62 obj-$(CONFIG_MIPS_CPS_NS16550) += cps-vec-ns16550.o >> 63 obj-$(CONFIG_MIPS_SPRAM) += spram.o >> 64 >> 65 obj-$(CONFIG_MIPS_VPE_LOADER) += vpe.o >> 66 obj-$(CONFIG_MIPS_VPE_LOADER_MT) += vpe-mt.o >> 67 obj-$(CONFIG_MIPS_VPE_APSP_API) += rtlx.o >> 68 obj-$(CONFIG_MIPS_VPE_APSP_API_MT) += rtlx-mt.o >> 69 >> 70 obj-$(CONFIG_MIPS_MSC) += irq-msc01.o >> 71 obj-$(CONFIG_IRQ_TXX9) += irq_txx9.o >> 72 obj-$(CONFIG_IRQ_GT641XX) += irq-gt641xx.o >> 73 >> 74 obj-$(CONFIG_KPROBES) += kprobes.o >> 75 obj-$(CONFIG_32BIT) += scall32-o32.o >> 76 obj-$(CONFIG_64BIT) += scall64-n64.o >> 77 obj-$(CONFIG_MIPS32_COMPAT) += linux32.o ptrace32.o signal32.o >> 78 obj-$(CONFIG_MIPS32_N32) += scall64-n32.o signal_n32.o >> 79 obj-$(CONFIG_MIPS32_O32) += scall64-o32.o signal_o32.o 91 80 92 obj-$(CONFIG_CPU_PM) += suspend_ent !! 81 obj-$(CONFIG_KGDB) += kgdb.o 93 obj-$(CONFIG_HIBERNATION) += hibernate.o !! 82 obj-$(CONFIG_PROC_FS) += proc.o >> 83 obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o 94 84 95 obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ft !! 85 obj-$(CONFIG_CPU_R4X00_BUGS64) += r4k-bugs64.o 96 obj-$(CONFIG_DYNAMIC_FTRACE) += mcount-dyn. << 97 86 98 obj-$(CONFIG_PERF_EVENTS) += perf_callch !! 87 obj-$(CONFIG_I8253) += i8253.o 99 obj-$(CONFIG_HAVE_PERF_REGS) += perf_regs.o !! 88 100 obj-$(CONFIG_RISCV_SBI) += sbi.o sbi_e !! 89 obj-$(CONFIG_GPIO_TXX9) += gpio_txx9.o 101 ifeq ($(CONFIG_RISCV_SBI), y) !! 90 102 obj-$(CONFIG_SMP) += sbi-ipi.o !! 91 obj-$(CONFIG_RELOCATABLE) += relocate.o 103 obj-$(CONFIG_SMP) += cpu_ops_sbi.o !! 92 104 endif !! 93 obj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o crash.o 105 obj-$(CONFIG_HOTPLUG_CPU) += cpu-hotplug << 106 obj-$(CONFIG_PARAVIRT) += paravirt.o << 107 obj-$(CONFIG_KGDB) += kgdb.o << 108 obj-$(CONFIG_KEXEC_CORE) += kexec_reloc << 109 obj-$(CONFIG_KEXEC_FILE) += elf_kexec.o << 110 obj-$(CONFIG_CRASH_DUMP) += crash_dump. 94 obj-$(CONFIG_CRASH_DUMP) += crash_dump.o 111 obj-$(CONFIG_VMCORE_INFO) += vmcore_info !! 95 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o >> 96 obj-$(CONFIG_EARLY_PRINTK_8250) += early_printk_8250.o >> 97 obj-$(CONFIG_SPINLOCK_TEST) += spinlock_test.o >> 98 obj-$(CONFIG_MIPSR2_TO_R6_EMULATOR) += mips-r2-to-r6-emul.o >> 99 >> 100 CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -x c /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) >> 101 >> 102 obj-$(CONFIG_PERF_EVENTS) += perf_event.o perf_regs.o >> 103 obj-$(CONFIG_HW_PERF_EVENTS) += perf_event_mipsxx.o 112 104 113 obj-$(CONFIG_JUMP_LABEL) += jump_label. 105 obj-$(CONFIG_JUMP_LABEL) += jump_label.o >> 106 obj-$(CONFIG_UPROBES) += uprobes.o >> 107 >> 108 obj-$(CONFIG_MIPS_CM) += mips-cm.o >> 109 obj-$(CONFIG_MIPS_CPC) += mips-cpc.o 114 110 115 obj-$(CONFIG_CFI_CLANG) += cfi.o !! 111 obj-$(CONFIG_CPU_PM) += pm.o >> 112 obj-$(CONFIG_MIPS_CPS_PM) += pm-cps.o 116 113 117 obj-$(CONFIG_EFI) += efi.o !! 114 CPPFLAGS_vmlinux.lds := $(KBUILD_CFLAGS) 118 obj-$(CONFIG_COMPAT) += compat_sysc << 119 obj-$(CONFIG_COMPAT) += compat_sign << 120 obj-$(CONFIG_COMPAT) += compat_vdso << 121 << 122 obj-$(CONFIG_64BIT) += pi/ << 123 obj-$(CONFIG_ACPI) += acpi.o << 124 obj-$(CONFIG_ACPI_NUMA) += acpi_numa.o <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.