^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # Do not instrument the tracer itself:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) ifdef CONFIG_FUNCTION_TRACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) # Avoid recursion due to instrumentation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) KCSAN_SANITIZE := n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) ifdef CONFIG_FTRACE_SELFTEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) # selftest needs instrumentation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) CFLAGS_trace_selftest_dynamic.o = $(CC_FLAGS_FTRACE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) obj-y += trace_selftest_dynamic.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) ifdef CONFIG_FTRACE_STARTUP_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) CFLAGS_trace_kprobe_selftest.o = $(CC_FLAGS_FTRACE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) obj-$(CONFIG_KPROBE_EVENTS) += trace_kprobe_selftest.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) # If unlikely tracing is enabled, do not trace these files
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) ifdef CONFIG_TRACING_BRANCHES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) # for GCOV coverage profiling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) ifdef CONFIG_GCOV_PROFILE_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) GCOV_PROFILE := y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) CFLAGS_bpf_trace.o := -I$(src)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) CFLAGS_trace_benchmark.o := -I$(src)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) CFLAGS_trace_events_filter.o := -I$(src)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) obj-$(CONFIG_TRACE_CLOCK) += trace_clock.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) obj-$(CONFIG_FUNCTION_TRACER) += libftrace.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) obj-$(CONFIG_RING_BUFFER) += ring_buffer.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) obj-$(CONFIG_RING_BUFFER_BENCHMARK) += ring_buffer_benchmark.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) obj-$(CONFIG_TRACING) += trace.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) obj-$(CONFIG_TRACING) += trace_output.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) obj-$(CONFIG_TRACING) += trace_seq.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) obj-$(CONFIG_TRACING) += trace_stat.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) obj-$(CONFIG_TRACING) += trace_printk.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) obj-$(CONFIG_TRACING_MAP) += tracing_map.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) obj-$(CONFIG_PREEMPTIRQ_DELAY_TEST) += preemptirq_delay_test.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) obj-$(CONFIG_SYNTH_EVENT_GEN_TEST) += synth_event_gen_test.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) obj-$(CONFIG_KPROBE_EVENT_GEN_TEST) += kprobe_event_gen_test.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) obj-$(CONFIG_CONTEXT_SWITCH_TRACER) += trace_sched_switch.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) obj-$(CONFIG_FUNCTION_TRACER) += trace_functions.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) obj-$(CONFIG_PREEMPTIRQ_TRACEPOINTS) += trace_preemptirq.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) obj-$(CONFIG_SCHED_TRACER) += trace_sched_wakeup.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) obj-$(CONFIG_HWLAT_TRACER) += trace_hwlat.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) obj-$(CONFIG_NOP_TRACER) += trace_nop.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) obj-$(CONFIG_STACK_TRACER) += trace_stack.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += trace_functions_graph.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) obj-$(CONFIG_TRACE_BRANCH_PROFILING) += trace_branch.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) obj-$(CONFIG_BLK_DEV_IO_TRACE) += blktrace.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += fgraph.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) ifeq ($(CONFIG_BLOCK),y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) obj-$(CONFIG_EVENT_TRACING) += blktrace.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) obj-$(CONFIG_EVENT_TRACING) += trace_events.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) obj-$(CONFIG_EVENT_TRACING) += trace_export.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) obj-$(CONFIG_FTRACE_SYSCALLS) += trace_syscalls.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) ifeq ($(CONFIG_PERF_EVENTS),y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) obj-$(CONFIG_EVENT_TRACING) += trace_event_perf.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) obj-$(CONFIG_EVENT_TRACING) += trace_events_filter.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) obj-$(CONFIG_EVENT_TRACING) += trace_events_trigger.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) obj-$(CONFIG_TRACE_EVENT_INJECT) += trace_events_inject.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) obj-$(CONFIG_SYNTH_EVENTS) += trace_events_synth.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) obj-$(CONFIG_HIST_TRIGGERS) += trace_events_hist.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) obj-$(CONFIG_BPF_EVENTS) += bpf_trace.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) obj-$(CONFIG_KPROBE_EVENTS) += trace_kprobe.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) obj-$(CONFIG_TRACEPOINTS) += error_report-traces.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) obj-$(CONFIG_TRACEPOINTS) += power-traces.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) ifeq ($(CONFIG_PM),y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) obj-$(CONFIG_TRACEPOINTS) += rpm-traces.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) ifeq ($(CONFIG_TRACING),y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) obj-$(CONFIG_KGDB_KDB) += trace_kdb.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) obj-$(CONFIG_DYNAMIC_EVENTS) += trace_dynevent.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) obj-$(CONFIG_PROBE_EVENTS) += trace_probe.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) obj-$(CONFIG_UPROBE_EVENTS) += trace_uprobe.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) obj-$(CONFIG_BOOTTIME_TRACING) += trace_boot.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) obj-$(CONFIG_TRACEPOINT_BENCHMARK) += trace_benchmark.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) obj-$(CONFIG_TRACE_MMIO_ACCESS) += trace_readwrite.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) libftrace-y := ftrace.o