Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH] Perf: bfd.h/libbfd detection fails with recent binutils

84 views
Skip to first unread message

Markus Trippelsdorf

unread,
Sep 19, 2012, 3:29:13 AM9/19/12
to linux-...@vger.kernel.org, Mike Frysinger, Ingo Molnar, Arnaldo Carvalho de Melo, Paul Mackerras
With recent binutils I get:

perf % make
Makefile:668: No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demanglin

That happens because bfd.h now contains:

#if !defined PACKAGE && !defined PACKAGE_VERSION
#error config.h must be included before this header
#endif

I've reopened a bug in the hope that this check will be deleted:
http://sourceware.org/bugzilla/show_bug.cgi?id=14243

But in the meantime, the following patch fixes the problem

Signed-off-by: Markus Trippelsdorf <mar...@trippelsdorf.de>

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 35655c3..5604664 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -644,7 +644,7 @@ else
EXTLIBS += -liberty
BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
else
- FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lbfd
+ FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -DPACKAGE='perf' -lbfd
has_bfd := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD))
ifeq ($(has_bfd),y)
EXTLIBS += -lbfd
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
index 1fe733a..50a0912 100644
--- a/tools/perf/util/symbol.h
+++ b/tools/perf/util/symbol.h
@@ -26,6 +26,7 @@ static inline char *bfd_demangle(void __used *v, const char __used *c,
return NULL;
}
#else
+#define PACKAGE 'perf'
#include <bfd.h>
#endif
#endif

--
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

tip-bot for Markus Trippelsdorf

unread,
Sep 27, 2012, 1:40:51 AM9/27/12
to linux-ti...@vger.kernel.org, ac...@redhat.com, linux-...@vger.kernel.org, pau...@samba.org, mi...@redhat.com, h...@zytor.com, mi...@kernel.org, mar...@trippelsdorf.de, vap...@gentoo.org, tg...@linutronix.de
Commit-ID: 3ce711a6abc27abce1554e1d671a8762b7187690
Gitweb: http://git.kernel.org/tip/3ce711a6abc27abce1554e1d671a8762b7187690
Author: Markus Trippelsdorf <mar...@trippelsdorf.de>
AuthorDate: Wed, 19 Sep 2012 09:29:02 +0200
Committer: Arnaldo Carvalho de Melo <ac...@redhat.com>
CommitDate: Mon, 24 Sep 2012 12:05:02 -0300

perf tools: bfd.h/libbfd detection fails with recent binutils

With recent binutils I get:

perf % make
Makefile:668: No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demanglin

That happens because bfd.h now contains:

I've reopened a bug in the hope that this check will be deleted:
http://sourceware.org/bugzilla/show_bug.cgi?id=14243

But in the meantime, the following patch fixes the problem

Signed-off-by: Markus Trippelsdorf <mar...@trippelsdorf.de>
Cc: Ingo Molnar <mi...@redhat.com>
Cc: Mike Frysinger <vap...@gentoo.org>
Cc: Paul Mackerras <pau...@samba.org>
Link: http://lkml.kernel.org/r/20120919072902.GA262@x4
Signed-off-by: Arnaldo Carvalho de Melo <ac...@redhat.com>
---
tools/perf/Makefile | 2 +-
tools/perf/util/symbol.h | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 3ae6a59..251dcd7 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -715,7 +715,7 @@ else
EXTLIBS += -liberty
BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
else
- FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lbfd
+ FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -DPACKAGE='perf' -lbfd
has_bfd := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD))
ifeq ($(has_bfd),y)
EXTLIBS += -lbfd
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
index 4ff45e3..b441b07 100644
--- a/tools/perf/util/symbol.h
+++ b/tools/perf/util/symbol.h
@@ -34,6 +34,7 @@ static inline char *bfd_demangle(void __maybe_unused *v,
return NULL;
}
#else
+#define PACKAGE 'perf'
#include <bfd.h>
#endif
#endif
--
0 new messages