1 # SPDX-License-Identifier: GPL-2.0 << 2 1 3 # Do not instrument the tracer itself: 2 # Do not instrument the tracer itself: 4 3 5 ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $( << 6 << 7 ifdef CONFIG_FUNCTION_TRACER 4 ifdef CONFIG_FUNCTION_TRACER >> 5 ORIG_CFLAGS := $(KBUILD_CFLAGS) >> 6 KBUILD_CFLAGS = $(subst -pg,,$(ORIG_CFLAGS)) 8 7 9 # Avoid recursion due to instrumentation. << 10 KCSAN_SANITIZE := n << 11 << 12 ifdef CONFIG_FTRACE_SELFTEST << 13 # selftest needs instrumentation 8 # selftest needs instrumentation 14 CFLAGS_trace_selftest_dynamic.o = $(CC_FLAGS_F !! 9 CFLAGS_trace_selftest_dynamic.o = -pg 15 obj-y += trace_selftest_dynamic.o 10 obj-y += trace_selftest_dynamic.o 16 endif 11 endif 17 endif << 18 << 19 ifdef CONFIG_FTRACE_STARTUP_TEST << 20 CFLAGS_trace_kprobe_selftest.o = $(CC_FLAGS_FT << 21 obj-$(CONFIG_KPROBE_EVENTS) += trace_kprobe_se << 22 endif << 23 12 24 # If unlikely tracing is enabled, do not trace 13 # If unlikely tracing is enabled, do not trace these files 25 ifdef CONFIG_TRACING_BRANCHES 14 ifdef CONFIG_TRACING_BRANCHES 26 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING 15 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING 27 endif 16 endif 28 17 29 # for GCOV coverage profiling !! 18 # 30 ifdef CONFIG_GCOV_PROFILE_FTRACE !! 19 # Make the trace clocks available generally: it's infrastructure 31 GCOV_PROFILE := y !! 20 # relied on by ptrace for example: 32 endif !! 21 # 33 !! 22 obj-y += trace_clock.o 34 # Functions in this file could be invoked from << 35 # code and produce random code coverage. << 36 KCOV_INSTRUMENT_trace_preemptirq.o := n << 37 << 38 CFLAGS_bpf_trace.o := -I$(src) << 39 << 40 CFLAGS_trace_benchmark.o := -I$(src) << 41 CFLAGS_trace_events_filter.o := -I$(src) << 42 << 43 obj-$(CONFIG_TRACE_CLOCK) += trace_clock.o << 44 23 45 obj-$(CONFIG_FUNCTION_TRACER) += libftrace.o 24 obj-$(CONFIG_FUNCTION_TRACER) += libftrace.o 46 obj-$(CONFIG_RING_BUFFER) += ring_buffer.o 25 obj-$(CONFIG_RING_BUFFER) += ring_buffer.o 47 obj-$(CONFIG_RING_BUFFER_BENCHMARK) += ring_bu 26 obj-$(CONFIG_RING_BUFFER_BENCHMARK) += ring_buffer_benchmark.o 48 27 49 obj-$(CONFIG_TRACING) += trace.o 28 obj-$(CONFIG_TRACING) += trace.o 50 obj-$(CONFIG_TRACING) += trace_output.o 29 obj-$(CONFIG_TRACING) += trace_output.o 51 obj-$(CONFIG_TRACING) += trace_seq.o << 52 obj-$(CONFIG_TRACING) += trace_stat.o 30 obj-$(CONFIG_TRACING) += trace_stat.o 53 obj-$(CONFIG_TRACING) += trace_printk.o 31 obj-$(CONFIG_TRACING) += trace_printk.o 54 obj-$(CONFIG_TRACING) += pid_list.o << 55 obj-$(CONFIG_TRACING_MAP) += tracing_map.o << 56 obj-$(CONFIG_PREEMPTIRQ_DELAY_TEST) += preempt << 57 obj-$(CONFIG_SYNTH_EVENT_GEN_TEST) += synth_ev << 58 obj-$(CONFIG_KPROBE_EVENT_GEN_TEST) += kprobe_ << 59 obj-$(CONFIG_CONTEXT_SWITCH_TRACER) += trace_s 32 obj-$(CONFIG_CONTEXT_SWITCH_TRACER) += trace_sched_switch.o >> 33 obj-$(CONFIG_SYSPROF_TRACER) += trace_sysprof.o 60 obj-$(CONFIG_FUNCTION_TRACER) += trace_functio 34 obj-$(CONFIG_FUNCTION_TRACER) += trace_functions.o 61 obj-$(CONFIG_PREEMPTIRQ_TRACEPOINTS) += trace_ << 62 obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff. 35 obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o 63 obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff. 36 obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o 64 obj-$(CONFIG_SCHED_TRACER) += trace_sched_wake 37 obj-$(CONFIG_SCHED_TRACER) += trace_sched_wakeup.o 65 obj-$(CONFIG_HWLAT_TRACER) += trace_hwlat.o << 66 obj-$(CONFIG_OSNOISE_TRACER) += trace_osnoise. << 67 obj-$(CONFIG_NOP_TRACER) += trace_nop.o 38 obj-$(CONFIG_NOP_TRACER) += trace_nop.o 68 obj-$(CONFIG_STACK_TRACER) += trace_stack.o 39 obj-$(CONFIG_STACK_TRACER) += trace_stack.o 69 obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o 40 obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o >> 41 obj-$(CONFIG_BOOT_TRACER) += trace_boot.o 70 obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += trace_f 42 obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += trace_functions_graph.o 71 obj-$(CONFIG_TRACE_BRANCH_PROFILING) += trace_ 43 obj-$(CONFIG_TRACE_BRANCH_PROFILING) += trace_branch.o >> 44 obj-$(CONFIG_HW_BRANCH_TRACER) += trace_hw_branches.o >> 45 obj-$(CONFIG_KMEMTRACE) += kmemtrace.o >> 46 obj-$(CONFIG_WORKQUEUE_TRACER) += trace_workqueue.o 72 obj-$(CONFIG_BLK_DEV_IO_TRACE) += blktrace.o 47 obj-$(CONFIG_BLK_DEV_IO_TRACE) += blktrace.o 73 obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += fgraph. << 74 ifeq ($(CONFIG_BLOCK),y) 48 ifeq ($(CONFIG_BLOCK),y) 75 obj-$(CONFIG_EVENT_TRACING) += blktrace.o 49 obj-$(CONFIG_EVENT_TRACING) += blktrace.o 76 endif 50 endif 77 obj-$(CONFIG_EVENT_TRACING) += trace_events.o 51 obj-$(CONFIG_EVENT_TRACING) += trace_events.o 78 obj-$(CONFIG_EVENT_TRACING) += trace_export.o 52 obj-$(CONFIG_EVENT_TRACING) += trace_export.o 79 obj-$(CONFIG_FTRACE_SYSCALLS) += trace_syscall 53 obj-$(CONFIG_FTRACE_SYSCALLS) += trace_syscalls.o 80 ifeq ($(CONFIG_PERF_EVENTS),y) !! 54 obj-$(CONFIG_EVENT_PROFILE) += trace_event_profile.o 81 obj-$(CONFIG_EVENT_TRACING) += trace_event_per << 82 endif << 83 obj-$(CONFIG_EVENT_TRACING) += trace_events_fi 55 obj-$(CONFIG_EVENT_TRACING) += trace_events_filter.o 84 obj-$(CONFIG_EVENT_TRACING) += trace_events_tr !! 56 obj-$(CONFIG_EVENT_TRACING) += power-traces.o 85 obj-$(CONFIG_PROBE_EVENTS) += trace_eprobe.o << 86 obj-$(CONFIG_TRACE_EVENT_INJECT) += trace_even << 87 obj-$(CONFIG_SYNTH_EVENTS) += trace_events_syn << 88 obj-$(CONFIG_HIST_TRIGGERS) += trace_events_hi << 89 obj-$(CONFIG_USER_EVENTS) += trace_events_user << 90 obj-$(CONFIG_BPF_EVENTS) += bpf_trace.o << 91 obj-$(CONFIG_KPROBE_EVENTS) += trace_kprobe.o << 92 obj-$(CONFIG_TRACEPOINTS) += error_report-trac << 93 obj-$(CONFIG_TRACEPOINTS) += power-traces.o << 94 ifeq ($(CONFIG_PM),y) << 95 obj-$(CONFIG_TRACEPOINTS) += rpm-traces.o << 96 endif << 97 ifeq ($(CONFIG_TRACING),y) << 98 obj-$(CONFIG_KGDB_KDB) += trace_kdb.o << 99 endif << 100 obj-$(CONFIG_DYNAMIC_EVENTS) += trace_dynevent << 101 obj-$(CONFIG_PROBE_EVENTS) += trace_probe.o << 102 obj-$(CONFIG_PROBE_EVENTS_BTF_ARGS) += trace_b << 103 obj-$(CONFIG_UPROBE_EVENTS) += trace_uprobe.o << 104 obj-$(CONFIG_BOOTTIME_TRACING) += trace_boot.o << 105 obj-$(CONFIG_FTRACE_RECORD_RECURSION) += trace << 106 obj-$(CONFIG_FPROBE) += fprobe.o << 107 obj-$(CONFIG_RETHOOK) += rethook.o << 108 obj-$(CONFIG_FPROBE_EVENTS) += trace_fprobe.o << 109 << 110 obj-$(CONFIG_TRACEPOINT_BENCHMARK) += trace_be << 111 obj-$(CONFIG_RV) += rv/ << 112 57 113 libftrace-y := ftrace.o 58 libftrace-y := ftrace.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.