All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for David Carrillo-Cisneros <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: pjt@google.com, alexander.shishkin@linux.intel.com,
	jolsa@kernel.org, davidcc@google.com, acme@redhat.com,
	hpa@zytor.com, eranian@google.com, tglx@linutronix.de,
	mingo@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip:perf/core] perf tools: Robustify detection of clang binary
Date: Tue, 29 Aug 2017 14:23:55 -0700	[thread overview]
Message-ID: <tip-3866058ef15b6ae6f4ff48e088428b46bcc43fa1@git.kernel.org> (raw)
In-Reply-To: <20170827075442.108534-5-davidcc@google.com>

Commit-ID:  3866058ef15b6ae6f4ff48e088428b46bcc43fa1
Gitweb:     http://git.kernel.org/tip/3866058ef15b6ae6f4ff48e088428b46bcc43fa1
Author:     David Carrillo-Cisneros <davidcc@google.com>
AuthorDate: Sun, 27 Aug 2017 00:54:40 -0700
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 28 Aug 2017 16:44:46 -0300

perf tools: Robustify detection of clang binary

Prior to this patch, make scripts tested for CLANG with ifeq ($(CC),
clang), failing to detect CLANG binaries with different names. Fix it by
testing for the existence of __clang__ macro in the list of compiler
defined macros.

Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Paul Turner <pjt@google.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/20170827075442.108534-5-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/lib/api/Makefile                 | 2 +-
 tools/lib/subcmd/Makefile              | 2 +-
 tools/perf/Makefile.config             | 4 ++--
 tools/perf/util/intel-pt-decoder/Build | 2 +-
 tools/scripts/Makefile.include         | 4 +++-
 5 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
index 2538675..4563ba7 100644
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -19,7 +19,7 @@ LIBFILE = $(OUTPUT)libapi.a
 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
 
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
diff --git a/tools/lib/subcmd/Makefile b/tools/lib/subcmd/Makefile
index 3d1c3b5..7e9f03c 100644
--- a/tools/lib/subcmd/Makefile
+++ b/tools/lib/subcmd/Makefile
@@ -21,7 +21,7 @@ LIBFILE = $(OUTPUT)libsubcmd.a
 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
 
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 6a64c6b..63f534a 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -148,7 +148,7 @@ ifndef DEBUG
 endif
 
 ifeq ($(DEBUG),0)
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
@@ -184,7 +184,7 @@ ifdef PYTHON_CONFIG
   PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
   PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) -lutil
   PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
-  ifeq ($(CC), clang)
+  ifeq ($(CC_NO_CLANG), 1)
     PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
   endif
   FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
diff --git a/tools/perf/util/intel-pt-decoder/Build b/tools/perf/util/intel-pt-decoder/Build
index 7aca5d6..10e0814 100644
--- a/tools/perf/util/intel-pt-decoder/Build
+++ b/tools/perf/util/intel-pt-decoder/Build
@@ -25,6 +25,6 @@ $(OUTPUT)util/intel-pt-decoder/intel-pt-insn-decoder.o: util/intel-pt-decoder/in
 
 CFLAGS_intel-pt-insn-decoder.o += -I$(OUTPUT)util/intel-pt-decoder
 
-ifneq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 1)
   CFLAGS_intel-pt-insn-decoder.o += -Wno-override-init
 endif
diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
index ccad8ce..1e8b611 100644
--- a/tools/scripts/Makefile.include
+++ b/tools/scripts/Makefile.include
@@ -39,7 +39,9 @@ EXTRA_WARNINGS += -Wundef
 EXTRA_WARNINGS += -Wwrite-strings
 EXTRA_WARNINGS += -Wformat
 
-ifneq ($(CC), clang)
+CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
+
+ifeq ($(CC_NO_CLANG), 1)
 EXTRA_WARNINGS += -Wstrict-aliasing=3
 endif
 

  reply	other threads:[~2017-08-29 21:27 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-27  7:54 [PATCH 0/6] perf tools: Minor build fixes David Carrillo-Cisneros
2017-08-27  7:54 ` [PATCH 1/6] tools build tests: Don't hardcode gcc name David Carrillo-Cisneros
2017-08-29 21:22   ` [tip:perf/core] " tip-bot for David Carrillo-Cisneros
2017-08-27  7:54 ` [PATCH 2/6] perf tools: Allow external definition of flex and bison binary names David Carrillo-Cisneros
2017-08-29 21:23   ` [tip:perf/core] " tip-bot for David Carrillo-Cisneros
2017-08-27  7:54 ` [PATCH 3/6] tools lib: Allow external definition of CC, AR and LD David Carrillo-Cisneros
2017-08-29 21:23   ` [tip:perf/core] " tip-bot for David Carrillo-Cisneros
2017-08-27  7:54 ` [PATCH 4/6] perf tools: Robustify detection of clang binary David Carrillo-Cisneros
2017-08-29 21:23   ` tip-bot for David Carrillo-Cisneros [this message]
2017-08-27  7:54 ` [PATCH 5/6] perf tools: Remove BUG_ON char[] to bool implicit conversions David Carrillo-Cisneros
2017-08-28  9:33   ` Jiri Olsa
2017-08-28 18:30     ` [PATCH] " David Carrillo-Cisneros
2017-08-27  7:54 ` [PATCH 6/6] perf tools: Pass full path of FEATURES_DUMP David Carrillo-Cisneros
2017-08-29 21:24   ` [tip:perf/core] " tip-bot for David Carrillo-Cisneros
2017-08-28  9:34 ` [PATCH 0/6] perf tools: Minor build fixes Jiri Olsa
2017-08-28 14:16   ` Arnaldo Carvalho de Melo
2017-08-28 18:31     ` David Carrillo-Cisneros

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=tip-3866058ef15b6ae6f4ff48e088428b46bcc43fa1@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=acme@redhat.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=davidcc@google.com \
    --cc=eranian@google.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=pjt@google.com \
    --cc=tglx@linutronix.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.