public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] perf: config: add per-feature check flags
@ 2013-12-10 12:24 Jean Pihet
  2013-12-10 12:24 ` [PATCH 1/2] perf: " Jean Pihet
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Jean Pihet @ 2013-12-10 12:24 UTC (permalink / raw)
  To: linux-kernel, linaro-kernel, Jiri Olsa, Ingo Molnar, Arnaldo
  Cc: patches, Will Deacon, Jean Pihet

Add CFLAGS and LDFLAGS for each feature to be checked during the
build. This allows to pass particular flags and parameters to the
feature checks compilation.

Use the per-feature check flags for the unwinding feature in order
to correctly compile the test-all, libunwind and libunwind-debug-frame
feature checks.

This change set simplifies the flags passing mechanism between the
Makefiles in config/Makefile and config/feature-checks; this
could be farther optimized by moving the compilation flags to the
per-feature check flags for all features to be checked.

Tested on x86_64, ARMv7 and ARMv8 with and without LIBUNWIND_DIR
set in 'make -C tools/perf'


Jean Pihet (2):
  perf: add per-feature check flags
  perf: unwinding: use the per-feature check flags

 tools/perf/config/Makefile                | 52 ++++++++++++++++++-------------
 tools/perf/config/feature-checks/Makefile |  8 ++---
 2 files changed, 34 insertions(+), 26 deletions(-)

-- 
1.7.11.7


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] perf: add per-feature check flags
  2013-12-10 12:24 [PATCH v4 0/2] perf: config: add per-feature check flags Jean Pihet
@ 2013-12-10 12:24 ` Jean Pihet
  2013-12-11 11:08   ` [tip:perf/core] perf tools: Add " tip-bot for Jean Pihet
  2013-12-10 12:24 ` [PATCH 2/2] perf: unwinding: use the " Jean Pihet
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Jean Pihet @ 2013-12-10 12:24 UTC (permalink / raw)
  To: linux-kernel, linaro-kernel, Jiri Olsa, Ingo Molnar, Arnaldo
  Cc: patches, Will Deacon, Jean Pihet

Add CFLAGS and LDFLAGS for each feature to be checked. This allows
to pass flags and parameters to the feature checks compilation.
Also simplifies the feature check makefile, to come in a subsequent patch.

Signed-off-by: Jean Pihet <jean.pihet@linaro.org>
---
 tools/perf/config/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index bae1072..2afb132 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -102,7 +102,7 @@ endif
 
 feature_check = $(eval $(feature_check_code))
 define feature_check_code
-  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(LDFLAGS)" LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
+  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
 endef
 
 feature_set = $(eval $(feature_set_code))
-- 
1.7.11.7


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] perf: unwinding: use the per-feature check flags
  2013-12-10 12:24 [PATCH v4 0/2] perf: config: add per-feature check flags Jean Pihet
  2013-12-10 12:24 ` [PATCH 1/2] perf: " Jean Pihet
@ 2013-12-10 12:24 ` Jean Pihet
  2013-12-11 11:08   ` [tip:perf/core] perf unwinding: Use " tip-bot for Jean Pihet
  2013-12-10 12:26 ` [PATCH v4 0/2] perf: config: add " Ingo Molnar
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Jean Pihet @ 2013-12-10 12:24 UTC (permalink / raw)
  To: linux-kernel, linaro-kernel, Jiri Olsa, Ingo Molnar, Arnaldo
  Cc: patches, Will Deacon, Jean Pihet

Use the per-feature check flags for the unwinding feature in order
to correctly compile the test-all, libunwind and libunwind-debug-frame
feature checks.

Tested on x86_64, ARMv7 and ARMv8 with and without LIBUNWIND_DIR set
in 'make -C tools/perf'

Signed-off-by: Jean Pihet <jean.pihet@linaro.org>
Cc: Jiri Olsa <jolsa@redhat.com>
---
 tools/perf/config/Makefile                | 52 ++++++++++++++++++-------------
 tools/perf/config/feature-checks/Makefile |  8 ++---
 2 files changed, 34 insertions(+), 26 deletions(-)

diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 2afb132..5a1f4df 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -36,6 +36,30 @@ ifeq ($(ARCH),arm)
   LIBUNWIND_LIBS = -lunwind -lunwind-arm
 endif
 
+ifeq ($(LIBUNWIND_LIBS),)
+  NO_LIBUNWIND := 1
+else
+  #
+  # For linking with debug library, run like:
+  #
+  #   make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/
+  #
+  ifdef LIBUNWIND_DIR
+    LIBUNWIND_CFLAGS  = -I$(LIBUNWIND_DIR)/include
+    LIBUNWIND_LDFLAGS = -L$(LIBUNWIND_DIR)/lib
+  endif
+  LIBUNWIND_LDFLAGS += $(LIBUNWIND_LIBS)
+
+  # Set per-feature check compilation flags
+  FEATURE_CHECK_CFLAGS-libunwind = $(LIBUNWIND_CFLAGS)
+  FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS)
+  FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS)
+  FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS)
+  #  and the flags for the test-all case
+  FEATURE_CHECK_CFLAGS-all += $(LIBUNWIND_CFLAGS)
+  FEATURE_CHECK_LDFLAGS-all += $(LIBUNWIND_LDFLAGS)
+endif
+
 ifeq ($(NO_PERF_REGS),0)
   CFLAGS += -DHAVE_PERF_REGS_SUPPORT
 endif
@@ -102,7 +126,7 @@ endif
 
 feature_check = $(eval $(feature_check_code))
 define feature_check_code
-  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
+  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
 endef
 
 feature_set = $(eval $(feature_set_code))
@@ -305,21 +329,7 @@ ifndef NO_LIBELF
   endif # NO_DWARF
 endif # NO_LIBELF
 
-ifeq ($(LIBUNWIND_LIBS),)
-  NO_LIBUNWIND := 1
-endif
-
 ifndef NO_LIBUNWIND
-  #
-  # For linking with debug library, run like:
-  #
-  #   make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/
-  #
-  ifdef LIBUNWIND_DIR
-    LIBUNWIND_CFLAGS  := -I$(LIBUNWIND_DIR)/include
-    LIBUNWIND_LDFLAGS := -L$(LIBUNWIND_DIR)/lib
-  endif
-
   ifneq ($(feature-libunwind), 1)
     msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 1.1);
     NO_LIBUNWIND := 1
@@ -334,14 +344,12 @@ ifndef NO_LIBUNWIND
       # non-ARM has no dwarf_find_debug_frame() function:
       CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
     endif
-  endif
-endif
 
-ifndef NO_LIBUNWIND
-  CFLAGS += -DHAVE_LIBUNWIND_SUPPORT
-  EXTLIBS += $(LIBUNWIND_LIBS)
-  CFLAGS += $(LIBUNWIND_CFLAGS)
-  LDFLAGS += $(LIBUNWIND_LDFLAGS)
+    CFLAGS += -DHAVE_LIBUNWIND_SUPPORT
+    EXTLIBS += $(LIBUNWIND_LIBS)
+    CFLAGS += $(LIBUNWIND_CFLAGS)
+    LDFLAGS += $(LIBUNWIND_LDFLAGS)
+  endif # ifneq ($(feature-libunwind), 1)
 endif
 
 ifndef NO_LIBAUDIT
diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
index b8bb749..bc86462 100644
--- a/tools/perf/config/feature-checks/Makefile
+++ b/tools/perf/config/feature-checks/Makefile
@@ -32,12 +32,12 @@ CC := $(CC) -MD
 
 all: $(FILES)
 
-BUILD = $(CC) $(CFLAGS) $(LDFLAGS) -o $(OUTPUT)$@ $@.c
+BUILD = $(CC) $(CFLAGS) -o $(OUTPUT)$@ $@.c $(LDFLAGS)
 
 ###############################
 
 test-all:
-	$(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma $(LIBUNWIND_LIBS) -lelf -laudit -I/usr/include/slang -lslang $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl
+	$(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -laudit -I/usr/include/slang -lslang $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl
 
 test-hello:
 	$(BUILD)
@@ -70,10 +70,10 @@ test-libnuma:
 	$(BUILD) -lnuma
 
 test-libunwind:
-	$(BUILD) $(LIBUNWIND_LIBS) -lelf
+	$(BUILD) -lelf
 
 test-libunwind-debug-frame:
-	$(BUILD) $(LIBUNWIND_LIBS) -lelf
+	$(BUILD) -lelf
 
 test-libaudit:
 	$(BUILD) -laudit
-- 
1.7.11.7


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 0/2] perf: config: add per-feature check flags
  2013-12-10 12:24 [PATCH v4 0/2] perf: config: add per-feature check flags Jean Pihet
  2013-12-10 12:24 ` [PATCH 1/2] perf: " Jean Pihet
  2013-12-10 12:24 ` [PATCH 2/2] perf: unwinding: use the " Jean Pihet
@ 2013-12-10 12:26 ` Ingo Molnar
  2013-12-10 13:36 ` Jiri Olsa
  2013-12-10 13:55 ` [PATCH 1/2] perf tools: Automate setup of FEATURE_CHECK_(C|LD)FLAGS-all variables Jiri Olsa
  4 siblings, 0 replies; 9+ messages in thread
From: Ingo Molnar @ 2013-12-10 12:26 UTC (permalink / raw)
  To: Jean Pihet
  Cc: linux-kernel, linaro-kernel, Jiri Olsa, Arnaldo, patches,
	Will Deacon


* Jean Pihet <jean.pihet@linaro.org> wrote:

> Add CFLAGS and LDFLAGS for each feature to be checked during the
> build. This allows to pass particular flags and parameters to the
> feature checks compilation.
> 
> Use the per-feature check flags for the unwinding feature in order
> to correctly compile the test-all, libunwind and libunwind-debug-frame
> feature checks.
> 
> This change set simplifies the flags passing mechanism between the
> Makefiles in config/Makefile and config/feature-checks; this
> could be farther optimized by moving the compilation flags to the
> per-feature check flags for all features to be checked.
> 
> Tested on x86_64, ARMv7 and ARMv8 with and without LIBUNWIND_DIR
> set in 'make -C tools/perf'
> 
> 
> Jean Pihet (2):
>   perf: add per-feature check flags
>   perf: unwinding: use the per-feature check flags
> 
>  tools/perf/config/Makefile                | 52 ++++++++++++++++++-------------
>  tools/perf/config/feature-checks/Makefile |  8 ++---
>  2 files changed, 34 insertions(+), 26 deletions(-)

Acked-by: Ingo Molnar <mingo@kernel.org>

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v4 0/2] perf: config: add per-feature check flags
  2013-12-10 12:24 [PATCH v4 0/2] perf: config: add per-feature check flags Jean Pihet
                   ` (2 preceding siblings ...)
  2013-12-10 12:26 ` [PATCH v4 0/2] perf: config: add " Ingo Molnar
@ 2013-12-10 13:36 ` Jiri Olsa
  2013-12-10 13:55 ` [PATCH 1/2] perf tools: Automate setup of FEATURE_CHECK_(C|LD)FLAGS-all variables Jiri Olsa
  4 siblings, 0 replies; 9+ messages in thread
From: Jiri Olsa @ 2013-12-10 13:36 UTC (permalink / raw)
  To: Jean Pihet
  Cc: linux-kernel, linaro-kernel, Ingo Molnar, Arnaldo, patches,
	Will Deacon

On Tue, Dec 10, 2013 at 01:24:02PM +0100, Jean Pihet wrote:
> Add CFLAGS and LDFLAGS for each feature to be checked during the
> build. This allows to pass particular flags and parameters to the
> feature checks compilation.
> 
> Use the per-feature check flags for the unwinding feature in order
> to correctly compile the test-all, libunwind and libunwind-debug-frame
> feature checks.
> 
> This change set simplifies the flags passing mechanism between the
> Makefiles in config/Makefile and config/feature-checks; this
> could be farther optimized by moving the compilation flags to the
> per-feature check flags for all features to be checked.
> 
> Tested on x86_64, ARMv7 and ARMv8 with and without LIBUNWIND_DIR
> set in 'make -C tools/perf'
> 

Acked-by: Jiri Olsa <jolsa@redhat.com>

thanks,
jirka

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] perf tools: Automate setup of FEATURE_CHECK_(C|LD)FLAGS-all variables
  2013-12-10 12:24 [PATCH v4 0/2] perf: config: add per-feature check flags Jean Pihet
                   ` (3 preceding siblings ...)
  2013-12-10 13:36 ` Jiri Olsa
@ 2013-12-10 13:55 ` Jiri Olsa
  2013-12-10 15:55   ` Jean Pihet
  4 siblings, 1 reply; 9+ messages in thread
From: Jiri Olsa @ 2013-12-10 13:55 UTC (permalink / raw)
  To: Jean Pihet
  Cc: linux-kernel, linaro-kernel, Ingo Molnar, Arnaldo, patches,
	Will Deacon

On Tue, Dec 10, 2013 at 01:24:02PM +0100, Jean Pihet wrote:
> Add CFLAGS and LDFLAGS for each feature to be checked during the
> build. This allows to pass particular flags and parameters to the
> feature checks compilation.
> 
> Use the per-feature check flags for the unwinding feature in order
> to correctly compile the test-all, libunwind and libunwind-debug-frame
> feature checks.
> 
> This change set simplifies the flags passing mechanism between the
> Makefiles in config/Makefile and config/feature-checks; this
> could be farther optimized by moving the compilation flags to the
> per-feature check flags for all features to be checked.
> 
> Tested on x86_64, ARMv7 and ARMv8 with and without LIBUNWIND_DIR
> set in 'make -C tools/perf'
> 
> 
> Jean Pihet (2):
>   perf: add per-feature check flags
>   perf: unwinding: use the per-feature check flags
> 
>  tools/perf/config/Makefile                | 52 ++++++++++++++++++-------------
>  tools/perf/config/feature-checks/Makefile |  8 ++---
>  2 files changed, 34 insertions(+), 26 deletions(-)
> 

while at it, how about following update

thanks,
jirka


---
Instead of explicitly adding same value into
FEATURE_CHECK_(C|LD)FLAGS-all variables we can
do that automatically.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
---
 tools/perf/config/Makefile | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index f75d814..05fd0e2 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -55,9 +55,6 @@ else
   FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS)
   FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS)
   FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS)
-  #  and the flags for the test-all case
-  FEATURE_CHECK_CFLAGS-all += $(LIBUNWIND_CFLAGS)
-  FEATURE_CHECK_LDFLAGS-all += $(LIBUNWIND_LDFLAGS)
 endif
 
 ifeq ($(NO_PERF_REGS),0)
@@ -168,6 +165,17 @@ CORE_FEATURE_TESTS =			\
 	stackprotector-all		\
 	timerfd
 
+# Set FEATURE_CHECK_(C|LD)FLAGS-all for all CORE_FEATURE_TESTS features.
+# If in the future we need per-feature checks/flags for features not
+# mentioned in this list we need to refactor this ;-).
+set_test_all_flags = $(eval $(set_test_all_flags_code))
+define set_test_all_flags_code
+  FEATURE_CHECK_CFLAGS-all  += $(FEATURE_CHECK_CFLAGS-$(1))
+  FEATURE_CHECK_LDFLAGS-all += $(FEATURE_CHECK_LDFLAGS-$(1))
+endef
+
+$(foreach feat,$(CORE_FEATURE_TESTS),$(call set_test_all_flags,$(feat)))
+
 #
 # So here we detect whether test-all was rebuilt, to be able
 # to skip the print-out of the long features list if the file
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] perf tools: Automate setup of FEATURE_CHECK_(C|LD)FLAGS-all variables
  2013-12-10 13:55 ` [PATCH 1/2] perf tools: Automate setup of FEATURE_CHECK_(C|LD)FLAGS-all variables Jiri Olsa
@ 2013-12-10 15:55   ` Jean Pihet
  0 siblings, 0 replies; 9+ messages in thread
From: Jean Pihet @ 2013-12-10 15:55 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: linux-kernel@vger.kernel.org, linaro-kernel@lists.linaro.org,
	Ingo Molnar, Arnaldo, Patch Tracking, Will Deacon

Jiri,

On 10 December 2013 14:55, Jiri Olsa <jolsa@redhat.com> wrote:
> On Tue, Dec 10, 2013 at 01:24:02PM +0100, Jean Pihet wrote:
>> Add CFLAGS and LDFLAGS for each feature to be checked during the
>> build. This allows to pass particular flags and parameters to the
>> feature checks compilation.
>>
>> Use the per-feature check flags for the unwinding feature in order
>> to correctly compile the test-all, libunwind and libunwind-debug-frame
>> feature checks.
>>
>> This change set simplifies the flags passing mechanism between the
>> Makefiles in config/Makefile and config/feature-checks; this
>> could be farther optimized by moving the compilation flags to the
>> per-feature check flags for all features to be checked.
>>
>> Tested on x86_64, ARMv7 and ARMv8 with and without LIBUNWIND_DIR
>> set in 'make -C tools/perf'
>>
>>
>> Jean Pihet (2):
>>   perf: add per-feature check flags
>>   perf: unwinding: use the per-feature check flags
>>
>>  tools/perf/config/Makefile                | 52 ++++++++++++++++++-------------
>>  tools/perf/config/feature-checks/Makefile |  8 ++---
>>  2 files changed, 34 insertions(+), 26 deletions(-)
>>
>
> while at it, how about following update
Indeed the flags passing mechanism needs to be automated.
The code below looks great.

I propose to submit patches for a consolidation of the features check
Makefiles, i.e. for all features including test-all.
This is next on my ToDo list, is that OK to you?

>
> thanks,
> jirka

Jean

>
>
> ---
> Instead of explicitly adding same value into
> FEATURE_CHECK_(C|LD)FLAGS-all variables we can
> do that automatically.
>
> Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> ---
>  tools/perf/config/Makefile | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
> index f75d814..05fd0e2 100644
> --- a/tools/perf/config/Makefile
> +++ b/tools/perf/config/Makefile
> @@ -55,9 +55,6 @@ else
>    FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS)
>    FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS)
>    FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS)
> -  #  and the flags for the test-all case
> -  FEATURE_CHECK_CFLAGS-all += $(LIBUNWIND_CFLAGS)
> -  FEATURE_CHECK_LDFLAGS-all += $(LIBUNWIND_LDFLAGS)
>  endif
>
>  ifeq ($(NO_PERF_REGS),0)
> @@ -168,6 +165,17 @@ CORE_FEATURE_TESTS =                       \
>         stackprotector-all              \
>         timerfd
>
> +# Set FEATURE_CHECK_(C|LD)FLAGS-all for all CORE_FEATURE_TESTS features.
> +# If in the future we need per-feature checks/flags for features not
> +# mentioned in this list we need to refactor this ;-).
> +set_test_all_flags = $(eval $(set_test_all_flags_code))
> +define set_test_all_flags_code
> +  FEATURE_CHECK_CFLAGS-all  += $(FEATURE_CHECK_CFLAGS-$(1))
> +  FEATURE_CHECK_LDFLAGS-all += $(FEATURE_CHECK_LDFLAGS-$(1))
> +endef
> +
> +$(foreach feat,$(CORE_FEATURE_TESTS),$(call set_test_all_flags,$(feat)))
> +
>  #
>  # So here we detect whether test-all was rebuilt, to be able
>  # to skip the print-out of the long features list if the file
> --
> 1.8.3.1
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [tip:perf/core] perf tools: Add per-feature check flags
  2013-12-10 12:24 ` [PATCH 1/2] perf: " Jean Pihet
@ 2013-12-11 11:08   ` tip-bot for Jean Pihet
  0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jean Pihet @ 2013-12-11 11:08 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, hpa, mingo, will.deacon, jean.pihet, jolsa,
	tglx

Commit-ID:  ef517c6bee5d16404b06bee1d07f00ffb74fc21a
Gitweb:     http://git.kernel.org/tip/ef517c6bee5d16404b06bee1d07f00ffb74fc21a
Author:     Jean Pihet <jean.pihet@linaro.org>
AuthorDate: Tue, 10 Dec 2013 13:24:03 +0100
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 10 Dec 2013 16:51:12 -0300

perf tools: Add per-feature check flags

Add CFLAGS and LDFLAGS for each feature to be checked. This allows to
pass flags and parameters to the feature checks compilation.  Also
simplifies the feature check makefile, to come in a subsequent patch.

Signed-off-by: Jean Pihet <jean.pihet@linaro.org>
Acked-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linaro-kernel@lists.linaro.org
Cc: patches@linaro.org
Link: http://lkml.kernel.org/r/1386678244-13535-2-git-send-email-jean.pihet@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/config/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index bae1072..2afb132 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -102,7 +102,7 @@ endif
 
 feature_check = $(eval $(feature_check_code))
 define feature_check_code
-  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(LDFLAGS)" LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
+  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
 endef
 
 feature_set = $(eval $(feature_set_code))

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [tip:perf/core] perf unwinding: Use the per-feature check flags
  2013-12-10 12:24 ` [PATCH 2/2] perf: unwinding: use the " Jean Pihet
@ 2013-12-11 11:08   ` tip-bot for Jean Pihet
  0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jean Pihet @ 2013-12-11 11:08 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, hpa, mingo, will.deacon, jean.pihet, jolsa,
	tglx

Commit-ID:  1448fef40af6079de38380c3a81bcf9994a1037d
Gitweb:     http://git.kernel.org/tip/1448fef40af6079de38380c3a81bcf9994a1037d
Author:     Jean Pihet <jean.pihet@linaro.org>
AuthorDate: Tue, 10 Dec 2013 13:24:04 +0100
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 10 Dec 2013 16:51:12 -0300

perf unwinding: Use the per-feature check flags

Use the per-feature check flags for the unwinding feature in order to
correctly compile the test-all, libunwind and libunwind-debug-frame
feature checks.

Tested on x86_64, ARMv7 and ARMv8 with and without LIBUNWIND_DIR set in
'make -C tools/perf'

Signed-off-by: Jean Pihet <jean.pihet@linaro.org>
Acked-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linaro-kernel@lists.linaro.org
Cc: patches@linaro.org
Link: http://lkml.kernel.org/r/1386678244-13535-3-git-send-email-jean.pihet@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/config/Makefile                | 52 ++++++++++++++++++-------------
 tools/perf/config/feature-checks/Makefile |  8 ++---
 2 files changed, 34 insertions(+), 26 deletions(-)

diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 2afb132..5a1f4df 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -36,6 +36,30 @@ ifeq ($(ARCH),arm)
   LIBUNWIND_LIBS = -lunwind -lunwind-arm
 endif
 
+ifeq ($(LIBUNWIND_LIBS),)
+  NO_LIBUNWIND := 1
+else
+  #
+  # For linking with debug library, run like:
+  #
+  #   make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/
+  #
+  ifdef LIBUNWIND_DIR
+    LIBUNWIND_CFLAGS  = -I$(LIBUNWIND_DIR)/include
+    LIBUNWIND_LDFLAGS = -L$(LIBUNWIND_DIR)/lib
+  endif
+  LIBUNWIND_LDFLAGS += $(LIBUNWIND_LIBS)
+
+  # Set per-feature check compilation flags
+  FEATURE_CHECK_CFLAGS-libunwind = $(LIBUNWIND_CFLAGS)
+  FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS)
+  FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS)
+  FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS)
+  #  and the flags for the test-all case
+  FEATURE_CHECK_CFLAGS-all += $(LIBUNWIND_CFLAGS)
+  FEATURE_CHECK_LDFLAGS-all += $(LIBUNWIND_LDFLAGS)
+endif
+
 ifeq ($(NO_PERF_REGS),0)
   CFLAGS += -DHAVE_PERF_REGS_SUPPORT
 endif
@@ -102,7 +126,7 @@ endif
 
 feature_check = $(eval $(feature_check_code))
 define feature_check_code
-  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
+  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
 endef
 
 feature_set = $(eval $(feature_set_code))
@@ -305,21 +329,7 @@ ifndef NO_LIBELF
   endif # NO_DWARF
 endif # NO_LIBELF
 
-ifeq ($(LIBUNWIND_LIBS),)
-  NO_LIBUNWIND := 1
-endif
-
 ifndef NO_LIBUNWIND
-  #
-  # For linking with debug library, run like:
-  #
-  #   make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/
-  #
-  ifdef LIBUNWIND_DIR
-    LIBUNWIND_CFLAGS  := -I$(LIBUNWIND_DIR)/include
-    LIBUNWIND_LDFLAGS := -L$(LIBUNWIND_DIR)/lib
-  endif
-
   ifneq ($(feature-libunwind), 1)
     msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 1.1);
     NO_LIBUNWIND := 1
@@ -334,14 +344,12 @@ ifndef NO_LIBUNWIND
       # non-ARM has no dwarf_find_debug_frame() function:
       CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
     endif
-  endif
-endif
 
-ifndef NO_LIBUNWIND
-  CFLAGS += -DHAVE_LIBUNWIND_SUPPORT
-  EXTLIBS += $(LIBUNWIND_LIBS)
-  CFLAGS += $(LIBUNWIND_CFLAGS)
-  LDFLAGS += $(LIBUNWIND_LDFLAGS)
+    CFLAGS += -DHAVE_LIBUNWIND_SUPPORT
+    EXTLIBS += $(LIBUNWIND_LIBS)
+    CFLAGS += $(LIBUNWIND_CFLAGS)
+    LDFLAGS += $(LIBUNWIND_LDFLAGS)
+  endif # ifneq ($(feature-libunwind), 1)
 endif
 
 ifndef NO_LIBAUDIT
diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
index b8bb749..bc86462 100644
--- a/tools/perf/config/feature-checks/Makefile
+++ b/tools/perf/config/feature-checks/Makefile
@@ -32,12 +32,12 @@ CC := $(CC) -MD
 
 all: $(FILES)
 
-BUILD = $(CC) $(CFLAGS) $(LDFLAGS) -o $(OUTPUT)$@ $@.c
+BUILD = $(CC) $(CFLAGS) -o $(OUTPUT)$@ $@.c $(LDFLAGS)
 
 ###############################
 
 test-all:
-	$(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma $(LIBUNWIND_LIBS) -lelf -laudit -I/usr/include/slang -lslang $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl
+	$(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -laudit -I/usr/include/slang -lslang $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl
 
 test-hello:
 	$(BUILD)
@@ -70,10 +70,10 @@ test-libnuma:
 	$(BUILD) -lnuma
 
 test-libunwind:
-	$(BUILD) $(LIBUNWIND_LIBS) -lelf
+	$(BUILD) -lelf
 
 test-libunwind-debug-frame:
-	$(BUILD) $(LIBUNWIND_LIBS) -lelf
+	$(BUILD) -lelf
 
 test-libaudit:
 	$(BUILD) -laudit

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-12-11 11:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-10 12:24 [PATCH v4 0/2] perf: config: add per-feature check flags Jean Pihet
2013-12-10 12:24 ` [PATCH 1/2] perf: " Jean Pihet
2013-12-11 11:08   ` [tip:perf/core] perf tools: Add " tip-bot for Jean Pihet
2013-12-10 12:24 ` [PATCH 2/2] perf: unwinding: use the " Jean Pihet
2013-12-11 11:08   ` [tip:perf/core] perf unwinding: Use " tip-bot for Jean Pihet
2013-12-10 12:26 ` [PATCH v4 0/2] perf: config: add " Ingo Molnar
2013-12-10 13:36 ` Jiri Olsa
2013-12-10 13:55 ` [PATCH 1/2] perf tools: Automate setup of FEATURE_CHECK_(C|LD)FLAGS-all variables Jiri Olsa
2013-12-10 15:55   ` Jean Pihet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox