libbpf-bootstrap
libbpf-bootstrap copied to clipboard
libbpf: elf: minimal_bpf is not a valid eBPF object file
I am trying to run the minimal example, after I run make minial V=1, it failed. Could anyone help with this?
Here is the output:
root@myhost:/data01/libbpf-bootstrap/examples/c# make minimal V=1 mkdir -p .output cc -g -Wall -I.output -I../../libbpf/include/uapi -I../../vmlinux.h/include/x86/ -I/data01/libbpf-bootstrap/blazesym/capi/include -c minimal.bpf.c -o .output/minimal.bpf.o mkdir -p /data01/libbpf-bootstrap/examples/c/.output/bpftool make ARCH= CROSS_COMPILE= OUTPUT=/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -C /data01/libbpf-bootstrap/bpftool/src bootstrap make[1]: Entering directory '/data01/libbpf-bootstrap/bpftool/src' Makefile.feature:34: Probing: feature-clang-bpf-co-re Makefile.feature:35: printf '%s\n' 'struct s { int i; } attribute((preserve_access_index)); struct s foo;' | clang -g -target bpf -S -o - -x c - | grep -q BTF_KIND_VAR && (echo 1 && >&2 echo result: 1) || (echo 0 && >&2 echo result: 0)
:1:36: warning: unknown attribute 'preserve_access_index' ignored [-Wunknown-attributes] struct s { int i; } attribute((preserve_access_index)); struct s foo; ^ 1 warning generated. result: 0 Makefile.feature:54: Probing: feature-libbfd Makefile.feature:55: printf '%b\n' '#include <bfd.h>\n' 'int main(void) {' ' bfd_demangle(0, 0, 0);' ' return 0;' '}' | cc -Wall -Werror -x c - -lbfd -ldl -o /dev/null >/dev/null && (echo 1 && >&2 echo result: 1) || (echo 0 && >&2 echo result: 0) result: 1 Makefile.feature:86: Probing: feature-disassembler-four-args Makefile.feature:87: printf '%b\n' '#include <dis-asm.h>\n' 'int main(void) {' ' disassembler((enum bfd_architecture)0, 0, 0, NULL);' ' return 0;' '}' | cc -Wall -Werror -x c - -lbfd -lopcodes -S -o - >/dev/null && (echo 1 && >&2 echo result: 1) || (echo 0 && >&2 echo result: 0) result: 1 Makefile.feature:100: Probing: feature-disassembler-styled Makefile.feature:101: printf '%b\n' '#include <dis-asm.h>\n' 'int main(void) {' ' init_disassemble_info(NULL, 0, NULL, NULL);' ' return 0;' '}' | cc -Wall -Werror -x c - -lbfd -lopcodes -S -o - >/dev/null && (echo 1 && >&2 echo result: 1) || (echo 0 && >&2 echo result: 0) : In function ‘main’: :4:2: error: too many arguments to function ‘init_disassemble_info’ In file included from :1: /usr/include/dis-asm.h:340:13: note: declared here extern void init_disassemble_info (struct disassemble_info *dinfo, void *stream, ^~~~~~~~~~~~~~~~~~~~~ result: 0 Makefile.feature:120: Probing: feature-libcap Makefile.feature:121: printf '%b\n' '#include <sys/capability.h>\n' 'int main(void) {' ' cap_free(0);' ' return 0;' '}' | cc -Wall -Werror -x c - -lcap -S -o - >/dev/null && (echo 1 && >&2 echo result: 1) || (echo 0 && >&2 echo result: 0) result: 1 Makefile.feature:158: Probing: feature-llvm Makefile.feature:159: printf '%b\n' '#include <llvm-c/Core.h>\n' '#include <llvm-c/TargetMachine.h>\n' 'int main(void) {' ' char *triple = LLVMNormalizeTargetTriple("");' ' LLVMDisposeMessage(triple);' ' return 0;' '}' | cc -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -L/usr/lib/llvm-7/lib -Wall -Werror -x c - -lLLVM-7 -o /dev/null >/dev/null && (echo 1 && >&2 echo result: 1) || (echo 0 && >&2 echo result: 0) result: 1 ... libbfd: [ on ] ... clang-bpf-co-re: [ OFF ] ... llvm: [ on ] ... libcap: [ on ] mkdir -p /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf install -m 644 -t /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf /data01/libbpf-bootstrap/bpftool/libbpf/src/hashmap.h install -m 644 -t /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf /data01/libbpf-bootstrap/bpftool/libbpf/src/relo_core.h install -m 644 -t /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf /data01/libbpf-bootstrap/bpftool/libbpf/src/libbpf_internal.h mkdir -p /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/ mkdir -p /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/ make -C /data01/libbpf-bootstrap/bpftool/libbpf/src OBJDIR=/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf
PREFIX=/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf
ARCH= CROSS_COMPILE= CC="gcc" LD="ld" AR="ar" /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/libbpf.a install_headers make[2]: Entering directory '/data01/libbpf-bootstrap/bpftool/libbpf/src' mkdir -p /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c bpf.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/bpf.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c btf.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/btf.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c libbpf.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c libbpf_errno.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf_errno.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c netlink.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/netlink.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c nlattr.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/nlattr.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c str_error.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/str_error.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c libbpf_probes.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf_probes.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c bpf_prog_linfo.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/bpf_prog_linfo.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c btf_dump.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/btf_dump.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c hashmap.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/hashmap.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c ringbuf.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/ringbuf.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c strset.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/strset.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c linker.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/linker.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c gen_loader.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/gen_loader.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c relo_core.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/relo_core.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c usdt.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/usdt.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c zip.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/zip.o gcc -I. -I../include -I../include/uapi -g -O2 -Werror -Wall -std=gnu89 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-unknown-warning-option -Wno-format-overflow -c elf.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/elf.o ar rcs /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/libbpf.a /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/bpf.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/btf.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf_errno.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/netlink.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/nlattr.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/str_error.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf_probes.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/bpf_prog_linfo.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/btf_dump.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/hashmap.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/ringbuf.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/strset.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/linker.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/gen_loader.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/relo_core.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/usdt.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/zip.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/elf.o if [ ! -d '/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf' ]; then install -d -m 755 '/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf'; fi; install -m 644 bpf.h libbpf.h btf.h libbpf_common.h libbpf_legacy.h bpf_helpers.h bpf_helper_defs.h bpf_tracing.h bpf_endian.h bpf_core_read.h skel_internal.h libbpf_version.h usdt.bpf.h '/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf' make[2]: Leaving directory '/data01/libbpf-bootstrap/bpftool/libbpf/src' gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD main.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/main.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD common.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/common.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD json_writer.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/json_writer.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD gen.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/gen.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD btf.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/btf.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD xlated_dumper.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/xlated_dumper.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD btf_dumper.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/btf_dumper.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -c -MMD /data01/libbpf-bootstrap/bpftool/src/kernel/bpf/disasm.c -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/disasm.o gcc -O2 -W -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wundef -Wwrite-strings -DPACKAGE='"bpftool"' -D__EXPORTED_HEADERS__ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/ -I/data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include -I/data01/libbpf-bootstrap/bpftool/src/kernel/bpf/ -I/data01/libbpf-bootstrap/bpftool/include -I/data01/libbpf-bootstrap/bpftool/include/uapi -DUSE_LIBCAP -DHAVE_LLVM_SUPPORT -I/usr/lib/llvm-7/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -lLLVM-7 -DBPFTOOL_WITHOUT_SKELETONS -L/usr/lib/llvm-7/lib /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/main.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/common.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/json_writer.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/gen.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/btf.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/xlated_dumper.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/btf_dumper.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/disasm.o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/libbpf.a -lelf -lz -o /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/bpftool make[1]: Leaving directory '/data01/libbpf-bootstrap/bpftool/src' /data01/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/bpftool gen skeleton .output/minimal.bpf.o > .output/minimal.skel.h libbpf: elf: minimal_bpf is not a valid eBPF object file Error: failed to open BPF object file: BPF object format invalid make: *** [Makefile:116: .output/minimal.skel.h] Error 95 make: *** Deleting file '.output/minimal.skel.h'
It seems like your LLVM is aged, use a modern one instead.
It seems like your LLVM is aged, use a modern one instead.
Yes, I resolved it by using LLVM 16. By the way, which version is good for libbpf project?
No idea, generally, the newer, the better.
we compile-test libbpf-bootstrap examples with Clang/LLVM versions from v11 to v20 (see https://github.com/libbpf/libbpf-bootstrap/actions/runs/14683448006/job/41209016642)
It seems like your LLVM is aged, use a modern one instead.
Is that because LLVM aged? It seems that minimal.bpf.o was generated by cc, not clang with "-target bpf", i run into the same problem, if I use clang to generate minimal.bpf.o manually, bpftool gen skeleton works fine without error. But when I compile minimal by "make minimal", the same error is reported, I it still unresolved.
It seems like your LLVM is aged, use a modern one instead.
Is that because LLVM aged? It seems that minimal.bpf.o was generated by cc, not clang with "-target bpf", i run into the same problem, if I use clang to generate minimal.bpf.o manually, bpftool gen skeleton works fine without error. But when I compile minimal by "make minimal", the same error is reported, I it still unresolved.
To my case, I finially find out that the ../../vmlinux.h directory is empty. Get the vmlinux.h code zip package from github and make again, everything is ok now.
I finially make minimal successfull. but it can't run , is there anybody run into this problem ? libbpf: loading object 'minimal_bpf' from buffer libbpf: elf: section(2) .symtab, size 216, link 1, flags 0, type=2 libbpf: elf: section(3) tp/syscalls/sys_enter_write, size 104, link 0, flags 6, type=1 libbpf: sec 'tp/syscalls/sys_enter_write': found program 'handle_tp' at insn offset 0 (0 bytes), code size 13 insns (104 bytes) libbpf: elf: section(4) license, size 13, link 0, flags 3, type=1 libbpf: license of minimal_bpf is Dual BSD/GPL libbpf: elf: section(5) .bss, size 4, link 0, flags 3, type=8 libbpf: elf: section(6) .rodata, size 28, link 0, flags 2, type=1 libbpf: elf: section(7) .reltp/syscalls/sys_enter_write, size 32, link 2, flags 0, type=9 libbpf: elf: section(8) .BTF, size 594, link 0, flags 0, type=1 libbpf: elf: section(9) .BTF.ext, size 160, link 0, flags 0, type=1 libbpf: looking for externs among 9 symbols... libbpf: collected 0 externs total libbpf: map 'minimal_.bss' (global data): at sec_idx 5, offset 0, flags 400. libbpf: map 0 is "minimal_.bss" libbpf: map 'minimal_.rodata' (global data): at sec_idx 6, offset 0, flags 80. libbpf: map 1 is "minimal_.rodata" libbpf: sec '.reltp/syscalls/sys_enter_write': collecting relocation for section(3) 'tp/syscalls/sys_enter_write' libbpf: sec '.reltp/syscalls/sys_enter_write': relo #0: insn #2 against 'my_pid' libbpf: prog 'handle_tp': found data map 0 (minimal_.bss, sec 5, off 0) for insn 2 libbpf: sec '.reltp/syscalls/sys_enter_write': relo #1: insn #6 against '.rodata' libbpf: prog 'handle_tp': found data map 1 (minimal_.rodata, sec 6, off 0) for insn 6 libbpf: object 'minimal_bpf': failed (-22) to create BPF token from '/sys/fs/bpf', skipping optional step... libbpf: BTF loading error: -EINVAL libbpf: -- BEGIN BTF LOAD LOG --- magic: 0xeb9f version: 1 flags: 0x0 hdr_len: 24 type_off: 0 type_len: 272 str_off: 272 str_len: 298 btf_total_size: 594 [1] PTR (anon) type_id=0 [2] ENUM (anon) size=4 vlen=1 ctx val=1 [3] INT int size=4 bits_offset=0 nr_bits=32 encoding=SIGNED [4] TYPEDEF handle_tp type_id=2 [5] INT char size=1 bits_offset=0 nr_bits=8 encoding=SIGNED [6] ARRAY (anon) type_id=5 index_type_id=7 nr_elems=13 [7] INT ARRAY_SIZE_TYPE size=4 bits_offset=0 nr_bits=32 encoding=(none) [8] INT LICENSE size=1 bits_offset=0 nr_bits=8 encoding=(none) [9] INT my_pid size=1 bits_offset=0 nr_bits=8 encoding=(none) [10] CONST (anon) type_id=5 [11] ARRAY (anon) type_id=10 index_type_id=7 nr_elems=28 [12] INT handle_tp.____fmt size=1 bits_offset=0 nr_bits=8 encoding=(none) [13] STRUCT license size=13 vlen=1 LICENSE type_id=8 bits_offset=0 [14] STRUCT _bss size=4 vlen=1 my_pid type_id=9 bits_offset=0 [15] STRUCT _rodata size=28 vlen=1 handle_tp.____fmt type_id=12 bits_offset=0 Invalid name
-- END BTF LOAD LOG -- libbpf: Error loading .BTF into kernel: -EINVAL. BTF is optional, ignoring. libbpf: map 'minimal_.bss': skipped auto-creating... libbpf: map 'minimal_.rodata': skipped auto-creating... libbpf: prog 'handle_tp': BPF program load failed: -EINVAL libbpf: prog 'handle_tp': -- BEGIN PROG LOAD LOG -- unrecognized bpf_ld_imm64 insn -- END PROG LOAD LOG -- libbpf: prog 'handle_tp': failed to load: -EINVAL libbpf: failed to load object 'minimal_bpf' libbpf: failed to load BPF skeleton 'minimal_bpf': -EINVAL Failed to load and verify BPF skeleton
@radiance1984 try adding #define BPF_NO_GLOBAL_DATA before #include <bpf/bpf_helpers.h>. You have some very old kernel that doesn't support dots in variable names, and BPF_NO_GLOBAL_DATA is one way to prevent use of global data.