iovisor / bcc

BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
Apache License 2.0
20.31k stars 3.85k forks source link

kernerl make fail when enable CONFIG_BPF_SYSCALL=y/CONFIG_NET_ACT_BPF=y #4428

Open Liu-Richard opened 1 year ago

Liu-Richard commented 1 year ago

OS: CentOS7.6 4.14.0-115.el7a.0.1.aarch64 issue: when I enable CONFIG_BPF_SYSCALL=y/CONFIG_NET_ACT_BPF=y through make menuconfig, and kernel make fails: CC arch/arm64/kernel/crash_dump.o CC [M] fs/cifs/smb2file.o CC [M] fs/cifs/xattr.o CC [M] fs/cifs/cifsacl.o CC kernel/bpf/tnum.o CC mm/list_lru.o CC mm/workingset.o kernel/bpf/verifier.c: In function ‘check_call’: kernel/bpf/verifier.c:1679:4: error: passing argument 1 of ‘verbose’ from incompatible pointer type [-Werror] verbose(env, "verifier bug\n"); ^ kernel/bpf/verifier.c:168:28: note: expected ‘const char ’ but argument is of type ‘struct bpf_verifier_env ’ static printf(1, 2) void verbose(const char fmt, ...) ^ CC mm/debug.o kernel/bpf/verifier.c: In function ‘fixup_bpf_calls’: kernel/bpf/verifier.c:4233:5: error: passing argument 1 of ‘verbose’ from incompatible pointer type [-Werror] verbose(env, "tail_call obusing map_ptr\n"); ^ kernel/bpf/verifier.c:168:28: note: expected ‘const char ’ but argument is of type ‘struct bpf_verifier_env *’ static printf(1, 2) void verbose(const char *fmt, ...) ^ CC mm/gup.o cc1: all warnings being treated as errors make[2]: [kernel/bpf/verifier.o] Error 1 make[2]: Waiting for unfinished jobs....

anybody knows why?

Liu-Richard commented 1 year ago

detail logs as follows: [root@localhost linux-4.14.0-115.el7.0.1.aarch64]# make scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h CC kernel/bounds.s CHK include/generated/bounds.h CHK include/generated/timeconst.h CC arch/arm64/kernel/asm-offsets.s CHK include/generated/asm-offsets.h CALL scripts/checksyscalls.sh CC scripts/mod/empty.o MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/modpost.o CC scripts/mod/devicetable-offsets.s CHK scripts/mod/devicetable-offsets.h HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/sumversion.o HOSTLD scripts/mod/modpost CC init/main.o CHK include/generated/compile.h CC init/version.o CC init/do_mounts.o CC init/do_mounts_initrd.o CC init/do_mounts_md.o AR init/mounts.o CC init/initramfs.o CC init/calibrate.o CC init/init_task.o AR init/built-in.o CC arch/arm64/kernel/debug-monitors.o CC arch/arm64/kernel/irq.o CC arch/arm64/kernel/fpsimd.o CC arch/arm64/kernel/process.o CC arch/arm64/kernel/ptrace.o CC arch/arm64/kernel/setup.o CC arch/arm64/kernel/signal.o CC arch/arm64/kernel/sys.o CC arch/arm64/kernel/stacktrace.o CC arch/arm64/kernel/time.o CC arch/arm64/kernel/traps.o CC arch/arm64/kernel/io.o CC arch/arm64/kernel/vdso.o CC arch/arm64/kernel/psci.o CC arch/arm64/kernel/cpu_ops.o CC arch/arm64/kernel/insn.o CC arch/arm64/kernel/return_address.o CC arch/arm64/kernel/cpuinfo.o CC arch/arm64/kernel/cpu_errata.o CC arch/arm64/kernel/cpufeature.o CC arch/arm64/kernel/alternative.o CC arch/arm64/kernel/cacheinfo.o CC arch/arm64/kernel/smp.o CC arch/arm64/kernel/smp_spin_table.o CC arch/arm64/kernel/topology.o CC arch/arm64/kernel/ftrace.o CC arch/arm64/kernel/arm64ksyms.o CC arch/arm64/kernel/module.o CC arch/arm64/kernel/perf_regs.o CC arch/arm64/kernel/perf_callchain.o CC arch/arm64/kernel/perf_event.o CC arch/arm64/kernel/hw_breakpoint.o CC arch/arm64/kernel/suspend.o CC arch/arm64/kernel/cpuidle.o CC arch/arm64/kernel/jump_label.o CC arch/arm64/kernel/kgdb.o CC arch/arm64/kernel/efi.o CC arch/arm64/kernel/pci.o CC arch/arm64/kernel/acpi.o CC arch/arm64/kernel/acpi_numa.o CC arch/arm64/kernel/acpi_parking_protocol.o CC arch/arm64/kernel/paravirt.o CC arch/arm64/kernel/hibernate.o CC arch/arm64/kernel/machine_kexec.o CC arch/arm64/kernel/crash_dump.o CC arch/arm64/kernel/ssbd.o CC arch/arm64/kernel/probes/kprobes.o CC arch/arm64/kernel/probes/decode-insn.o CC arch/arm64/kernel/probes/simulate-insn.o CC arch/arm64/kernel/probes/uprobes.o AR arch/arm64/kernel/probes/built-in.o AR arch/arm64/kernel/built-in.o CC arch/arm64/mm/dma-mapping.o CC arch/arm64/mm/extable.o CC arch/arm64/mm/fault.o CC arch/arm64/mm/init.o CC arch/arm64/mm/copypage.o CC arch/arm64/mm/flush.o CC arch/arm64/mm/ioremap.o CC arch/arm64/mm/mmap.o CC arch/arm64/mm/pgd.o CC arch/arm64/mm/mmu.o CC arch/arm64/mm/context.o CC arch/arm64/mm/pageattr.o CC arch/arm64/mm/hugetlbpage.o CC arch/arm64/mm/numa.o AR arch/arm64/mm/built-in.o CC arch/arm64/net/bpf_jit_comp.o AR arch/arm64/net/built-in.o CC arch/arm64/kvm/../../../virt/kvm/kvm_main.o CC arch/arm64/kvm/../../../virt/kvm/coalesced_mmio.o CC arch/arm64/kvm/../../../virt/kvm/eventfd.o CC arch/arm64/kvm/../../../virt/kvm/vfio.o CC arch/arm64/kvm/../../../virt/kvm/arm/arm.o CC arch/arm64/kvm/../../../virt/kvm/arm/mmu.o CC arch/arm64/kvm/../../../virt/kvm/arm/mmio.o CC arch/arm64/kvm/../../../virt/kvm/arm/psci.o CC arch/arm64/kvm/../../../virt/kvm/arm/perf.o CC arch/arm64/kvm/inject_fault.o CC arch/arm64/kvm/regmap.o CC arch/arm64/kvm/va_layout.o CC arch/arm64/kvm/handle_exit.o CC arch/arm64/kvm/guest.o CC arch/arm64/kvm/debug.o CC arch/arm64/kvm/reset.o CC arch/arm64/kvm/sys_regs.o CC arch/arm64/kvm/sys_regs_generic_v8.o CC arch/arm64/kvm/vgic-sys-reg-v3.o CC arch/arm64/kvm/../../../virt/kvm/arm/aarch32.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-init.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-irqfd.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v2.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v3.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-mmio.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-mmio-v2.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-mmio-v3.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-kvm-device.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.o CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-debug.o CC arch/arm64/kvm/../../../virt/kvm/irqchip.o CC arch/arm64/kvm/../../../virt/kvm/arm/arch_timer.o CC arch/arm64/kvm/../../../virt/kvm/arm/pmu.o AR arch/arm64/kvm/kvm.o CC arch/arm64/kvm/hyp/../../../../virt/kvm/arm/hyp/vgic-v2-sr.o CC arch/arm64/kvm/hyp/../../../../virt/kvm/arm/hyp/vgic-v3-sr.o CC arch/arm64/kvm/hyp/../../../../virt/kvm/arm/hyp/timer-sr.o CC arch/arm64/kvm/hyp/sysreg-sr.o CC arch/arm64/kvm/hyp/debug-sr.o CC arch/arm64/kvm/hyp/switch.o CC arch/arm64/kvm/hyp/tlb.o CC arch/arm64/kvm/hyp/s2-setup.o AR arch/arm64/kvm/hyp/built-in.o AR arch/arm64/kvm/built-in.o CC arch/arm64/crypto/aes-ce-cipher.o CC arch/arm64/crypto/aes-ce-ccm-glue.o AR arch/arm64/crypto/aes-ce-ccm.o CC arch/arm64/crypto/aes-glue-ce.o AR arch/arm64/crypto/aes-ce-blk.o CC arch/arm64/crypto/aes-glue-neon.o AR arch/arm64/crypto/aes-neon-blk.o CC arch/arm64/crypto/aes-cipher-glue.o AR arch/arm64/crypto/aes-arm64.o AR arch/arm64/crypto/built-in.o CC [M] arch/arm64/crypto/sha1-ce-glue.o LD [M] arch/arm64/crypto/sha1-ce.o CC [M] arch/arm64/crypto/sha2-ce-glue.o LD [M] arch/arm64/crypto/sha2-ce.o CC [M] arch/arm64/crypto/ghash-ce-glue.o LD [M] arch/arm64/crypto/ghash-ce.o CC [M] arch/arm64/crypto/crc32-ce-glue.o LD [M] arch/arm64/crypto/crc32-ce.o CC [M] arch/arm64/crypto/sha256-glue.o LD [M] arch/arm64/crypto/sha256-arm64.o CC kernel/fork.o CC kernel/exec_domain.o CC kernel/panic.o CC kernel/cpu.o CC kernel/exit.o CC kernel/softirq.o CC kernel/resource.o CC kernel/sysctl.o CC kernel/sysctl_binary.o CC kernel/capability.o CC kernel/ptrace.o CC kernel/user.o CC kernel/signal.o CC kernel/sys.o CC kernel/umh.o CC kernel/workqueue.o CC kernel/pid.o CC kernel/task_work.o CC kernel/extable.o CC kernel/params.o CC kernel/kthread.o CC kernel/sys_ni.o CC kernel/nsproxy.o CC kernel/notifier.o CC kernel/ksysfs.o CC kernel/cred.o CC kernel/reboot.o CC kernel/async.o CC kernel/range.o CC kernel/smpboot.o CC kernel/ucount.o CC kernel/rh_taint.o CC kernel/kmod.o CC kernel/groups.o CC kernel/bpf/core.o CC kernel/bpf/syscall.o CC kernel/bpf/verifier.o kernel/bpf/verifier.c: In function ‘check_call’: kernel/bpf/verifier.c:1679:4: error: passing argument 1 of ‘verbose’ from incompatible pointer type [-Werror] verbose(env, "verifier bug\n"); ^ kernel/bpf/verifier.c:168:28: note: expected ‘const char ’ but argument is of type ‘struct bpf_verifier_env ’ static printf(1, 2) void verbose(const char fmt, ...) ^ kernel/bpf/verifier.c: In function ‘fixup_bpf_calls’: kernel/bpf/verifier.c:4233:5: error: passing argument 1 of ‘verbose’ from incompatible pointer type [-Werror] verbose(env, "tail_call obusing map_ptr\n"); ^ kernel/bpf/verifier.c:168:28: note: expected ‘const char ’ but argument is of type ‘struct bpf_verifier_env *’ static printf(1, 2) void verbose(const char *fmt, ...) ^ cc1: all warnings being treated as errors make[2]: [kernel/bpf/verifier.o] Error 1 make[1]: [kernel/bpf] Error 2 make: *** [kernel] Error 2 [root@localhost linux-4.14.0-115.el7.0.1.aarch64]#