* [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