Skip to contentSkip to conversation

tools/perf: fix static linking with libdw from elfutils

PATCH New Konstantin Khlebnikov 2 participants 2 messages Aug 20, 2017 – Aug 24, 2017 perf events

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tools/perf: fix static linking with libdw from elfutils

Fix feature test for static libdw: link required dependencies. Backends of libebl are not statically linked thus libdl is required.

In Debian/Ubuntu libdw-dev includes libebl.a starting from 0.166-1.

---
 tools/perf/Makefile.config |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
tools/perf/Makefile.config +5 -5
index bdf0e87f9b29..b7ac6dce199b 100644
@@ -103,8 +103,12 @@ ifdef LIBDW_DIR
   LIBDW_CFLAGS  := -I$(LIBDW_DIR)/include
   LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib
 endif
+DWARFLIBS := -ldw
+ifeq ($(findstring -static,${LDFLAGS}),-static)
+  DWARFLIBS += -lelf -lebl -ldl -lz -llzma -lbz2
+endif
 FEATURE_CHECK_CFLAGS-libdw-dwarf-unwind := $(LIBDW_CFLAGS)
-FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) -ldw
+FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) $(DWARFLIBS)
 
 # for linking with debug library, run like:
 # make DEBUG=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/
@@ -360,10 +364,6 @@ ifndef NO_LIBELF
     else
       CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
       LDFLAGS += $(LIBDW_LDFLAGS)
-      DWARFLIBS := -ldw
-      ifeq ($(findstring -static,${LDFLAGS}),-static)
-	DWARFLIBS += -lelf -lebl -lz -llzma -lbz2
-      endif
       EXTLIBS += ${DWARFLIBS}
       $(call detected,CONFIG_DWARF)
     endif # PERF_HAVE_DWARF_REGS
#1 lore raw

[tip:perf/core] perf tools: Fix static linking with libdw from elfutils

perf tools: Fix static linking with libdw from elfutils
Commit-ID:  ba335df4ea2a5011002c5cde53bab6d7f5d714d8
Gitweb:     http://git.kernel.org/tip/ba335df4ea2a5011002c5cde53bab6d7f5d714d8
Author:     Konstantin Khlebnikov <[email protected]>
AuthorDate: Sun, 20 Aug 2017 14:39:27 +0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Tue, 22 Aug 2017 13:24:54 -0300

perf tools: Fix static linking with libdw from elfutils

Fix feature test for static libdw: link required dependencies. Backends of libebl are not statically linked thus libdl is required.

In Debian/Ubuntu libdw-dev includes libebl.a starting from 0.166-1.

---
 tools/perf/Makefile.config | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
tools/perf/Makefile.config +5 -5
index 37d203c..bb4735b 100644
@@ -103,8 +103,12 @@ ifdef LIBDW_DIR
   LIBDW_CFLAGS  := -I$(LIBDW_DIR)/include
   LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib
 endif
+DWARFLIBS := -ldw
+ifeq ($(findstring -static,${LDFLAGS}),-static)
+  DWARFLIBS += -lelf -lebl -ldl -lz -llzma -lbz2
+endif
 FEATURE_CHECK_CFLAGS-libdw-dwarf-unwind := $(LIBDW_CFLAGS)
-FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) -ldw
+FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) $(DWARFLIBS)
 
 # for linking with debug library, run like:
 # make DEBUG=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/
@@ -365,10 +369,6 @@ ifndef NO_LIBELF
     else
       CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
       LDFLAGS += $(LIBDW_LDFLAGS)
-      DWARFLIBS := -ldw
-      ifeq ($(findstring -static,${LDFLAGS}),-static)
-	DWARFLIBS += -lelf -lebl -lz -llzma -lbz2
-      endif
       EXTLIBS += ${DWARFLIBS}
       $(call detected,CONFIG_DWARF)
     endif # PERF_HAVE_DWARF_REGS