Make relo_core.c to be compiled for the kernel and for user space libbpf.
Note the patch is reducing BPF_CORE_SPEC_MAX_LEN from 64 to 32.
This is the maximum number of nested structs and arrays.
For example:
 struct sample {
     int a;
     struct {
         int b[10];
     };
 };
 struct sample *s = ...;
 int *y = &s->b[5];
This field access is encoded as "0:1:0:5" and spec len is 4.
The follow up patch might bump it back to 64.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211201181040.23337-4-alexei.starovoitov@gmail.com
		
	
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0
 | |
| obj-y := core.o
 | |
| ifneq ($(CONFIG_BPF_JIT_ALWAYS_ON),y)
 | |
| # ___bpf_prog_run() needs GCSE disabled on x86; see 3193c0836f203 for details
 | |
| cflags-nogcse-$(CONFIG_X86)$(CONFIG_CC_IS_GCC) := -fno-gcse
 | |
| endif
 | |
| CFLAGS_core.o += $(call cc-disable-warning, override-init) $(cflags-nogcse-yy)
 | |
| 
 | |
| obj-$(CONFIG_BPF_SYSCALL) += syscall.o verifier.o inode.o helpers.o tnum.o bpf_iter.o map_iter.o task_iter.o prog_iter.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += hashtab.o arraymap.o percpu_freelist.o bpf_lru_list.o lpm_trie.o map_in_map.o bloom_filter.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += local_storage.o queue_stack_maps.o ringbuf.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += bpf_local_storage.o bpf_task_storage.o
 | |
| obj-${CONFIG_BPF_LSM}	  += bpf_inode_storage.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += disasm.o
 | |
| obj-$(CONFIG_BPF_JIT) += trampoline.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += btf.o
 | |
| obj-$(CONFIG_BPF_JIT) += dispatcher.o
 | |
| ifeq ($(CONFIG_NET),y)
 | |
| obj-$(CONFIG_BPF_SYSCALL) += devmap.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += cpumap.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += offload.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += net_namespace.o
 | |
| endif
 | |
| ifeq ($(CONFIG_PERF_EVENTS),y)
 | |
| obj-$(CONFIG_BPF_SYSCALL) += stackmap.o
 | |
| endif
 | |
| obj-$(CONFIG_CGROUP_BPF) += cgroup.o
 | |
| ifeq ($(CONFIG_INET),y)
 | |
| obj-$(CONFIG_BPF_SYSCALL) += reuseport_array.o
 | |
| endif
 | |
| ifeq ($(CONFIG_SYSFS),y)
 | |
| obj-$(CONFIG_DEBUG_INFO_BTF) += sysfs_btf.o
 | |
| endif
 | |
| ifeq ($(CONFIG_BPF_JIT),y)
 | |
| obj-$(CONFIG_BPF_SYSCALL) += bpf_struct_ops.o
 | |
| obj-${CONFIG_BPF_LSM} += bpf_lsm.o
 | |
| endif
 | |
| obj-$(CONFIG_BPF_PRELOAD) += preload/
 | |
| 
 | |
| obj-$(CONFIG_BPF_SYSCALL) += relo_core.o
 | |
| $(obj)/relo_core.o: $(srctree)/tools/lib/bpf/relo_core.c FORCE
 | |
| 	$(call if_changed_rule,cc_o_c)
 |