lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20181217142854.GC26720@kernel.org>
Date:   Mon, 17 Dec 2018 11:28:54 -0300
From:   Arnaldo Carvalho de Melo <acme@...nel.org>
To:     Konstantin Khlebnikov <khlebnikov@...dex-team.ru>
Cc:     linux-kernel@...r.kernel.org,
        Peter Zijlstra <peterz@...radead.org>,
        Jiri Olsa <jolsa@...hat.com>, Ingo Molnar <mingo@...nel.org>
Subject: Re: [PATCH] tools/perf: fix silent build with 'make -s'

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@...dex-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@...nel.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@...hat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>
    Cc: Namhyung Kim <namhyung@...nel.org>
    Cc: David Ahern <dsahern@...il.com>
    Cc: Jiri Olsa <jolsa@...hat.com>
    Link: http://lkml.kernel.org/n/tip-uen6hzTvkqqngqwjma9yoEgw@git.kernel.org
    Signed-off-by: Ingo Molnar <mingo@...nel.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
 
 #

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ