Re: [PATCH] perf tools: Add an option to build without libbfd

From: Arnaldo Carvalho de Melo
Date: Sat Sep 11 2021 - 15:07:31 EST


Em Fri, Sep 10, 2021 at 03:57:56PM -0700, Ian Rogers escreveu:
> Some distributions, like debian, don't link perf with libbfd. Add a
> build flag to make this configuration buildable and testable.
> This was inspired by:
> https://lore.kernel.org/linux-perf-users/20210910102307.2055484-1-tonyg@xxxxxxxxxxxxxxxxxxx/T/#u

Looks ok, applied.

- Arnaldo

> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/perf/Makefile.config | 47 ++++++++++++++++++++------------------
> 1 file changed, 25 insertions(+), 22 deletions(-)
>
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index b66cf128cbc7..446180401e26 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -827,33 +827,36 @@ else
> endif
> endif
>
> -ifeq ($(feature-libbfd), 1)
> - EXTLIBS += -lbfd -lopcodes
> -else
> - # we are on a system that requires -liberty and (maybe) -lz
> - # to link against -lbfd; test each case individually here
> -
> - # call all detections now so we get correct
> - # status in VF output
> - $(call feature_check,libbfd-liberty)
> - $(call feature_check,libbfd-liberty-z)
>
> - ifeq ($(feature-libbfd-liberty), 1)
> - EXTLIBS += -lbfd -lopcodes -liberty
> - FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -ldl
> +ifndef NO_LIBBFD
> + ifeq ($(feature-libbfd), 1)
> + EXTLIBS += -lbfd -lopcodes
> else
> - ifeq ($(feature-libbfd-liberty-z), 1)
> - EXTLIBS += -lbfd -lopcodes -liberty -lz
> - FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -lz -ldl
> + # we are on a system that requires -liberty and (maybe) -lz
> + # to link against -lbfd; test each case individually here
> +
> + # call all detections now so we get correct
> + # status in VF output
> + $(call feature_check,libbfd-liberty)
> + $(call feature_check,libbfd-liberty-z)
> +
> + ifeq ($(feature-libbfd-liberty), 1)
> + EXTLIBS += -lbfd -lopcodes -liberty
> + FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -ldl
> + else
> + ifeq ($(feature-libbfd-liberty-z), 1)
> + EXTLIBS += -lbfd -lopcodes -liberty -lz
> + FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -lz -ldl
> + endif
> endif
> + $(call feature_check,disassembler-four-args)
> endif
> - $(call feature_check,disassembler-four-args)
> -endif
>
> -ifeq ($(feature-libbfd-buildid), 1)
> - CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT
> -else
> - msg := $(warning Old version of libbfd/binutils things like PE executable profiling will not be available);
> + ifeq ($(feature-libbfd-buildid), 1)
> + CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT
> + else
> + msg := $(warning Old version of libbfd/binutils things like PE executable profiling will not be available);
> + endif
> endif
>
> ifdef NO_DEMANGLE
> --
> 2.33.0.309.g3052b89438-goog

--

- Arnaldo