From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: Re: [PATCH bpf] tools/bpf: properly account for libbfd variations Date: Tue, 15 Jan 2019 13:38:00 -0800 Message-ID: <20190115133800.658999bd@cakuba.netronome.com> References: <20190115195953.238574-1-sdf@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, quentin.monnet@netronome.com To: Stanislav Fomichev Return-path: Received: from mail-qk1-f193.google.com ([209.85.222.193]:38524 "EHLO mail-qk1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729583AbfAOViF (ORCPT ); Tue, 15 Jan 2019 16:38:05 -0500 Received: by mail-qk1-f193.google.com with SMTP id a1so2515866qkc.5 for ; Tue, 15 Jan 2019 13:38:05 -0800 (PST) In-Reply-To: <20190115195953.238574-1-sdf@google.com> Sender: netdev-owner@vger.kernel.org List-ID: On Tue, 15 Jan 2019 11:59:53 -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. > > Fixes: 29a9c10e4110 ("bpftool: make libbfd optional") > Signed-off-by: Stanislav Fomichev Minor nits below, in any case: Acked-by: Jakub Kicinski Thanks for making bpftool build! :) > diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile > index 492f0f24e2d3..af9a25bf480d 100644 > --- a/tools/bpf/bpftool/Makefile > +++ b/tools/bpf/bpftool/Makefile > @@ -92,10 +92,21 @@ BFD_SRCS = jit_disasm.c > > SRCS = $(filter-out $(BFD_SRCS),$(wildcard *.c)) > > -ifeq ($(feature-libbfd),1) > +ifeq ($(feature-libbfd), 1) nit: no space there is more common $ git grep 'ifeq' | grep ',[^ ]' | wc -l 482 $ git grep 'ifeq' | grep ', ' | wc -l 136 > +LIBS += -lbfd -ldl -lopcodes nit: should this be indented? > +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 Would this syntax: ifeq ($(feature-libbfd),1) LIBS += .. else ifeq ($(feature-libbfd-liberty),1) LIBS += .. else ifeq ($(feature-libbfd-liberty-z),1) LIBS += .. endif Not work? https://www.gnu.org/software/make/manual/html_node/Conditional-Syntax.html I don't think I've ever tried, but looks more concise.. > + endif > +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