* Jiri Olsa <jo...@redhat.com> wrote:

> On Tue, Oct 08, 2013 at 10:46:10AM +0200, Ingo Molnar wrote:
> 
> SNIP
> 
> > So, this is a bit of a GNU Make mystery to me. If I have a failure for at 
> > least one of the features, and if I leave out that DUMMY then I get this 
> > printout:
> > 
> > ...                       libperl: [ OFF ]
> > ...                     libpython: [ on  ]
> > ...             libpython-version: [ on  ]
> > ...                      libslang: [ on  ]
> > ...                     libunwind: [ on  ]
> > ...                       on-exit: [ on  ]
> > ...                stackprotector: [ on  ]
> > ...            stackprotector-all: [ on  ]
> > 
> >     GEN python/perf.so
> > 
> > Note how the last entry is missing: volatile-register-var.
> > 
> > If I add the DUMMY I get the full printout:
> > 
> > ...                       libperl: [ OFF ]
> > ...                     libpython: [ on  ]
> > ...             libpython-version: [ on  ]
> > ...                      libslang: [ on  ]
> > ...                     libunwind: [ on  ]
> > ...                       on-exit: [ on  ]
> > ...                stackprotector: [ on  ]
> > ...            stackprotector-all: [ on  ]
> > ...         volatile-register-var: [ on  ]
> > 
> >     GEN python/perf.so
> > 
> > Somehow GNU Make appears to be eating terminal ouput - or I might have 
> > misunderstood something.
> > 
> > I hope it's the latter - but if it's the former then the DUMMY entry is 
> > needed :-/
> > 
> > Thanks,
> > 
> >     Ingo
> 
> I think the issue might be in the eval handling the $(info $(MSG)).
> With following change on top of your v2 patchset it works for me.

Indeed - and that works here too. Initially I was trying to solve it by 
forcing expansion:

        MSG := ...

but I forgot that expansion does not necessarily force evaluation of the 
expression and that Make can still optimize such assignments away if their 
result is not used by a target, correct?

I've applied your cleanup patch below and added your signoff - is that 
fine with you?

Thanks,

        Ingo

=====================>
Subject: tools/perf/build: Clean up feature_print_code()
From: Jiri Olsa <jo...@redhat.com>
Date: Tue, 8 Oct 2013 17:51:10 +0200

Remove DUMMY by making sure 'feature_print' is evaluated and thus
all messages are printed.

Signed-off-by: Jiri Olsa <jo...@redhat.com>
Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
Cc: Arnaldo Carvalho de Melo <a...@redhat.com>
Cc: Namhyung Kim <namhy...@kernel.org>
Cc: David Ahern <dsah...@gmail.com>
Link: http://lkml.kernel.org/r/20131008155110.ga15...@krava.redhat.com
Signed-off-by: Ingo Molnar <mi...@kernel.org>
---
 tools/perf/config/Makefile |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Index: tip/tools/perf/config/Makefile
===================================================================
--- tip.orig/tools/perf/config/Makefile
+++ tip/tools/perf/config/Makefile
@@ -180,21 +180,21 @@ endif
 #
 # Print the result of the feature test:
 #
-feature_print = $(eval $(feature_print_code))
+feature_print = $(eval $(feature_print_code)) $(info $(MSG))
+
 define feature_print_code
   ifeq ($(feature-$(1)), 1)
     MSG = $(shell printf '...%30s: [ \033[32mon\033[m  ]' $(1))
   else
     MSG = $(shell printf '...%30s: [ \033[31mOFF\033[m ]' $(1))
   endif
-  $(info $(MSG))
 endef
 
 #
 # Only print out our features if we rebuilt the testcases or if a test failed:
 #
 ifeq ($(test-all-failed), 1)
-  $(foreach feat,$(CORE_FEATURE_TESTS) DUMMY,$(call feature_print,$(feat)))
+  $(foreach feat,$(CORE_FEATURE_TESTS),$(call feature_print,$(feat)))
   $(info )
 endif
 

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

Reply via email to