linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Jiri Olsa <jolsa@redhat.com>, Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH] tools/perf: fix silent build with 'make -s'
Date: Mon, 17 Dec 2018 11:28:54 -0300	[thread overview]
Message-ID: <20181217142854.GC26720@kernel.org> (raw)
In-Reply-To: <1194e461-2385-bea9-dc85-d55d4ad89430@yandex-team.ru>

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
 
 #

      reply	other threads:[~2018-12-17 14:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

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=20181217142854.GC26720@kernel.org \
    --to=acme@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=khlebnikov@yandex-team.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    /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 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).