Makefile 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # SPDX-License-Identifier: GPL-2.0
  2. KASAN_SANITIZE := n
  3. UBSAN_SANITIZE := n
  4. KCOV_INSTRUMENT := n
  5. # Disable ftrace to avoid recursion.
  6. CFLAGS_REMOVE_common.o = $(CC_FLAGS_FTRACE)
  7. CFLAGS_REMOVE_generic.o = $(CC_FLAGS_FTRACE)
  8. CFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE)
  9. CFLAGS_REMOVE_quarantine.o = $(CC_FLAGS_FTRACE)
  10. CFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE)
  11. CFLAGS_REMOVE_report_generic.o = $(CC_FLAGS_FTRACE)
  12. CFLAGS_REMOVE_report_hw_tags.o = $(CC_FLAGS_FTRACE)
  13. CFLAGS_REMOVE_report_sw_tags.o = $(CC_FLAGS_FTRACE)
  14. CFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE)
  15. CFLAGS_REMOVE_hw_tags.o = $(CC_FLAGS_FTRACE)
  16. CFLAGS_REMOVE_sw_tags.o = $(CC_FLAGS_FTRACE)
  17. # Function splitter causes unnecessary splits in __asan_load1/__asan_store1
  18. # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533
  19. CC_FLAGS_KASAN_RUNTIME := $(call cc-option, -fno-conserve-stack)
  20. CC_FLAGS_KASAN_RUNTIME += -fno-stack-protector
  21. # Disable branch tracing to avoid recursion.
  22. CC_FLAGS_KASAN_RUNTIME += -DDISABLE_BRANCH_PROFILING
  23. CFLAGS_common.o := $(CC_FLAGS_KASAN_RUNTIME)
  24. CFLAGS_generic.o := $(CC_FLAGS_KASAN_RUNTIME)
  25. CFLAGS_init.o := $(CC_FLAGS_KASAN_RUNTIME)
  26. CFLAGS_quarantine.o := $(CC_FLAGS_KASAN_RUNTIME)
  27. CFLAGS_report.o := $(CC_FLAGS_KASAN_RUNTIME)
  28. CFLAGS_report_generic.o := $(CC_FLAGS_KASAN_RUNTIME)
  29. CFLAGS_report_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
  30. CFLAGS_report_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
  31. CFLAGS_shadow.o := $(CC_FLAGS_KASAN_RUNTIME)
  32. CFLAGS_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
  33. CFLAGS_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
  34. CFLAGS_KASAN_TEST := $(CFLAGS_KASAN) $(call cc-disable-warning, vla)
  35. ifndef CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX
  36. # If compiler instruments memintrinsics by prefixing them with __asan/__hwasan,
  37. # we need to treat them normally (as builtins), otherwise the compiler won't
  38. # recognize them as instrumentable. If it doesn't instrument them, we need to
  39. # pass -fno-builtin, so the compiler doesn't inline them.
  40. CFLAGS_KASAN_TEST += -fno-builtin
  41. endif
  42. CFLAGS_kasan_test_c.o := $(CFLAGS_KASAN_TEST)
  43. RUSTFLAGS_kasan_test_rust.o := $(RUSTFLAGS_KASAN)
  44. CFLAGS_kasan_test_module.o := $(CFLAGS_KASAN_TEST)
  45. obj-y := common.o report.o
  46. obj-$(CONFIG_KASAN_GENERIC) += init.o generic.o report_generic.o shadow.o quarantine.o
  47. obj-$(CONFIG_KASAN_HW_TAGS) += hw_tags.o report_hw_tags.o tags.o report_tags.o
  48. obj-$(CONFIG_KASAN_SW_TAGS) += init.o report_sw_tags.o shadow.o sw_tags.o tags.o report_tags.o
  49. kasan_test-objs := kasan_test_c.o
  50. ifdef CONFIG_RUST
  51. kasan_test-objs += kasan_test_rust.o
  52. endif
  53. obj-$(CONFIG_KASAN_KUNIT_TEST) += kasan_test.o
  54. obj-$(CONFIG_KASAN_MODULE_TEST) += kasan_test_module.o