Subject: Re: [PATCH bpf v2] tools/bpf: properly account for libbfd variations

From: Stanislav Fomichev <[email-masked]>
Date: Tue, 15 Jan 2019 14:00:06 -0800

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 <[email-masked]>
> > ---
> >  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
>