1 # SPDX-License-Identifier: GPL-2.0-only !! 1 # SPDX-License-Identifier: GPL-2.0 >> 2 2 # 3 # 3 # Makefile for the RISC-V Linux kernel !! 4 # Makefile for the linux kernel. 4 # 5 # 5 6 6 ifdef CONFIG_FTRACE !! 7 asflags-y := -ansi 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 8 15 ifdef CONFIG_KEXEC_CORE !! 9 # Undefine sparc when processing vmlinux.lds - it is used 16 AFLAGS_kexec_relocate.o := -mcmodel=medany $(c !! 10 # And teach CPP we are doing $(BITS) builds (for this case) 17 endif !! 11 CPPFLAGS_vmlinux.lds := -Usparc -m$(BITS) 18 !! 12 extra-y += vmlinux.lds 19 # cmodel=medany and notrace when patching earl !! 13 20 ifdef CONFIG_RISCV_ALTERNATIVE_EARLY !! 14 ifdef CONFIG_FUNCTION_TRACER 21 CFLAGS_alternative.o := -mcmodel=medany !! 15 # Do not profile debug and lowlevel utilities 22 CFLAGS_cpufeature.o := -mcmodel=medany !! 16 CFLAGS_REMOVE_ftrace.o := -pg 23 CFLAGS_sbi_ecall.o := -mcmodel=medany !! 17 CFLAGS_REMOVE_time_$(BITS).o := -pg 24 ifdef CONFIG_FTRACE !! 18 CFLAGS_REMOVE_perf_event.o := -pg 25 CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRAC !! 19 CFLAGS_REMOVE_pcr.o := -pg 26 CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE !! 20 endif 27 CFLAGS_REMOVE_sbi_ecall.o = $(CC_FLAGS_FTRACE) !! 21 28 endif !! 22 obj-y := head_$(BITS).o 29 ifdef CONFIG_RELOCATABLE !! 23 obj-$(CONFIG_SPARC64) += urtt_fill.o 30 CFLAGS_alternative.o += -fno-pie !! 24 obj-$(CONFIG_SPARC32) += entry.o wof.o wuf.o 31 CFLAGS_cpufeature.o += -fno-pie !! 25 obj-$(CONFIG_SPARC32) += etrap_32.o 32 CFLAGS_sbi_ecall.o += -fno-pie !! 26 obj-$(CONFIG_SPARC32) += rtrap_32.o 33 endif !! 27 obj-y += traps_$(BITS).o 34 ifdef CONFIG_KASAN !! 28 35 KASAN_SANITIZE_alternative.o := n !! 29 # IRQ 36 KASAN_SANITIZE_cpufeature.o := n !! 30 obj-y += irq_$(BITS).o 37 KASAN_SANITIZE_sbi_ecall.o := n !! 31 obj-$(CONFIG_SPARC32) += sun4m_irq.o sun4d_irq.o 38 endif !! 32 39 ifdef CONFIG_FORTIFY_SOURCE !! 33 obj-y += process_$(BITS).o 40 CFLAGS_alternative.o += -D__NO_FORTIFY !! 34 obj-y += process.o 41 CFLAGS_cpufeature.o += -D__NO_FORTIFY !! 35 obj-y += signal_$(BITS).o 42 CFLAGS_sbi_ecall.o += -D__NO_FORTIFY !! 36 obj-y += sigutil_$(BITS).o 43 endif !! 37 obj-$(CONFIG_SPARC32) += ioport.o 44 endif !! 38 obj-y += setup_$(BITS).o >> 39 obj-y += idprom.o >> 40 obj-y += sys_sparc_$(BITS).o >> 41 obj-$(CONFIG_SPARC32) += systbls_32.o >> 42 obj-y += time_$(BITS).o >> 43 obj-$(CONFIG_SPARC32) += windows.o >> 44 obj-y += cpu.o >> 45 obj-$(CONFIG_SPARC64) += vdso.o >> 46 obj-$(CONFIG_SPARC32) += devices.o >> 47 obj-y += ptrace_$(BITS).o >> 48 obj-y += unaligned_$(BITS).o >> 49 obj-y += una_asm_$(BITS).o >> 50 obj-y += prom_common.o >> 51 obj-y += prom_$(BITS).o >> 52 obj-y += of_device_common.o >> 53 obj-y += of_device_$(BITS).o >> 54 obj-$(CONFIG_SPARC64) += prom_irqtrans.o >> 55 >> 56 obj-$(CONFIG_SPARC32) += leon_kernel.o >> 57 obj-$(CONFIG_SPARC32) += leon_pmc.o >> 58 >> 59 obj-$(CONFIG_SPARC64) += reboot.o >> 60 obj-$(CONFIG_SPARC64) += sysfs.o >> 61 obj-$(CONFIG_SPARC64) += iommu.o iommu-common.o >> 62 obj-$(CONFIG_SPARC64) += central.o >> 63 obj-$(CONFIG_SPARC64) += starfire.o >> 64 obj-$(CONFIG_SPARC64) += power.o >> 65 obj-$(CONFIG_SPARC64) += sbus.o >> 66 obj-$(CONFIG_SPARC64) += ebus.o >> 67 obj-$(CONFIG_SPARC64) += visemul.o >> 68 obj-$(CONFIG_SPARC64) += hvapi.o >> 69 obj-$(CONFIG_SPARC64) += sstate.o >> 70 obj-$(CONFIG_SPARC64) += mdesc.o >> 71 obj-$(CONFIG_SPARC64) += adi_64.o >> 72 obj-$(CONFIG_SPARC64) += pcr.o >> 73 obj-$(CONFIG_SPARC64) += nmi.o >> 74 obj-$(CONFIG_SPARC64_SMP) += cpumap.o >> 75 >> 76 obj-$(CONFIG_PCIC_PCI) += pcic.o >> 77 obj-$(CONFIG_LEON_PCI) += leon_pci.o >> 78 obj-$(CONFIG_SPARC_GRPCI2)+= leon_pci_grpci2.o >> 79 obj-$(CONFIG_SPARC_GRPCI1)+= leon_pci_grpci1.o >> 80 >> 81 obj-$(CONFIG_SMP) += trampoline_$(BITS).o smp_$(BITS).o >> 82 obj-$(CONFIG_SPARC32_SMP) += sun4m_smp.o sun4d_smp.o leon_smp.o >> 83 obj-$(CONFIG_SPARC64_SMP) += hvtramp.o >> 84 >> 85 obj-y += auxio_$(BITS).o >> 86 obj-$(CONFIG_SUN_PM) += apc.o pmc.o >> 87 >> 88 obj-y += termios.o >> 89 >> 90 obj-$(CONFIG_MODULES) += module.o >> 91 obj-$(CONFIG_MODULES) += sparc_ksyms.o >> 92 obj-$(CONFIG_SPARC_LED) += led.o >> 93 obj-$(CONFIG_KGDB) += kgdb_$(BITS).o >> 94 >> 95 obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o >> 96 obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o >> 97 >> 98 obj-$(CONFIG_EARLYFB) += btext.o >> 99 obj-$(CONFIG_STACKTRACE) += stacktrace.o >> 100 # sparc64 PCI >> 101 obj-$(CONFIG_SPARC64_PCI) += pci.o pci_common.o psycho_common.o >> 102 obj-$(CONFIG_SPARC64_PCI) += pci_psycho.o pci_sabre.o pci_schizo.o >> 103 obj-$(CONFIG_SPARC64_PCI) += pci_sun4v.o pci_sun4v_asm.o pci_fire.o >> 104 obj-$(CONFIG_SPARC64_PCI_MSI) += pci_msi.o >> 105 >> 106 >> 107 obj-$(CONFIG_COMPAT) += sys32.o sys_sparc32.o signal32.o >> 108 >> 109 obj-$(CONFIG_US3_MC) += chmc.o >> 110 >> 111 obj-$(CONFIG_KPROBES) += kprobes.o >> 112 obj-$(CONFIG_SUN_LDOMS) += ldc.o vio.o viohs.o ds.o >> 113 >> 114 obj-$(CONFIG_AUDIT) += audit.o >> 115 audit--$(CONFIG_AUDIT) := compat_audit.o >> 116 obj-$(CONFIG_COMPAT) += $(audit--y) 45 117 46 extra-y += vmlinux.lds !! 118 pc--$(CONFIG_PERF_EVENTS) := perf_event.o >> 119 obj-$(CONFIG_SPARC64) += $(pc--y) 47 120 48 obj-y += head.o !! 121 obj-$(CONFIG_UPROBES) += uprobes.o 49 obj-y += soc.o !! 122 obj-$(CONFIG_JUMP_LABEL) += jump_label.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 << 86 obj-$(CONFIG_SMP) += cpu_ops.o << 87 << 88 obj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_s << 89 obj-$(CONFIG_MODULES) += module.o << 90 obj-$(CONFIG_MODULE_SECTIONS) += module-sect << 91 << 92 obj-$(CONFIG_CPU_PM) += suspend_ent << 93 obj-$(CONFIG_HIBERNATION) += hibernate.o << 94 << 95 obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ft << 96 obj-$(CONFIG_DYNAMIC_FTRACE) += mcount-dyn. << 97 << 98 obj-$(CONFIG_PERF_EVENTS) += perf_callch << 99 obj-$(CONFIG_HAVE_PERF_REGS) += perf_regs.o << 100 obj-$(CONFIG_RISCV_SBI) += sbi.o sbi_e << 101 ifeq ($(CONFIG_RISCV_SBI), y) << 102 obj-$(CONFIG_SMP) += sbi-ipi.o << 103 obj-$(CONFIG_SMP) += cpu_ops_sbi.o << 104 endif << 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. << 111 obj-$(CONFIG_VMCORE_INFO) += vmcore_info << 112 << 113 obj-$(CONFIG_JUMP_LABEL) += jump_label. << 114 << 115 obj-$(CONFIG_CFI_CLANG) += cfi.o << 116 << 117 obj-$(CONFIG_EFI) += efi.o << 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.