Patch "perf build: Fix build feature-dwarf_getlocations fail for old libdw" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    perf build: Fix build feature-dwarf_getlocations fail for old libdw

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     perf-build-fix-build-feature-dwarf_getlocations-fail.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 36b9ca97160d402ee5b72cf2e37b234b8ff9a67d
Author: Yang Jihong <yangjihong@xxxxxxxxxxxxx>
Date:   Thu Sep 19 09:35:12 2024 +0800

    perf build: Fix build feature-dwarf_getlocations fail for old libdw
    
    [ Upstream commit a530337ba9ef601c93ec378fd941be43f587d563 ]
    
    For libdw versions below 0.177, need to link libdl.a in addition to
    libbebl.a during static compilation, otherwise
    feature-dwarf_getlocations compilation will fail.
    
    Before:
    
      $ make LDFLAGS=-static
        BUILD:   Doing 'make -j20' parallel build
      <SNIP>
      Makefile.config:483: Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157
      <SNIP>
    
      $ cat ../build/feature/test-dwarf_getlocations.make.output
      /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libebl.a(eblclosebackend.o): in function `ebl_closebackend':
      (.text+0x20): undefined reference to `dlclose'
      collect2: error: ld returned 1 exit status
    
    After:
    
      $ make LDFLAGS=-static
      <SNIP>
        Auto-detecting system features:
      ...                                   dwarf: [ on  ]
      <SNIP>
    
        $ ./perf probe
       Usage: perf probe [<options>] 'PROBEDEF' ['PROBEDEF' ...]
          or: perf probe [<options>] --add 'PROBEDEF' [--add 'PROBEDEF' ...]
          or: perf probe [<options>] --del '[GROUP:]EVENT' ...
          or: perf probe --list [GROUP:]EVENT ...
      <SNIP>
    
    Fixes: 536661da6ea18fe6 ("perf: build: Only link libebl.a for old libdw")
    Reviewed-by: Leo Yan <leo.yan@xxxxxxx>
    Signed-off-by: Yang Jihong <yangjihong@xxxxxxxxxxxxx>
    Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>
    Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
    Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
    Cc: Ian Rogers <irogers@xxxxxxxxxx>
    Cc: Ingo Molnar <mingo@xxxxxxxxxx>
    Cc: James Clark <james.clark@xxxxxxx>
    Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
    Cc: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
    Cc: Leo Yan <leo.yan@xxxxxxx>
    Cc: Mark Rutland <mark.rutland@xxxxxxx>
    Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
    Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240919013513.118527-3-yangjihong@xxxxxxxxxxxxx
    Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index a0167244b2f7f..ead476b373f69 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -181,6 +181,9 @@ ifeq ($(findstring -static,${LDFLAGS}),-static)
   ifeq ($(shell test $(LIBDW_VERSION_2) -lt 177; echo $$?),0)
     DWARFLIBS += -lebl
   endif
+
+  # Must put -ldl after -lebl for dependency
+  DWARFLIBS += -ldl
 endif
 
 $(OUTPUT)test-dwarf.bin:
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index b452794c763ad..9fccdff682af7 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -152,7 +152,7 @@ ifdef LIBDW_DIR
 endif
 DWARFLIBS := -ldw
 ifeq ($(findstring -static,${LDFLAGS}),-static)
-  DWARFLIBS += -lelf -ldl -lz -llzma -lbz2 -lzstd
+  DWARFLIBS += -lelf -lz -llzma -lbz2 -lzstd
 
   LIBDW_VERSION := $(shell $(PKG_CONFIG) --modversion libdw).0.0
   LIBDW_VERSION_1 := $(word 1, $(subst ., ,$(LIBDW_VERSION)))
@@ -163,6 +163,9 @@ ifeq ($(findstring -static,${LDFLAGS}),-static)
   ifeq ($(shell test $(LIBDW_VERSION_2) -lt 177; echo $$?),0)
     DWARFLIBS += -lebl
   endif
+
+  # Must put -ldl after -lebl for dependency
+  DWARFLIBS += -ldl
 endif
 FEATURE_CHECK_CFLAGS-libdw-dwarf-unwind := $(LIBDW_CFLAGS)
 FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) $(DWARFLIBS)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux