Message ID | 20190115215248.57081-1-sdf@google.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf,v2] tools/bpf: properly account for libbfd variations | expand |
On Tue, 15 Jan 2019 13:52:48 -0800, Stanislav Fomichev wrote: > On some platforms, in order to link against libbfd, we need to > link against liberty and even possibly libz. Account for that > in the bpftool Makefile. We now have proper feature detection > for each case, so handle each one separately. > > See recent commit 14541b1e7e72 ("perf build: Don't unconditionally link the > libbfd feature test to -liberty and -lz") where I fixed feature > detection. > > v2 (addressed Jakub's nits): > * better syntax for 'else ifeq' > * no space between ifeq args > > Fixes: 29a9c10e4110 ("bpftool: make libbfd optional") > Signed-off-by: Stanislav Fomichev <sdf@google.com> > --- > tools/bpf/bpftool/Makefile | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile > index 492f0f24e2d3..fbf7e62a5b86 100644 > --- a/tools/bpf/bpftool/Makefile > +++ b/tools/bpf/bpftool/Makefile > @@ -93,9 +93,16 @@ BFD_SRCS = jit_disasm.c > SRCS = $(filter-out $(BFD_SRCS),$(wildcard *.c)) > > ifeq ($(feature-libbfd),1) > + LIBS += -lbfd -ldl -lopcodes > +else ifeq ($(feature-libbfd-liberty),1) > + LIBS += -lbfd -ldl -lopcodes -liberty > +else ifeq ($(feature-libbfd-liberty-z),1) > + LIBS += -lbfd -ldl -lopcodes -liberty -lz > +endif > + > +ifneq ($(filter -lbfd,$(EXTLIBS)),) Ah, I just noticed now that you use EXTLIBS here, not LIBS, is that on purpose? > CFLAGS += -DHAVE_LIBBFD_SUPPORT > SRCS += $(BFD_SRCS) > -LIBS += -lbfd -lopcodes > endif > > OBJS = $(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $(OUTPUT)disasm.o
On 01/15, Jakub Kicinski wrote: > On Tue, 15 Jan 2019 13:52:48 -0800, Stanislav Fomichev wrote: > > On some platforms, in order to link against libbfd, we need to > > link against liberty and even possibly libz. Account for that > > in the bpftool Makefile. We now have proper feature detection > > for each case, so handle each one separately. > > > > See recent commit 14541b1e7e72 ("perf build: Don't unconditionally link the > > libbfd feature test to -liberty and -lz") where I fixed feature > > detection. > > > > v2 (addressed Jakub's nits): > > * better syntax for 'else ifeq' > > * no space between ifeq args > > > > Fixes: 29a9c10e4110 ("bpftool: make libbfd optional") > > Signed-off-by: Stanislav Fomichev <sdf@google.com> > > --- > > tools/bpf/bpftool/Makefile | 9 ++++++++- > > 1 file changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile > > index 492f0f24e2d3..fbf7e62a5b86 100644 > > --- a/tools/bpf/bpftool/Makefile > > +++ b/tools/bpf/bpftool/Makefile > > @@ -93,9 +93,16 @@ BFD_SRCS = jit_disasm.c > > SRCS = $(filter-out $(BFD_SRCS),$(wildcard *.c)) > > > > ifeq ($(feature-libbfd),1) > > + LIBS += -lbfd -ldl -lopcodes > > +else ifeq ($(feature-libbfd-liberty),1) > > + LIBS += -lbfd -ldl -lopcodes -liberty > > +else ifeq ($(feature-libbfd-liberty-z),1) > > + LIBS += -lbfd -ldl -lopcodes -liberty -lz > > +endif > > + > > +ifneq ($(filter -lbfd,$(EXTLIBS)),) > > Ah, I just noticed now that you use EXTLIBS here, not LIBS, is that on > purpose? Nice catch! Should be LIBS, probably copy-pasted it from somewhere :-( > > > CFLAGS += -DHAVE_LIBBFD_SUPPORT > > SRCS += $(BFD_SRCS) > > -LIBS += -lbfd -lopcodes > > endif > > > > OBJS = $(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $(OUTPUT)disasm.o >
diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile index 492f0f24e2d3..fbf7e62a5b86 100644 --- a/tools/bpf/bpftool/Makefile +++ b/tools/bpf/bpftool/Makefile @@ -93,9 +93,16 @@ BFD_SRCS = jit_disasm.c SRCS = $(filter-out $(BFD_SRCS),$(wildcard *.c)) ifeq ($(feature-libbfd),1) + LIBS += -lbfd -ldl -lopcodes +else ifeq ($(feature-libbfd-liberty),1) + LIBS += -lbfd -ldl -lopcodes -liberty +else ifeq ($(feature-libbfd-liberty-z),1) + LIBS += -lbfd -ldl -lopcodes -liberty -lz +endif + +ifneq ($(filter -lbfd,$(EXTLIBS)),) CFLAGS += -DHAVE_LIBBFD_SUPPORT SRCS += $(BFD_SRCS) -LIBS += -lbfd -lopcodes endif OBJS = $(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $(OUTPUT)disasm.o
On some platforms, in order to link against libbfd, we need to link against liberty and even possibly libz. Account for that in the bpftool Makefile. We now have proper feature detection for each case, so handle each one separately. See recent commit 14541b1e7e72 ("perf build: Don't unconditionally link the libbfd feature test to -liberty and -lz") where I fixed feature detection. v2 (addressed Jakub's nits): * better syntax for 'else ifeq' * no space between ifeq args Fixes: 29a9c10e4110 ("bpftool: make libbfd optional") Signed-off-by: Stanislav Fomichev <sdf@google.com> --- tools/bpf/bpftool/Makefile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)