On 12/04, Leo Yan wrote: > When building perf with static linkage: > > make O=/build LDFLAGS="-static" -C tools/perf VF=1 DEBUG=1 > ... > LINK /build/util/bpf_skel/.tmp/bootstrap/bpftool > /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libelf.a(elf_compress.o): in function `__libelf_compress': > (.text+0x113): undefined reference to `ZSTD_createCCtx' > /usr/bin/ld: (.text+0x2a9): undefined reference to `ZSTD_compressStream2' > /usr/bin/ld: (.text+0x2b4): undefined reference to `ZSTD_isError' > /usr/bin/ld: (.text+0x2db): undefined reference to `ZSTD_freeCCtx' > /usr/bin/ld: (.text+0x5a0): undefined reference to `ZSTD_compressStream2' > /usr/bin/ld: (.text+0x5ab): undefined reference to `ZSTD_isError' > /usr/bin/ld: (.text+0x6b9): undefined reference to `ZSTD_freeCCtx' > /usr/bin/ld: (.text+0x835): undefined reference to `ZSTD_freeCCtx' > /usr/bin/ld: (.text+0x86f): undefined reference to `ZSTD_freeCCtx' > /usr/bin/ld: (.text+0x91b): undefined reference to `ZSTD_freeCCtx' > /usr/bin/ld: (.text+0xa12): undefined reference to `ZSTD_freeCCtx' > /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libelf.a(elf_compress.o): in function `__libelf_decompress': > (.text+0xbfc): undefined reference to `ZSTD_decompress' > /usr/bin/ld: (.text+0xc04): undefined reference to `ZSTD_isError' > /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libelf.a(elf_compress.o): in function `__libelf_decompress_elf': > (.text+0xd45): undefined reference to `ZSTD_decompress' > /usr/bin/ld: (.text+0xd4d): undefined reference to `ZSTD_isError' > collect2: error: ld returned 1 exit status > > Building bpftool with static linkage also fails with the same errors: > > make O=/build -C tools/bpf/bpftool/ V=1 > > To fix the issue, explicitly link libzstd. > > Signed-off-by: Leo Yan <leo.yan@xxxxxxx> > --- > tools/bpf/bpftool/Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile > index a4263dfb5e03..65b2671941e0 100644 > --- a/tools/bpf/bpftool/Makefile > +++ b/tools/bpf/bpftool/Makefile > @@ -130,8 +130,8 @@ include $(FEATURES_DUMP) > endif > endif > > -LIBS = $(LIBBPF) -lelf -lz > -LIBS_BOOTSTRAP = $(LIBBPF_BOOTSTRAP) -lelf -lz > +LIBS = $(LIBBPF) -lelf -lz -lzstd > +LIBS_BOOTSTRAP = $(LIBBPF_BOOTSTRAP) -lelf -lz -lzstd > ifeq ($(feature-libcap), 1) > CFLAGS += -DUSE_LIBCAP > LIBS += -lcap > -- > 2.34.1 > I'm not sure we 'offically' support -static builds, but this seems to be ok. Tangential: maybe time to switch to pkg-config for bpftool? IIRC, there is some flag to query for static lib dependencies... Will leave it up to Quentin.