Re: [PATCH] perf tools: Add EXCLUDE_EXTLIBS and EXTRA_PERFLIBS to makefile

From: David Carrillo-Cisneros
Date: Thu May 25 2017 - 18:11:06 EST


+Jiri

On Wed, May 17, 2017 at 1:26 PM, David Carrillo-Cisneros
<davidcc@xxxxxxxxxx> wrote:
> The goal is to allow users to override linking of libraries that
> were automatically added to PERFLIBS.
>
> EXCLUDE_EXTLIBS contains linker flags to be removed from LIBS
> while EXTRA_PERFLIBS contains linker flags to be added.
>
> My use case is to force certain library to be build statically,
> e.g. for libelf:
>
> EXCLUDE_EXTLIBS=-lelf EXTRA_PERFLIBS=path/libelf.a
>
> Signed-off-by: David Carrillo-Cisneros <davidcc@xxxxxxxxxx>
> ---
> tools/perf/Makefile.perf | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index 79fe31f20a17..685443085e1a 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -33,6 +33,11 @@ include ../scripts/utilities.mak
> #
> # Define EXTRA_CFLAGS=-m64 or EXTRA_CFLAGS=-m32 as appropriate for cross-builds.
> #
> +# Define EXCLUDE_EXTLIBS=-lmylib to exclude libmylib from the auto-generated
> +# EXTLIBS.
> +#
> +# Define EXTRA_PERFLIBS to pass extra libraries to PERFLIBS.
> +#
> # Define NO_DWARF if you do not want debug-info analysis feature at all.
> #
> # Define WERROR=0 to disable treating any warnings as errors.
> @@ -352,7 +357,8 @@ ifdef ASCIIDOC8
> export ASCIIDOC8
> endif
>
> -LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group
> +EXTLIBS := $(call filter-out,$(EXCLUDE_EXTLIBS),$(EXTLIBS))
> +LIBS = -Wl,--whole-archive $(PERFLIBS) $(EXTRA_PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group
>
> ifeq ($(USE_CLANG), 1)
> CLANGLIBS_LIST = AST Basic CodeGen Driver Frontend Lex Tooling Edit Sema Analysis Parse Serialization
> --
> 2.13.0.303.g4ebf302169-goog
>