1# SPDX-License-Identifier: GPL-2.0 2obj-y := core.o 3ifneq ($(CONFIG_BPF_JIT_ALWAYS_ON),y) 4# ___bpf_prog_run() needs GCSE disabled on x86; see 3193c0836f203 for details 5cflags-nogcse-$(CONFIG_X86)$(CONFIG_CC_IS_GCC) := -fno-gcse 6endif 7CFLAGS_core.o += -Wno-override-init $(cflags-nogcse-yy) 8 9obj-$(CONFIG_BPF_SYSCALL) += syscall.o verifier.o inode.o helpers.o tnum.o log.o token.o liveness.o 10obj-$(CONFIG_BPF_SYSCALL) += bpf_iter.o map_iter.o task_iter.o prog_iter.o link_iter.o 11obj-$(CONFIG_BPF_SYSCALL) += hashtab.o arraymap.o percpu_freelist.o bpf_lru_list.o lpm_trie.o map_in_map.o bloom_filter.o 12obj-$(CONFIG_BPF_SYSCALL) += local_storage.o queue_stack_maps.o ringbuf.o bpf_insn_array.o 13obj-$(CONFIG_BPF_SYSCALL) += bpf_local_storage.o bpf_task_storage.o 14obj-${CONFIG_BPF_LSM} += bpf_inode_storage.o 15obj-$(CONFIG_BPF_SYSCALL) += disasm.o mprog.o 16obj-$(CONFIG_BPF_JIT) += trampoline.o 17obj-$(CONFIG_BPF_SYSCALL) += btf.o memalloc.o rqspinlock.o stream.o 18ifeq ($(CONFIG_MMU)$(CONFIG_64BIT),yy) 19obj-$(CONFIG_BPF_SYSCALL) += arena.o range_tree.o 20endif 21obj-$(CONFIG_BPF_JIT) += dispatcher.o 22ifeq ($(CONFIG_NET),y) 23obj-$(CONFIG_BPF_SYSCALL) += devmap.o 24obj-$(CONFIG_BPF_SYSCALL) += cpumap.o 25obj-$(CONFIG_BPF_SYSCALL) += offload.o 26obj-$(CONFIG_BPF_SYSCALL) += net_namespace.o 27obj-$(CONFIG_BPF_SYSCALL) += tcx.o 28endif 29ifeq ($(CONFIG_PERF_EVENTS),y) 30obj-$(CONFIG_BPF_SYSCALL) += stackmap.o 31endif 32ifeq ($(CONFIG_CGROUPS),y) 33obj-$(CONFIG_BPF_SYSCALL) += cgroup_iter.o bpf_cgrp_storage.o 34endif 35obj-$(CONFIG_CGROUP_BPF) += cgroup.o 36ifeq ($(CONFIG_INET),y) 37obj-$(CONFIG_BPF_SYSCALL) += reuseport_array.o 38endif 39ifeq ($(CONFIG_SYSFS),y) 40obj-$(CONFIG_DEBUG_INFO_BTF) += sysfs_btf.o 41endif 42ifeq ($(CONFIG_BPF_JIT),y) 43obj-$(CONFIG_BPF_SYSCALL) += bpf_struct_ops.o 44obj-$(CONFIG_BPF_SYSCALL) += cpumask.o 45# bpf_lsm_proto.o must precede bpf_lsm.o. The current pahole logic 46# deduplicates function prototypes within 47# btf_encoder__add_saved_func() by keeping the first instance seen. We 48# need the function prototype(s) in bpf_lsm_proto.o to take precedence 49# over those within bpf_lsm.o. Having bpf_lsm_proto.o precede 50# bpf_lsm.o ensures its DWARF CU is processed early, forcing the 51# generated BTF to contain the overrides. 52# 53# Notably, this is a temporary workaround whilst the deduplication 54# semantics within pahole are revisited accordingly. 55obj-${CONFIG_BPF_LSM} += bpf_lsm_proto.o bpf_lsm.o 56endif 57ifneq ($(CONFIG_CRYPTO),) 58obj-$(CONFIG_BPF_SYSCALL) += crypto.o 59endif 60obj-$(CONFIG_BPF_PRELOAD) += preload/ 61 62obj-$(CONFIG_BPF_SYSCALL) += relo_core.o 63obj-$(CONFIG_BPF_SYSCALL) += btf_iter.o 64obj-$(CONFIG_BPF_SYSCALL) += btf_relocate.o 65obj-$(CONFIG_BPF_SYSCALL) += kmem_cache_iter.o 66ifeq ($(CONFIG_DMA_SHARED_BUFFER),y) 67obj-$(CONFIG_BPF_SYSCALL) += dmabuf_iter.o 68endif 69 70CFLAGS_REMOVE_percpu_freelist.o = $(CC_FLAGS_FTRACE) 71CFLAGS_REMOVE_bpf_lru_list.o = $(CC_FLAGS_FTRACE) 72CFLAGS_REMOVE_queue_stack_maps.o = $(CC_FLAGS_FTRACE) 73CFLAGS_REMOVE_lpm_trie.o = $(CC_FLAGS_FTRACE) 74CFLAGS_REMOVE_ringbuf.o = $(CC_FLAGS_FTRACE) 75CFLAGS_REMOVE_rqspinlock.o = $(CC_FLAGS_FTRACE) 76