lkml.org 
[lkml]   [2019]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.20 250/352] perf build: Dont unconditionally link the libbfd feature test to -liberty and -lz
    Date
    4.20-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit 14541b1e7e723859ff2c75c6fc10cdbbec6b8c34 ]

    Current libbfd feature test unconditionally links against -liberty and -lz.
    While it's required on some systems (e.g. opensuse), it's completely
    unnecessary on the others, where only -lbdf is sufficient (debian).
    This patch streamlines (and renames) the following feature checks:

    feature-libbfd - only link against -lbfd (debian),
    see commit 2cf9040714f3 ("perf tools: Fix bfd
    dependency libraries detection")
    feature-libbfd-liberty - link against -lbfd and -liberty
    feature-libbfd-liberty-z - link against -lbfd, -liberty and -lz (opensuse),
    see commit 280e7c48c3b8 ("perf tools: fix BFD
    detection on opensuse")

    (feature-liberty{,-z} were renamed to feature-libbfd-liberty{,z}
    for clarity)

    The main motivation is to fix this feature test for bpftool which is
    currently broken on debian (libbfd feature shows OFF, but we still
    unconditionally link against -lbfd and it works).

    Tested on debian with only -lbfd installed (without -liberty); I'd
    appreciate if somebody on the other systems can test this new detection
    method.

    Signed-off-by: Stanislav Fomichev <sdf@google.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/4dfc634cfcfb236883971b5107cf3c28ec8a31be.1542328222.git.sdf@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/build/Makefile.feature | 4 ++--
    tools/build/feature/Makefile | 10 ++++----
    tools/perf/Makefile.config | 44 +++++++++++++++++++-----------------
    3 files changed, 30 insertions(+), 28 deletions(-)

    diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
    index d74bb9414d7c..81dda411e9d3 100644
    --- a/tools/build/Makefile.feature
    +++ b/tools/build/Makefile.feature
    @@ -80,8 +80,8 @@ FEATURE_TESTS_EXTRA := \
    cplus-demangle \
    hello \
    libbabeltrace \
    - liberty \
    - liberty-z \
    + libbfd-liberty \
    + libbfd-liberty-z \
    libunwind-debug-frame \
    libunwind-debug-frame-arm \
    libunwind-debug-frame-aarch64 \
    diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
    index 304b984f11b9..912b82d4b70a 100644
    --- a/tools/build/feature/Makefile
    +++ b/tools/build/feature/Makefile
    @@ -16,8 +16,8 @@ FILES= \
    test-libbfd.bin \
    test-disassembler-four-args.bin \
    test-reallocarray.bin \
    - test-liberty.bin \
    - test-liberty-z.bin \
    + test-libbfd-liberty.bin \
    + test-libbfd-liberty-z.bin \
    test-cplus-demangle.bin \
    test-libelf.bin \
    test-libelf-getphdrnum.bin \
    @@ -204,7 +204,7 @@ $(OUTPUT)test-libpython-version.bin:
    $(BUILD)

    $(OUTPUT)test-libbfd.bin:
    - $(BUILD) -DPACKAGE='"perf"' -lbfd -lz -liberty -ldl
    + $(BUILD) -DPACKAGE='"perf"' -lbfd -ldl

    $(OUTPUT)test-disassembler-four-args.bin:
    $(BUILD) -DPACKAGE='"perf"' -lbfd -lopcodes
    @@ -212,10 +212,10 @@ $(OUTPUT)test-disassembler-four-args.bin:
    $(OUTPUT)test-reallocarray.bin:
    $(BUILD)

    -$(OUTPUT)test-liberty.bin:
    +$(OUTPUT)test-libbfd-liberty.bin:
    $(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty

    -$(OUTPUT)test-liberty-z.bin:
    +$(OUTPUT)test-libbfd-liberty-z.bin:
    $(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty -lz

    $(OUTPUT)test-cplus-demangle.bin:
    diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
    index acbb657f7ce2..a0f366c7a318 100644
    --- a/tools/perf/Makefile.config
    +++ b/tools/perf/Makefile.config
    @@ -693,18 +693,20 @@ endif

    ifeq ($(feature-libbfd), 1)
    EXTLIBS += -lbfd
    +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,liberty)
    - $(call feature_check,liberty-z)
    - $(call feature_check,cplus-demangle)
    + $(call feature_check,libbfd-liberty)
    + $(call feature_check,libbfd-liberty-z)

    - ifeq ($(feature-liberty), 1)
    - EXTLIBS += -liberty
    + ifeq ($(feature-libbfd-liberty), 1)
    + EXTLIBS += -lbfd -liberty
    else
    - ifeq ($(feature-liberty-z), 1)
    - EXTLIBS += -liberty -lz
    + ifeq ($(feature-libbfd-liberty-z), 1)
    + EXTLIBS += -lbfd -liberty -lz
    endif
    endif
    endif
    @@ -714,24 +716,24 @@ ifdef NO_DEMANGLE
    else
    ifdef HAVE_CPLUS_DEMANGLE_SUPPORT
    EXTLIBS += -liberty
    - CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
    else
    - ifneq ($(feature-libbfd), 1)
    - ifneq ($(feature-liberty), 1)
    - ifneq ($(feature-liberty-z), 1)
    - # we dont have neither HAVE_CPLUS_DEMANGLE_SUPPORT
    - # or any of 'bfd iberty z' trinity
    - ifeq ($(feature-cplus-demangle), 1)
    - EXTLIBS += -liberty
    - CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
    - else
    - msg := $(warning No bfd.h/libbfd found, please install binutils-dev[el]/zlib-static/libiberty-dev to gain symbol demangling)
    - CFLAGS += -DNO_DEMANGLE
    - endif
    - endif
    + ifeq ($(filter -liberty,$(EXTLIBS)),)
    + $(call feature_check,cplus-demangle)
    +
    + # we dont have neither HAVE_CPLUS_DEMANGLE_SUPPORT
    + # or any of 'bfd iberty z' trinity
    + ifeq ($(feature-cplus-demangle), 1)
    + EXTLIBS += -liberty
    + else
    + msg := $(warning No bfd.h/libbfd found, please install binutils-dev[el]/zlib-static/libiberty-dev to gain symbol demangling)
    + CFLAGS += -DNO_DEMANGLE
    endif
    endif
    endif
    +
    + ifneq ($(filter -liberty,$(EXTLIBS)),)
    + CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
    + endif
    endif

    ifneq ($(filter -lbfd,$(EXTLIBS)),)
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-02-11 16:56    [W:7.287 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site