1. 01 9月, 2017 1 次提交
    • M
      kbuild: use $(abspath ...) instead of $(shell cd ... && /bin/pwd) · 8e9b4667
      Masahiro Yamada 提交于
      Kbuild conventionally uses $(shell cd ... && /bin/pwd) idiom to get
      the absolute path of the directory because GNU Make 3.80, the minimal
      supported version at that time, did not support $(abspath ...) or
      $(realpath ...).
      
      Commit 37d69ee3 ("docs: bump minimal GNU Make version to 3.81")
      dropped the GNU Make 3.80 support, so we are now allowed to use those
      make-builtin helpers.
      
      This conversion will provide better portability without relying on
      the pwd command or its location /bin/pwd.
      
      I am intentionally using $(realpath ...) instead $(abspath ...) in
      some places.  The difference between the two is $(realpath ...)
      returns an empty string if the given path does not exist.  It is
      convenient in places where we need to error-out if the makefile fails
      to create an output directory.
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Acked-by: NThierry Reding <treding@nvidia.com>
      8e9b4667
  2. 29 8月, 2017 1 次提交
  3. 06 6月, 2017 1 次提交
    • M
      kbuild: simplify silent build (-s) detection · 6f0fa58e
      Masahiro Yamada 提交于
      This allows to detect -s (--silent) option without checking GNU Make
      version.
      
      As commit e36aaea2 ("kbuild: Fix silent builds with make-4")
      pointed out, GNU Make 4.x changed the way/order it presents the
      command line options into MAKEFLAGS.
      
      In Make 3.8x, 's' is always the first in a group of short options.
      The group may be prefixed with '-' in some cases.
      
      In Make 4.x, 's' is always the last in a group of short options.
      
      As commit e6ac89fa ("kbuild: Correctly deal with make options
      which contain an 's'") addressed, we also need to deal with long
      options that contain 's', like --warn-undefined-variables.
      
      Test cases:
      
      [1] command line input:    make --silent
           -> MAKEFLAGS for Make 3.8x:    s
           -> MAKEFLAGS for Make 4.x :    s
      
      [2] command line input:    make -srR
           -> MAKEFLAGS for Make 3.8x:    sRr
           -> MAKEFLAGS for Make 4.x :    rRs
      
      [3] command line input:    make -s -rR --warn-undefined-variables
           -> MAKEFLAGS for Make 3.8x:    --warn-undefined-variables -sRr
           -> MAKEFLAGS for Make 4.x :    rRs --warn-undefined-variables
      
      My idea to cater to all the cases more easily is to filter out long
      options (--%), then search 's' with $(findstring ...).  This way will
      be more future-proof even if future versions of Make put 's' in the
      middle of the group.
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      6f0fa58e
  4. 04 3月, 2017 1 次提交
  5. 14 2月, 2017 1 次提交
  6. 27 1月, 2017 1 次提交
  7. 20 12月, 2013 2 次提交
  8. 11 10月, 2013 2 次提交
    • I
      tools: Harmonize the various build messages in perf, lib-traceevent, lib-lk · 65fb0992
      Ingo Molnar 提交于
      The various build lines from libtraceevent and perf mix up during a
      parallel build and produce unaligned output like:
      
          CC builtin-buildid-list.o
          CC builtin-buildid-cache.o
          CC builtin-list.o
        CC FPIC            trace-seq.o
          CC builtin-record.o
        CC FPIC            parse-filter.o
          CC builtin-report.o
          CC builtin-stat.o
        CC FPIC            parse-utils.o
        CC FPIC            kbuffer-parse.o
          CC builtin-timechart.o
          CC builtin-top.o
          CC builtin-script.o
        BUILD STATIC LIB   libtraceevent.a
          CC builtin-probe.o
          CC builtin-kmem.o
          CC builtin-lock.o
      
      To solve this, harmonize all the build message alignments to be similar
      to the kernel's kbuild output: prefixed by two spaces and 11-char wide.
      
      After the patch the output looks pretty tidy, even if output lines get
      mixed up:
      
        CC      builtin-annotate.o
        FLAGS:  * new build flags or cross compiler
        CC      builtin-bench.o
        AR      liblk.a
        CC      bench/sched-messaging.o
        CC FPIC event-parse.o
        CC      bench/sched-pipe.o
        CC FPIC trace-seq.o
        CC      bench/mem-memcpy.o
        CC      bench/mem-memset.o
        CC FPIC parse-filter.o
        CC      builtin-diff.o
        CC      builtin-evlist.o
        CC      builtin-help.o
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1381312169-17354-3-git-send-email-mingo@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      65fb0992
    • I
      perf tools: Implement summary output for 'make clean' · 8ec19c0e
      Ingo Molnar 提交于
      'make clean' used to show all the rm lines, which isn't really
      informative in any way and spams the console.
      
      Implement summary output:
      
        comet:~/tip/tools/perf> make clean
         CLEAN libtraceevent
         CLEAN liblk
         CLEAN config
         CLEAN core-objs
         CLEAN core-progs
         CLEAN core-gen
         CLEAN Documentation
         CLEAN python
      
      'make clean V=1' will still show the old, detailed output.
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1381312169-17354-2-git-send-email-mingo@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      8ec19c0e
  9. 09 7月, 2013 1 次提交
  10. 16 3月, 2013 2 次提交
  11. 20 11月, 2012 3 次提交
    • D
      tools: Pass the target in descend · 2b73f65d
      David Howells 提交于
       Fixing:
      
        [acme@sandy linux]$ cd tools
        [acme@sandy tools]$ make clean
            DESCEND power/cpupower
          CC       lib/cpufreq.o
          CC       lib/sysfs.o
          LD       libcpupower.so.0.0.0
          CC       utils/helpers/amd.o
        utils/helpers/amd.c:7:21: error: pci/pci.h: No such file or directory
        In file included from utils/helpers/amd.c:9:
        ./utils/helpers/helpers.h:137: warning: ‘struct pci_access’ declared inside parameter list
        ./utils/helpers/helpers.h:137: warning: its scope is only this definition or declaration, which is probably not what you want
        ./utils/helpers/helpers.h:139: warning: ‘struct pci_access’ declared inside parameter list
        utils/helpers/amd.c: In function ‘amd_pci_get_num_boost_states’:
        utils/helpers/amd.c:120: warning: passing argument 1 of ‘pci_slot_func_init’ from incompatible pointer type
        ./utils/helpers/helpers.h:138: note: expected ‘struct pci_access **’ but argument is of type ‘struct pci_access **’
        utils/helpers/amd.c:125: warning: implicit declaration of function ‘pci_read_byte’
        utils/helpers/amd.c:132: warning: implicit declaration of function ‘pci_cleanup’
        make[1]: *** [utils/helpers/amd.o] Error 1
        make: *** [cpupower_clean] Error 2
        [acme@sandy tools]$
      Reported-by: NArnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/n/tip-tviyimq6x6nm77sj5lt4t19f@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      2b73f65d
    • D
      tools: Honour the O= flag when tool build called from a higher Makefile · bf35182f
      David Howells 提交于
      Honour the O= flag that was passed to a higher level Makefile and then passed
      down as part of a tool build.
      
      To make this work, the top-level Makefile passes the original O= flag and
      subdir=tools to the tools/Makefile, and that in turn passes
      subdir=$(O)/$(subdir)/foodir when building tool foo in directory
      $(O)/$(subdir)/foodir (where the intervening slashes aren't added if an
      element is missing).
      
      For example, take perf.  This is found in tools/perf/.  Assume we're building
      into directory ~/zebra/, so we pass O=~/zebra to make.  Dependening on where
      we run the build from, we see:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			~/zebra/tools/perf/
      	linux/tools		~/zebra/perf/
      	linux/tools/perf	~/zebra/
      
      and if O= is not set, we get:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			linux/tools/perf/
      	linux/tools		linux/tools/perf/
      	linux/tools/perf	linux/tools/perf/
      
      The output directories are created by the descend function if they don't
      already exist.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.ukSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      bf35182f
    • D
      tools: Define a Makefile function to do subdir processing · ca9dfc6c
      David Howells 提交于
      Define a Makefile function that can be called with $(call ...) to wrap
      the subdir make invocations in tools/Makefile.
      
      This will allow us in the next patch to insert bits in there to honour
      O= flags when called from the top-level Makefile.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.ukSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ca9dfc6c
  12. 15 11月, 2012 3 次提交
    • D
      tools: Pass the target in descend · 1668fc65
      David Howells 提交于
       Fixing:
      
        [acme@sandy linux]$ cd tools
        [acme@sandy tools]$ make clean
            DESCEND power/cpupower
          CC       lib/cpufreq.o
          CC       lib/sysfs.o
          LD       libcpupower.so.0.0.0
          CC       utils/helpers/amd.o
        utils/helpers/amd.c:7:21: error: pci/pci.h: No such file or directory
        In file included from utils/helpers/amd.c:9:
        ./utils/helpers/helpers.h:137: warning: ‘struct pci_access’ declared inside parameter list
        ./utils/helpers/helpers.h:137: warning: its scope is only this definition or declaration, which is probably not what you want
        ./utils/helpers/helpers.h:139: warning: ‘struct pci_access’ declared inside parameter list
        utils/helpers/amd.c: In function ‘amd_pci_get_num_boost_states’:
        utils/helpers/amd.c:120: warning: passing argument 1 of ‘pci_slot_func_init’ from incompatible pointer type
        ./utils/helpers/helpers.h:138: note: expected ‘struct pci_access **’ but argument is of type ‘struct pci_access **’
        utils/helpers/amd.c:125: warning: implicit declaration of function ‘pci_read_byte’
        utils/helpers/amd.c:132: warning: implicit declaration of function ‘pci_cleanup’
        make[1]: *** [utils/helpers/amd.o] Error 1
        make: *** [cpupower_clean] Error 2
        [acme@sandy tools]$
      Reported-by: NArnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/n/tip-tviyimq6x6nm77sj5lt4t19f@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1668fc65
    • D
      tools: Honour the O= flag when tool build called from a higher Makefile · 9db48cd5
      David Howells 提交于
      Honour the O= flag that was passed to a higher level Makefile and then passed
      down as part of a tool build.
      
      To make this work, the top-level Makefile passes the original O= flag and
      subdir=tools to the tools/Makefile, and that in turn passes
      subdir=$(O)/$(subdir)/foodir when building tool foo in directory
      $(O)/$(subdir)/foodir (where the intervening slashes aren't added if an
      element is missing).
      
      For example, take perf.  This is found in tools/perf/.  Assume we're building
      into directory ~/zebra/, so we pass O=~/zebra to make.  Dependening on where
      we run the build from, we see:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			~/zebra/tools/perf/
      	linux/tools		~/zebra/perf/
      	linux/tools/perf	~/zebra/
      
      and if O= is not set, we get:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			linux/tools/perf/
      	linux/tools		linux/tools/perf/
      	linux/tools/perf	linux/tools/perf/
      
      The output directories are created by the descend function if they don't
      already exist.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.ukSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9db48cd5
    • D
      tools: Define a Makefile function to do subdir processing · 0bca6cff
      David Howells 提交于
      Define a Makefile function that can be called with $(call ...) to wrap
      the subdir make invocations in tools/Makefile.
      
      This will allow us in the next patch to insert bits in there to honour
      O= flags when called from the top-level Makefile.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.ukSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      0bca6cff
  13. 17 8月, 2012 1 次提交
  14. 25 4月, 2012 1 次提交
    • S
      perf: Build libtraceevent.a · d0e7b850
      Steven Rostedt 提交于
      Have building perf also build libtraceevent.a. Currently, perf does
      not use the code within libtraceevent.a, but it soon will.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Arun Sharma <asharma@fb.com>
      Cc: Namhyung Kim <namhyung.kim@lge.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      d0e7b850
  15. 12 4月, 2012 2 次提交