linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] tools/perf: fix silent build with 'make -s'
@ 2018-12-17 11:47 Konstantin Khlebnikov
  2018-12-17 13:39 ` Konstantin Khlebnikov
  0 siblings, 1 reply; 3+ messages in thread
From: Konstantin Khlebnikov @ 2018-12-17 11:47 UTC (permalink / raw)
  To: linux-kernel, Arnaldo Carvalho de Melo; +Cc: Peter Zijlstra

tools/perf/Makefile conflicts with option '-j'.
The rest options must be passed as is.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
---
 tools/perf/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 7902a5681fc8..989c3d2f847b 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -16,7 +16,7 @@
 #
 # We don't want to pass along options like -j:
 #
-unexport MAKEFLAGS
+MAKEFLAGS := $(filter --j% -j,$(MAKEFLAGS))
 
 #
 # Do a parallel build with multiple jobs, based on the number of CPUs online


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

* Re: [PATCH] tools/perf: fix silent build with 'make -s'
  2018-12-17 11:47 [PATCH] tools/perf: fix silent build with 'make -s' Konstantin Khlebnikov
@ 2018-12-17 13:39 ` Konstantin Khlebnikov
  2018-12-17 14:28   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Konstantin Khlebnikov @ 2018-12-17 13:39 UTC (permalink / raw)
  To: linux-kernel, Arnaldo Carvalho de Melo; +Cc: Peter Zijlstra

On 17.12.2018 14:47, Konstantin Khlebnikov wrote:
> tools/perf/Makefile conflicts with option '-j'.
> The rest options must be passed as is.
> 
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
> ---
>   tools/perf/Makefile |    2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 7902a5681fc8..989c3d2f847b 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -16,7 +16,7 @@
>   #
>   # We don't want to pass along options like -j:
>   #
> -unexport MAKEFLAGS
> +MAKEFLAGS := $(filter --j% -j,$(MAKEFLAGS))
>   
>   #
>   # Do a parallel build with multiple jobs, based on the number of CPUs online
> 

Oops, this breaks static build because if LDFLAGS=-static is in command line then
all assignments in makefile are ignored while Makefile.config have a lot of that.

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

* Re: [PATCH] tools/perf: fix silent build with 'make -s'
  2018-12-17 13:39 ` Konstantin Khlebnikov
@ 2018-12-17 14:28   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-12-17 14:28 UTC (permalink / raw)
  To: Konstantin Khlebnikov
  Cc: linux-kernel, Peter Zijlstra, Jiri Olsa, Ingo Molnar

Em Mon, Dec 17, 2018 at 04:39:12PM +0300, Konstantin Khlebnikov escreveu:
> On 17.12.2018 14:47, Konstantin Khlebnikov wrote:
> > tools/perf/Makefile conflicts with option '-j'.
> > The rest options must be passed as is.
> > 
> > Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
> > ---
> >   tools/perf/Makefile |    2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> > index 7902a5681fc8..989c3d2f847b 100644
> > --- a/tools/perf/Makefile
> > +++ b/tools/perf/Makefile
> > @@ -16,7 +16,7 @@
> >   #
> >   # We don't want to pass along options like -j:
> >   #
> > -unexport MAKEFLAGS
> > +MAKEFLAGS := $(filter --j% -j,$(MAKEFLAGS))
> >   #
> >   # Do a parallel build with multiple jobs, based on the number of CPUs online
> > 
> 
> Oops, this breaks static build because if LDFLAGS=-static is in command line then
> all assignments in makefile are ignored while Makefile.config have a lot of that.

Please next time use 'git blame' and read the cset where the behaviour
you think is wrong was introduced, then CC the involved persons.

In this case, this is the cset where that line was introduced:

commit 684f434cc05a122938b75e055d7d799f1dd58d55
Author: Ingo Molnar <mingo@kernel.org>
Date:   Fri Oct 4 11:11:32 2013 +0200

    tools/perf/build: Exclude MAKEFLAGS from nested invocation
    
    In case the user specifies MAKEFLAGS as an environment variable,
    or uses 'make -jN' explicitly, the options can conflict and result in:
    
        BUILD: Doing 'make -j8' parallel build
        make[1]: warning: -jN forced in submake: disabling jobserver mode.
        GEN common-cmds.h
        make[1]: *** write jobserver: Bad file descriptor.  Stop.
    
    Make sure we invoke the main makefile in a pristine state.
    
    Users who want to do something non-standard can use the:
    
      make -f Makefile.perf
    
    method to invoke the makefile.
    
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lkml.kernel.org/n/tip-uen6hzTvkqqngqwjma9yoEgw@git.kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 6f6f13a13bb6..74f52d8f9631 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -1,3 +1,10 @@
+#
+# This is a simple wrapper Makefile that calls the main Makefile.perf
+# with a -j option to do parallel builds
+#
+# If you want to invoke the perf build in some non-standard way then
+# you can use the 'make -f Makefile.perf' method to invoke it.
+#
 
 #
 # Clear out the built-in rules GNU make defines by default (such as .o targets),
@@ -5,6 +12,11 @@
 #
 .SUFFIXES:
 
+#
+# We don't want to pass along options like -j:
+#
+unexport MAKEFLAGS
+
 #
 # Do a parallel build with multiple jobs, based on the number of CPUs online
 # in this system: 'make -j8' on a 8-CPU system, etc.
@@ -18,14 +30,12 @@ ifeq ($(JOBS),)
   endif
 endif
 
-export JOBS
-
 define print_msg
   @printf '    BUILD: Doing '\''make \033[33m-j'$(JOBS)'\033[m'\'' parallel build\n'
 endef
 
 define make
-  @$(MAKE) -f Makefile.perf --no-print-directory -j$(JOBS) $@
+  @$(MAKE) -f Makefile.perf --no-print-directory -j$(JOBS) O=$(O) $@
 endef
 
 #

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

end of thread, other threads:[~2018-12-17 14:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-17 11:47 [PATCH] tools/perf: fix silent build with 'make -s' Konstantin Khlebnikov
2018-12-17 13:39 ` Konstantin Khlebnikov
2018-12-17 14:28   ` Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).