Message ID | 20221214152037.395772-1-shen_jiamin@comp.nus.edu.sg (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | BPF |
Headers | show |
Series | tools/resolve_btfids: Use pkg-config to locate libelf | expand |
On Wed, Dec 14, 2022 at 11:20:37PM +0800, Shen Jiamin wrote: > When libelf was not installed in the standard location, it cannot be > located by the current building config. > > Use pkg-config to help locate libelf in such cases. > > Signed-off-by: Shen Jiamin <shen_jiamin@comp.nus.edu.sg> > --- > tools/bpf/resolve_btfids/Makefile | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile > index 19a3112e271a..5dcc31e01149 100644 > --- a/tools/bpf/resolve_btfids/Makefile > +++ b/tools/bpf/resolve_btfids/Makefile > @@ -56,11 +56,17 @@ $(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU > DESTDIR=$(LIBBPF_DESTDIR) prefix= EXTRA_CFLAGS="$(CFLAGS)" \ > $(abspath $@) install_headers > > +LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null) > +LIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf --libs 2>/dev/null || echo -lelf) > + > CFLAGS += -g \ > -I$(srctree)/tools/include \ > -I$(srctree)/tools/include/uapi \ > -I$(LIBBPF_INCLUDE) \ > - -I$(SUBCMD_SRC) > + -I$(SUBCMD_SRC) \ > + $(LIBELF_FLAGS) > + > +LDFLAGS += $(LIBELF_LIBS) > > LIBS = -lelf -lz now we can remove -lelf from LIBS.. or we could do: LIBS = $(LIBELF_LIBS) -lz jirka
Thank you, jirka, for your comment. Actually we can put that `LIBELF_LIBS` into `LIBS` directly. I've submitted a new patch. https://lore.kernel.org/bpf/20221215044703.400139-1-shen_jiamin@comp.nus.edu.sg/ Jiamin
diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile index 19a3112e271a..5dcc31e01149 100644 --- a/tools/bpf/resolve_btfids/Makefile +++ b/tools/bpf/resolve_btfids/Makefile @@ -56,11 +56,17 @@ $(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU DESTDIR=$(LIBBPF_DESTDIR) prefix= EXTRA_CFLAGS="$(CFLAGS)" \ $(abspath $@) install_headers +LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null) +LIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf --libs 2>/dev/null || echo -lelf) + CFLAGS += -g \ -I$(srctree)/tools/include \ -I$(srctree)/tools/include/uapi \ -I$(LIBBPF_INCLUDE) \ - -I$(SUBCMD_SRC) + -I$(SUBCMD_SRC) \ + $(LIBELF_FLAGS) + +LDFLAGS += $(LIBELF_LIBS) LIBS = -lelf -lz
When libelf was not installed in the standard location, it cannot be located by the current building config. Use pkg-config to help locate libelf in such cases. Signed-off-by: Shen Jiamin <shen_jiamin@comp.nus.edu.sg> --- tools/bpf/resolve_btfids/Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -- 2.34.1