1 # SPDX-License-Identifier: GPL-2.0-only << 2 # 1 # 3 # Makefile for the RISC-V Linux kernel !! 2 # Makefile for the linux kernel. 4 # 3 # >> 4 # Note! Dependencies are done automagically by 'make dep', which also >> 5 # removes any old dependencies. DON'T put your own dependencies here >> 6 # unless it's something special (ie not a .c file). >> 7 # >> 8 # Note 2! The CFLAGS definitions are now in the main makefile... 5 9 6 ifdef CONFIG_FTRACE !! 10 .S.o: 7 CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) !! 11 $(CC) $(AFLAGS) -traditional -c $< -o $*.o 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 12 15 ifdef CONFIG_KEXEC_CORE !! 13 all: kernel.o head.o init_task.o 16 AFLAGS_kexec_relocate.o := -mcmodel=medany $(c << 17 endif << 18 14 19 # cmodel=medany and notrace when patching earl !! 15 O_TARGET := kernel.o 20 ifdef CONFIG_RISCV_ALTERNATIVE_EARLY !! 16 21 CFLAGS_alternative.o := -mcmodel=medany !! 17 export-objs := mca.o mtrr.o msr.o cpuid.o microcode.o i386_ksyms.o time.o setup.o 22 CFLAGS_cpufeature.o := -mcmodel=medany !! 18 23 CFLAGS_sbi_ecall.o := -mcmodel=medany !! 19 obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o vm86.o \ 24 ifdef CONFIG_FTRACE !! 20 ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_i386.o \ 25 CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRAC !! 21 pci-dma.o i386_ksyms.o i387.o bluesmoke.o dmi_scan.o 26 CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE !! 22 27 CFLAGS_REMOVE_sbi_ecall.o = $(CC_FLAGS_FTRACE) !! 23 28 endif !! 24 ifdef CONFIG_PCI 29 ifdef CONFIG_RELOCATABLE !! 25 obj-y += pci-i386.o 30 CFLAGS_alternative.o += -fno-pie !! 26 ifdef CONFIG_VISWS 31 CFLAGS_cpufeature.o += -fno-pie !! 27 obj-y += pci-visws.o 32 CFLAGS_sbi_ecall.o += -fno-pie !! 28 else 33 endif !! 29 obj-y += pci-pc.o pci-irq.o 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 30 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 31 endif >> 32 >> 33 ifdef CONFIG_MGEODE_LX >> 34 obj-y += geode-mfgpt.o >> 35 export-objs += geode-mfgpt.o 44 endif 36 endif 45 37 46 extra-y += vmlinux.lds !! 38 obj-$(CONFIG_MCA) += mca.o >> 39 obj-$(CONFIG_MTRR) += mtrr.o >> 40 obj-$(CONFIG_X86_MSR) += msr.o >> 41 obj-$(CONFIG_X86_CPUID) += cpuid.o >> 42 obj-$(CONFIG_MICROCODE) += microcode.o >> 43 obj-$(CONFIG_APM) += apm.o >> 44 obj-$(CONFIG_ACPI_BOOT) += acpi.o earlyquirk.o >> 45 obj-$(CONFIG_ACPI_SLEEP) += acpi_wakeup.o >> 46 obj-$(CONFIG_SMP) += smp.o smpboot.o trampoline.o >> 47 obj-$(CONFIG_X86_LOCAL_APIC) += mpparse.o apic.o nmi.o >> 48 obj-$(CONFIG_X86_IO_APIC) += io_apic.o >> 49 obj-$(CONFIG_X86_VISWS_APIC) += visws_apic.o >> 50 obj-$(CONFIG_EDD) += edd.o 47 51 48 obj-y += head.o !! 52 include $(TOPDIR)/Rules.make 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 << 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.