xdp-project / xdp-tools

Utilities and example programs for use with XDP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error compiling libxdp on Ubuntu 20.04 with clang-11

carltimmer opened this issue · comments

Running things on Ubuntu 20.04 on which I have clang-11 installed

$ ld --version
LLD 11.0.0 (compatible with GNU linkers)

$ clang --version
Ubuntu clang version 11.0.0-2~ubuntu20.04.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

$ uname -a
Linux ejfat-4 5.15.0-46-generic #49~20.04.1-Ubuntu SMP Thu Aug 4 19:15:44 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Then I do the following:

git clone https://github.com/xdp-project/xdp-tools.git
cd xdl-tools
make libxdp

It makes Libbpf but chokes on the last part of making libxdp as you can see below.
Thanks for taking a look at this since I can't seem to sort it out!
Carl

$ make

lib
make[1]: Entering directory '/daqfs/xdp-tools/lib'

libbpf
make -C libbpf/src CFLAGS="-g -O2 -Werror -Wall -fPIC"
make[2]: Entering directory '/daqfs/xdp-tools/lib/libbpf/src'
MKDIR staticobjs
CC staticobjs/bpf.o
CC staticobjs/btf.o
CC staticobjs/libbpf.o
CC staticobjs/libbpf_errno.o
CC staticobjs/netlink.o
CC staticobjs/nlattr.o
CC staticobjs/str_error.o
CC staticobjs/libbpf_probes.o
CC staticobjs/bpf_prog_linfo.o
CC staticobjs/btf_dump.o
CC staticobjs/hashmap.o
CC staticobjs/ringbuf.o
CC staticobjs/strset.o
CC staticobjs/linker.o
CC staticobjs/gen_loader.o
CC staticobjs/relo_core.o
CC staticobjs/usdt.o
CC staticobjs/zip.o
AR libbpf.a
MKDIR sharedobjs
CC sharedobjs/bpf.o
CC sharedobjs/btf.o
CC sharedobjs/libbpf.o
CC sharedobjs/libbpf_errno.o
CC sharedobjs/netlink.o
CC sharedobjs/nlattr.o
CC sharedobjs/str_error.o
CC sharedobjs/libbpf_probes.o
CC sharedobjs/bpf_prog_linfo.o
CC sharedobjs/btf_dump.o
CC sharedobjs/hashmap.o
CC sharedobjs/ringbuf.o
CC sharedobjs/strset.o
CC sharedobjs/linker.o
CC sharedobjs/gen_loader.o
CC sharedobjs/relo_core.o
CC sharedobjs/usdt.o
CC sharedobjs/zip.o
CC libbpf.so.1.2.0
make[2]: Leaving directory '/daqfs/xdp-tools/lib/libbpf/src'
make -C libbpf/src install_headers DESTDIR=root
make[2]: Entering directory '/daqfs/xdp-tools/lib/libbpf/src'
INSTALL 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
make[2]: Leaving directory '/daqfs/xdp-tools/lib/libbpf/src'

libxdp
make[2]: Entering directory '/daqfs/xdp-tools/lib/libxdp'
make[2]: Warning: File '../libbpf/src/libbpf.a' has modification time 91 s in the future
mkdir -p ./staticobjs
/usr/bin/clang-11 -O2 -g -I../libbpf/src/root/usr/include -DHAVE_ZLIB -DHAVE_ELF -std=gnu11 -Wextra -Werror -DBPF_DIR_MNT="/sys/fs/bpf" -DBPF_OBJECT_PATH="/usr/local/lib/bpf" -DMAX_DISPATCHER_ACTIONS=10 -DTOOLS_VERSION=""1.3.1"" -DLIBBPF_VERSION="1.2.0" -DRUNDIR="/run" -DHAVE_LIBBPF_PERF_BUFFER__CONSUME -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID -DHAVE_LIBBPF_BTF__TYPE_CNT -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM -DHAVE_LIBBPF_BPF_PROGRAM__INSN_CNT -DHAVE_LIBBPF_BPF_PROGRAM__TYPE -DHAVE_LIBBPF_BPF_PROGRAM__FLAGS -DHAVE_LIBBPF_BPF_PROGRAM__EXPECTED_ATTACH_TYPE -DHAVE_LIBBPF_BPF_MAP_CREATE -DHAVE_LIBBPF_PERF_BUFFER__NEW_RAW -DHAVE_LIBBPF_BPF_XDP_ATTACH -DHAVE_LIBBPF_BPF_MAP__SET_AUTOCREATE -DHAVE_LIBBPF_BPF_PROG_TEST_RUN_OPTS -DHAVE_LIBBPF_BPF_XDP_QUERY -DHAVE_SECURE_GETENV -DDEBUG -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I../../headers -D LIBXDP_STATIC=1 -Wall -I../../headers -c libxdp.c -o staticobjs/libxdp.o
/usr/bin/clang-11 -O2 -g -I../libbpf/src/root/usr/include -DHAVE_ZLIB -DHAVE_ELF -std=gnu11 -Wextra -Werror -DBPF_DIR_MNT="/sys/fs/bpf" -DBPF_OBJECT_PATH="/usr/local/lib/bpf" -DMAX_DISPATCHER_ACTIONS=10 -DTOOLS_VERSION=""1.3.1"" -DLIBBPF_VERSION="1.2.0" -DRUNDIR="/run" -DHAVE_LIBBPF_PERF_BUFFER__CONSUME -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID -DHAVE_LIBBPF_BTF__TYPE_CNT -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM -DHAVE_LIBBPF_BPF_PROGRAM__INSN_CNT -DHAVE_LIBBPF_BPF_PROGRAM__TYPE -DHAVE_LIBBPF_BPF_PROGRAM__FLAGS -DHAVE_LIBBPF_BPF_PROGRAM__EXPECTED_ATTACH_TYPE -DHAVE_LIBBPF_BPF_MAP_CREATE -DHAVE_LIBBPF_PERF_BUFFER__NEW_RAW -DHAVE_LIBBPF_BPF_XDP_ATTACH -DHAVE_LIBBPF_BPF_MAP__SET_AUTOCREATE -DHAVE_LIBBPF_BPF_PROG_TEST_RUN_OPTS -DHAVE_LIBBPF_BPF_XDP_QUERY -DHAVE_SECURE_GETENV -DDEBUG -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I../../headers -D LIBXDP_STATIC=1 -Wall -I../../headers -c xsk.c -o staticobjs/xsk.o
m4 -DBPF_DIR_MNT="/sys/fs/bpf" -DBPF_OBJECT_PATH="/usr/local/lib/bpf" -DMAX_DISPATCHER_ACTIONS=10 -DTOOLS_VERSION=""1.3.1"" -DLIBBPF_VERSION="1.2.0" -DRUNDIR="/run" -DHAVE_LIBBPF_PERF_BUFFER__CONSUME -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID -DHAVE_LIBBPF_BTF__TYPE_CNT -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM -DHAVE_LIBBPF_BPF_PROGRAM__INSN_CNT -DHAVE_LIBBPF_BPF_PROGRAM__TYPE -DHAVE_LIBBPF_BPF_PROGRAM__FLAGS -DHAVE_LIBBPF_BPF_PROGRAM__EXPECTED_ATTACH_TYPE -DHAVE_LIBBPF_BPF_MAP_CREATE -DHAVE_LIBBPF_PERF_BUFFER__NEW_RAW -DHAVE_LIBBPF_BPF_XDP_ATTACH -DHAVE_LIBBPF_BPF_MAP__SET_AUTOCREATE -DHAVE_LIBBPF_BPF_PROG_TEST_RUN_OPTS -DHAVE_LIBBPF_BPF_XDP_QUERY -DHAVE_SECURE_GETENV -DDEBUG -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 xdp-dispatcher.c.in > xdp-dispatcher.c || ( ret=$?; rm -f xdp-dispatcher.c; exit $ret )
clang -S
-target bpf
-D BPF_TRACING
-Wno-visibility -fno-stack-protector -I../libbpf/src/root/usr/include -DBPF_DIR_MNT="/sys/fs/bpf" -DBPF_OBJECT_PATH="/usr/local/lib/bpf" -DMAX_DISPATCHER_ACTIONS=10 -DTOOLS_VERSION=""1.3.1"" -DLIBBPF_VERSION="1.2.0" -DRUNDIR="/run" -DHAVE_LIBBPF_PERF_BUFFER__CONSUME -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID -DHAVE_LIBBPF_BTF__TYPE_CNT -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM -DHAVE_LIBBPF_BPF_PROGRAM__INSN_CNT -DHAVE_LIBBPF_BPF_PROGRAM__TYPE -DHAVE_LIBBPF_BPF_PROGRAM__FLAGS -DHAVE_LIBBPF_BPF_PROGRAM__EXPECTED_ATTACH_TYPE -DHAVE_LIBBPF_BPF_MAP_CREATE -DHAVE_LIBBPF_PERF_BUFFER__NEW_RAW -DHAVE_LIBBPF_BPF_XDP_ATTACH -DHAVE_LIBBPF_BPF_MAP__SET_AUTOCREATE -DHAVE_LIBBPF_BPF_PROG_TEST_RUN_OPTS -DHAVE_LIBBPF_BPF_XDP_QUERY -DHAVE_SECURE_GETENV -DDEBUG -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I../../headers
-Wall
-Wno-unused-value
-Wno-pointer-sign
-Wno-compare-distinct-pointer-types
-Werror
-O2 -emit-llvm -c -g -o xdp-dispatcher.ll xdp-dispatcher.c
llc -march=bpf -filetype=obj -o xdp-dispatcher.o xdp-dispatcher.ll
/usr/bin/ld.lld-11 -r -b binary -o xdp-dispatcher.embed.o -z noexecstack --format=binary xdp-dispatcher.o
ld.lld-11: error: target emulation unknown: -m or at least one .o file required
make[2]: *** [Makefile:133: xdp-dispatcher.embed.o] Error 1
make[2]: Leaving directory '/daqfs/xdp-tools/lib/libxdp'
make[1]: *** [Makefile:20: libxdp] Error 2
make[1]: Leaving directory '/daqfs/xdp-tools/lib'
make: *** [Makefile:25: lib] Error 2