From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
Paul Mackerras <paulus@samba.org>, Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Namhyung Kim <namhyung.kim@lge.com>,
Markus Trippelsdorf <markus@trippelsdorf.de>,
Mike Frysinger <vapier@gentoo.org>
Subject: [PATCH 10/12] perf tools: Convert to DEMANGLE_SUPPORT
Date: Fri, 28 Sep 2012 18:32:06 +0900 [thread overview]
Message-ID: <1348824728-14025-11-git-send-email-namhyung@kernel.org> (raw)
In-Reply-To: <1348824728-14025-1-git-send-email-namhyung@kernel.org>
From: Namhyung Kim <namhyung.kim@lge.com>
For building perf without name demangling, we can set NO_DEMANGLE=1 as
a argument of make. It then defines NO_DEMANGLE macro for C code to
do the proper handling. However it usually used in a negative
semantics - e.g. #ifndef - so we saw double negations which can be
misleading. Convert it to a positive form to make it more readable.
Also add _SUPPORT suffix for consistency and make PACKAGE variable has
a string value "perf".
Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
Cc: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/Makefile | 12 +++++++-----
tools/perf/util/symbol.h | 19 +++++++++++--------
2 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 45f8920bab2b..dd5b9a0507c7 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -696,36 +696,38 @@ else
endif
endif
-ifdef NO_DEMANGLE
- BASIC_CFLAGS += -DNO_DEMANGLE
-else
+ifndef NO_DEMANGLE
ifdef HAVE_CPLUS_DEMANGLE
EXTLIBS += -liberty
+ BASIC_CFLAGS += -DDEMANGLE_SUPPORT
BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
else
- FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -DPACKAGE='perf' -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
+ BASIC_CFLAGS += -DDEMANGLE_SUPPORT
else
FLAGS_BFD_IBERTY=$(FLAGS_BFD) -liberty
has_bfd_iberty := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY))
ifeq ($(has_bfd_iberty),y)
EXTLIBS += -lbfd -liberty
+ BASIC_CFLAGS += -DDEMANGLE_SUPPORT
else
FLAGS_BFD_IBERTY_Z=$(FLAGS_BFD_IBERTY) -lz
has_bfd_iberty_z := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY_Z))
ifeq ($(has_bfd_iberty_z),y)
EXTLIBS += -lbfd -liberty -lz
+ BASIC_CFLAGS += -DDEMANGLE_SUPPORT
else
FLAGS_CPLUS_DEMANGLE=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -liberty
has_cplus_demangle := $(call try-cc,$(SOURCE_CPLUS_DEMANGLE),$(FLAGS_CPLUS_DEMANGLE))
ifeq ($(has_cplus_demangle),y)
EXTLIBS += -liberty
+ BASIC_CFLAGS += -DDEMANGLE_SUPPORT
BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
else
msg := $(warning No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demangling)
- BASIC_CFLAGS += -DNO_DEMANGLE
endif
endif
endif
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
index 8b6ef7fac745..e1484bb080e6 100644
--- a/tools/perf/util/symbol.h
+++ b/tools/perf/util/symbol.h
@@ -18,26 +18,29 @@
#include <elf.h>
#endif
-#ifdef HAVE_CPLUS_DEMANGLE
+#ifdef DEMANGLE_SUPPORT
+
+# ifdef HAVE_CPLUS_DEMANGLE
extern char *cplus_demangle(const char *, int);
static inline char *bfd_demangle(void __maybe_unused *v, const char *c, int i)
{
return cplus_demangle(c, i);
}
-#else
-#ifdef NO_DEMANGLE
+# else /* HAVE_CPLUS_DEMANGLE */
+# define PACKAGE "perf"
+# include <bfd.h>
+# endif /* HAVE_CPLUS_DEMANGLE */
+
+#else /* DEMANGLE_SUPPORT */
+
static inline char *bfd_demangle(void __maybe_unused *v,
const char __maybe_unused *c,
int __maybe_unused i)
{
return NULL;
}
-#else
-#define PACKAGE 'perf'
-#include <bfd.h>
-#endif
-#endif
+#endif /* DEMANGLE_SUPPORT */
int hex2u64(const char *ptr, u64 *val);
char *strxfrchar(char *s, char from, char to);
--
1.7.11.4
next prev parent reply other threads:[~2012-09-28 9:41 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-28 9:31 [PATCH 00/12] perf tools: Makefile and related cleanups Namhyung Kim
2012-09-28 9:31 ` [PATCH 01/12] perf tools: Move libdw availability check before arch Makefile Namhyung Kim
2012-10-05 8:28 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:31 ` [PATCH 02/12] perf tools: Remove unused PYRF_OBJS variable on Makefile Namhyung Kim
2012-10-05 8:29 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:31 ` [PATCH 03/12] perf tools: Convert to LIBELF_SUPPORT Namhyung Kim
2012-10-05 8:30 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:32 ` [PATCH 04/12] perf tools: Convert to LIBUNWIND_SUPPORT Namhyung Kim
2012-10-01 8:45 ` Jiri Olsa
2012-10-05 8:31 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:32 ` [PATCH 05/12] perf tools: Convert to LIBAUDIT_SUPPORT Namhyung Kim
2012-10-05 8:32 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:32 ` [PATCH 06/12] perf tools: Convert to NEWT_SUPPORT Namhyung Kim
2012-10-05 8:33 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:32 ` [PATCH 07/12] perf tools: Convert to GTK2_SUPPORT Namhyung Kim
2012-10-05 8:34 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:32 ` [PATCH 08/12] perf tools: Convert to LIBPERL_SUPPORT Namhyung Kim
2012-09-28 9:32 ` [PATCH 09/12] perf tools: Convert to LIBPYTHON_SUPPORT Namhyung Kim
2012-09-28 9:32 ` Namhyung Kim [this message]
2012-09-28 9:32 ` [PATCH 11/12] perf tools: Convert to BACKTRACE_SUPPORT Namhyung Kim
2012-09-30 23:40 ` Irina Tirdea
2012-10-01 13:54 ` Namhyung Kim
2012-10-01 14:24 ` Arnaldo Carvalho de Melo
2012-10-01 16:32 ` [PATCH v2 " Namhyung Kim
2012-10-05 8:55 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2012-09-28 9:32 ` [PATCH 12/12] perf tools: Convert to HAVE_STRLCPY Namhyung Kim
2012-10-05 8:35 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1348824728-14025-11-git-send-email-namhyung@kernel.org \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=linux-kernel@vger.kernel.org \
--cc=markus@trippelsdorf.de \
--cc=mingo@kernel.org \
--cc=namhyung.kim@lge.com \
--cc=paulus@samba.org \
--cc=vapier@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®