Makefile 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Makefile for the RISC-V Linux kernel
  4. #
  5. ifdef CONFIG_FTRACE
  6. CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
  7. CFLAGS_REMOVE_patch.o = $(CC_FLAGS_FTRACE)
  8. CFLAGS_REMOVE_sbi.o = $(CC_FLAGS_FTRACE)
  9. endif
  10. CFLAGS_syscall_table.o += $(call cc-option,-Wno-override-init,)
  11. CFLAGS_compat_syscall_table.o += $(call cc-option,-Wno-override-init,)
  12. ifdef CONFIG_KEXEC
  13. AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
  14. endif
  15. # cmodel=medany and notrace when patching early
  16. ifdef CONFIG_RISCV_ALTERNATIVE_EARLY
  17. CFLAGS_alternative.o := -mcmodel=medany
  18. CFLAGS_cpufeature.o := -mcmodel=medany
  19. ifdef CONFIG_FTRACE
  20. CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRACE)
  21. CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE)
  22. endif
  23. ifdef CONFIG_KASAN
  24. KASAN_SANITIZE_alternative.o := n
  25. KASAN_SANITIZE_cpufeature.o := n
  26. endif
  27. endif
  28. extra-y += vmlinux.lds
  29. obj-y += head.o
  30. obj-y += soc.o
  31. obj-$(CONFIG_RISCV_ALTERNATIVE) += alternative.o
  32. obj-y += cpu.o
  33. obj-y += cpufeature.o
  34. obj-y += entry.o
  35. obj-y += irq.o
  36. obj-y += process.o
  37. obj-y += ptrace.o
  38. obj-y += reset.o
  39. obj-y += setup.o
  40. obj-y += signal.o
  41. obj-y += syscall_table.o
  42. obj-y += sys_riscv.o
  43. obj-y += time.o
  44. obj-y += traps.o
  45. obj-y += riscv_ksyms.o
  46. obj-y += stacktrace.o
  47. obj-y += cacheinfo.o
  48. obj-y += patch.o
  49. obj-y += probes/
  50. obj-$(CONFIG_MMU) += vdso.o vdso/
  51. obj-$(CONFIG_RISCV_M_MODE) += traps_misaligned.o
  52. obj-$(CONFIG_FPU) += fpu.o
  53. obj-$(CONFIG_SMP) += smpboot.o
  54. obj-$(CONFIG_SMP) += smp.o
  55. obj-$(CONFIG_SMP) += cpu_ops.o
  56. obj-$(CONFIG_RISCV_BOOT_SPINWAIT) += cpu_ops_spinwait.o
  57. obj-$(CONFIG_MODULES) += module.o
  58. obj-$(CONFIG_MODULE_SECTIONS) += module-sections.o
  59. obj-$(CONFIG_CPU_PM) += suspend_entry.o suspend.o
  60. obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o
  61. obj-$(CONFIG_DYNAMIC_FTRACE) += mcount-dyn.o
  62. obj-$(CONFIG_TRACE_IRQFLAGS) += trace_irq.o
  63. obj-$(CONFIG_PERF_EVENTS) += perf_callchain.o
  64. obj-$(CONFIG_HAVE_PERF_REGS) += perf_regs.o
  65. obj-$(CONFIG_RISCV_SBI) += sbi.o
  66. ifeq ($(CONFIG_RISCV_SBI), y)
  67. obj-$(CONFIG_SMP) += cpu_ops_sbi.o
  68. endif
  69. obj-$(CONFIG_HOTPLUG_CPU) += cpu-hotplug.o
  70. obj-$(CONFIG_KGDB) += kgdb.o
  71. obj-$(CONFIG_KEXEC_CORE) += kexec_relocate.o crash_save_regs.o machine_kexec.o
  72. obj-$(CONFIG_KEXEC_FILE) += elf_kexec.o machine_kexec_file.o
  73. obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
  74. obj-$(CONFIG_JUMP_LABEL) += jump_label.o
  75. obj-$(CONFIG_EFI) += efi.o
  76. obj-$(CONFIG_COMPAT) += compat_syscall_table.o
  77. obj-$(CONFIG_COMPAT) += compat_signal.o
  78. obj-$(CONFIG_COMPAT) += compat_vdso/