perf tools: New build framework
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest36 patches 2 repliesIn review
- v336 patches 17 repliesSuperseded
- v236 patches 16 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 30 patches | 13 replies | Superseded |
Changes in v4 from the cover letter
- updated to the current Arnaldo's perf/core branch
- added Tested-by tags [Will, Sukadev]
- fixed common-cmds.h dependency [David]
- updated changelog for base arch patch 20/36 [David] perf build: Add arch x86 objects building
- added Copyright header for build framework files
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/36 | tools build: Add new build supporttools/ tools/ tools/ +13 more | +435 | 0 replies | |
| 2/36 | tools build: Add detected config supporttools/ tools/ | +7 | 0 replies | |
| 3/36 | tools build: Add subdir supporttools/ | +7 | 0 replies | |
| 4/36 | perf tools: Remove api fs object from python buildtools/ | +0 | 0 replies | |
| 5/36 | perf build: Disable make's built-in rulestools/ | +4 | 0 replies | |
| 6/36 | perf build: Add bench objects buildingtools/ tools/ tools/ +1 more | +31 | 0 replies | |
| 7/36 | perf build: Add tests objects buildingtools/ tools/ tools/ +1 more | +53 | 0 replies | |
| 8/36 | perf build: Add builtin objects buildingtools/ tools/ tools/ | +34 | 0 replies | |
| 9/36 | perf build: Add libperf objects buildingtools/ tools/ tools/ +3 more | +141 | 0 replies | |
| 10/36 | perf build: Add probe objects buildingtools/ tools/ tools/ +1 more | +10 | 0 replies | |
| 11/36 | perf build: Add dwarf objects buildingtools/ tools/ tools/ | +4 | 0 replies | |
| 12/36 | perf build: Add dwarf unwind objects buildingtools/ tools/ tools/ | +5 | 0 replies | |
| 13/36 | perf build: Add ui objects buildingtools/ tools/ tools/ +1 more | +10 | 0 replies | |
| 14/36 | perf build: Add slang objects buildingtools/ tools/ tools/ +2 more | +21 | 0 replies | |
| 15/36 | perf build: Add gtk objects buildingtools/ tools/ tools/ +1 more | +17 | 0 replies | |
| 16/36 | perf build: Add scripts objects buildingtools/ tools/ tools/ +5 more | +21 | 0 replies | |
| 17/36 | perf build: Add perf regs objects buildingtools/ tools/ tools/ | +6 | 0 replies | |
| 18/36 | perf build: Add zlib objects buildingtools/ tools/ tools/ | +2 | 0 replies | |
| 19/36 | perf build: Add perf.o object buildingtools/ tools/ | +8 | 0 replies | |
| 20/36 | perf build: Add arch x86 objects buildingtools/ tools/ tools/ +8 more | +13 | 0 replies | |
| 21/36 | perf build: Add arch arm objects buildingtools/ tools/ tools/ +1 more | +8 | 0 replies | |
| 22/36 | perf build: Add arch arm64 objects buildingtools/ tools/ tools/ | +3 | 0 replies | |
| 23/36 | perf build: Add arch powerpc objects buildingtools/ tools/ tools/ | +5 | 0 replies | |
| 24/36 | perf build: Add arch s390 objects buildingtools/ tools/ tools/ | +5 | 0 replies | |
| 25/36 | perf build: Add arch sh objects buildingtools/ tools/ tools/ | +2 | 0 replies | |
| 26/36 | perf build: Add arch sparc objects buildingtools/ tools/ tools/ | +2 | 0 replies | |
| 27/36 | perf build: Add single target build framework supporttools/ tools/ tools/ | +55 | 0 replies | |
| 28/36 | perf build: Remove directory dependency rulestools/ | +0 | 0 replies | |
| 29/36 | perf build: Remove uneeded variablestools/ | +5 | 0 replies | |
| 30/36 | perf build: Remove PERF-CFLAGS filetools/ | +3 | 0 replies | |
| 31/36 | perf build: Add build documentationtools/ | +49 | 0 replies | |
| 32/36 | tools lib api: Use tools build frameworktools/ tools/ tools/ +2 more | +32 | 0 replies | |
| 33/36 | tools lib api: Rename libapikfs.a to libapi.atools/ tools/ tools/ +2 more | +12 | 0 replies | |
| 34/36 | tools lib traceevent: Use tools build frameworktools/ tools/ tools/ | +59 | 0 replies | |
| 35/36 | tools lib lockdep: Use tools build frameworktools/ tools/ | +24 | 0 replies | |
| 36/36 | perf build: Display make commands on V=1tools/ tools/ | +30 | 0 replies |
Reviews trailers per patch
None of the 36 patches has a Reviewed-by or Acked-by.
| Patch | Sukadev Bhattiprolu | Will Deacon |
|---|---|---|
| Series | T-b | T-b |
| 1/36 | T-b | T-b |
| 2/36 | T-b | T-b |
| 3/36 | T-b | T-b |
| 4/36 | T-b | T-b |
| 5/36 | T-b | T-b |
| 6/36 | T-b | T-b |
| 7/36 | T-b | T-b |
| 8/36 | T-b | T-b |
| 9/36 | T-b | T-b |
| 10/36 | T-b | T-b |
| 11/36 | T-b | T-b |
| 12/36 | T-b | T-b |
| 13/36 | T-b | T-b |
| 14/36 | T-b | T-b |
| 15/36 | T-b | T-b |
| 16/36 | T-b | T-b |
| 17/36 | T-b | T-b |
| 18/36 | T-b | T-b |
| 19/36 | T-b | T-b |
| 20/36 | T-b | T-b |
| 21/36 | T-b | T-b |
| 22/36 | T-b | T-b |
| 23/36 | T-b | T-b |
| 24/36 | T-b | T-b |
| 25/36 | T-b | T-b |
| 26/36 | T-b | T-b |
| 27/36 | T-b | T-b |
| 28/36 | T-b | T-b |
| 29/36 | T-b | T-b |
| 30/36 | T-b | T-b |
| 31/36 | T-b | T-b |
| 32/36 | T-b | T-b |
| 33/36 | T-b | T-b |
| 34/36 | T-b | T-b |
| 35/36 | ||
| 36/36 | T-b | T-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCHv4 00/36] perf tools: New build framework
hi,
I'm following up on latest post from Alexis:
http://marc.info/?l=linux-kernel&m=141427580405357&w=2
thanks for feedback and testing!
v4 changes:
- updated to the current Arnaldo's perf/core branch
- added Tested-by tags [Will, Sukadev]
- fixed common-cmds.h dependency [David]
- updated changelog for base arch patch 20/36 [David] perf build: Add arch x86 objects building
- added Copyright header for build framework files
v3 changes:
- disabling only builtin rules, keeping builtin variables in place because some projects we depends on using them (traceevent) [David]
- fixed empy source list issue that happened on arm [Will, Mark]
- updated to the current Arnaldo's perf/core branch
- added automated tests into: tools/build/tests/
- tested on arm64,ppc64,s390,x86_64,i386
v2 changes:
- build Makefiles librarized and moved to 'tools/build' [Ingo]
- several minor fixies [Namhyung]
- tested on other archs now - x86_64, i386, powerpc
- moved tools/lib/* under new build framework to show that it's possible ;-)
included traceevent/lockdep maintainers to get the feedback
- omitted last 2 patches
The patchset is also available in:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/build
All tests/make tests passed.
Since it's actually small portion of kbuild that perf needs, I realized it's actually better to steal it than 'reconfigure' kbuild to be usable for perf.
Also this patchset is kind of incremental version of the latest:
perf tools: Add kbuild support into Makefile.kbuild
so it should be easier to review.
NOTE I couldn't find any copyright/credit messages in the kbuild system, but would be happy to include it if someone suggests one.
The idea and more details are explained in the 'Documentation/Build' file. The basic idea is the same as in kbuild system, with some minor changes to allow for multiple binaries build definitions.
User provides 'Build' files with objects definitions like:
perf-y += perf.o
perf-y += builtin-bench.o
...
libperf-y += util/
...
and the build framework outputs files:
perf-in.o
libperf-in.o
which are then linked into appropriate binaries/libraries. (perf libperf.a libperf-gtk.so)
Also now we have the full dependency check ((gcc -Wp,-MD,... stuff) and build command line is stored/checked automatically by the build system.
thanks,
jirka
---
Jiri Olsa (36):
tools build: Add new build support
tools build: Add detected config support tools build: Add subdir support
perf tools: Remove api fs object from python build perf build: Disable make's built-in rules perf build: Add bench objects building
perf build: Add tests objects building
perf build: Add builtin objects building perf build: Add libperf objects building perf build: Add probe objects building
perf build: Add dwarf objects building
perf build: Add dwarf unwind objects building perf build: Add ui objects building
perf build: Add slang objects building
perf build: Add gtk objects building
perf build: Add scripts objects building perf build: Add perf regs objects building perf build: Add zlib objects building
perf build: Add perf.o object building
perf build: Add arch x86 objects building perf build: Add arch arm objects building perf build: Add arch arm64 objects building perf build: Add arch powerpc objects building perf build: Add arch s390 objects building perf build: Add arch sh objects building perf build: Add arch sparc objects building perf build: Add single target build framework support perf build: Remove directory dependency rules perf build: Remove uneeded variables
perf build: Remove PERF-CFLAGS file
perf build: Add build documentation
tools lib api: Use tools build framework tools lib api: Rename libapikfs.a to libapi.a tools lib traceevent: Use tools build framework tools lib lockdep: Use tools build framework perf build: Display make commands on V=1
tools/build/Build.include | 81 ++++ tools/build/Documentation/Build.txt | 132 ++++++ tools/build/Makefile.build | 130 +++++ tools/build/tests/ex/Build | 8 + tools/build/tests/ex/Makefile | 23 + tools/build/tests/ex/a.c | 5 + tools/build/tests/ex/arch/Build | 2 + tools/build/tests/ex/arch/e.c | 5 + tools/build/tests/ex/arch/f.c | 5 + tools/build/tests/ex/b.c | 5 + tools/build/tests/ex/c.c | 5 + tools/build/tests/ex/d.c | 5 + tools/build/tests/ex/empty/Build | 0 tools/build/tests/ex/ex.c | 19 + tools/build/tests/run.sh | 42 ++ tools/lib/api/Build | 2 + tools/lib/api/Makefile | 57 +-- tools/lib/api/fd/Build | 1 + tools/lib/api/fs/Build | 2 + tools/lib/lockdep/Build | 1 + tools/lib/lockdep/Makefile | 132 +----- tools/lib/traceevent/Build | 17 + tools/lib/traceevent/Makefile | 161 ++----- tools/perf/Build | 43 ++ tools/perf/Documentation/Build.txt | 49 ++ tools/perf/MANIFEST | 1 + tools/perf/Makefile.perf | 605 +++--------------------- tools/perf/arch/Build | 2 + tools/perf/arch/arm/Build | 2 + tools/perf/arch/arm/Makefile | 11 - tools/perf/arch/arm/tests/Build | 2 + tools/perf/arch/arm/util/Build | 4 + tools/perf/arch/arm64/Build | 1 + tools/perf/arch/arm64/Makefile | 4 - tools/perf/arch/arm64/util/Build | 2 + tools/perf/arch/powerpc/Build | 1 + tools/perf/arch/powerpc/Makefile | 3 - tools/perf/arch/powerpc/util/Build | 4 + tools/perf/arch/s390/Build | 1 + tools/perf/arch/s390/Makefile | 3 - tools/perf/arch/s390/util/Build | 4 + tools/perf/arch/sh/Build | 1 + tools/perf/arch/sh/Makefile | 1 - tools/perf/arch/sh/util/Build | 1 + tools/perf/arch/sparc/Build | 1 + tools/perf/arch/sparc/Makefile | 1 - tools/perf/arch/sparc/util/Build | 1 + tools/perf/arch/x86/Build | 2 + tools/perf/arch/x86/Makefile | 15 - tools/perf/arch/x86/tests/Build | 2 + tools/perf/arch/x86/util/Build | 8 + tools/perf/bench/Build | 11 + tools/perf/config/Makefile | 41 ++ tools/perf/scripts/Build | 2 + tools/perf/scripts/perl/Perf-Trace-Util/Build | 3 + tools/perf/scripts/python/Perf-Trace-Util/Build | 3 + tools/perf/tests/Build | 42 ++ tools/perf/ui/Build | 14 + tools/perf/ui/browsers/Build | 10 + tools/perf/ui/gtk/Build | 9 + tools/perf/ui/tui/Build | 4 + tools/perf/util/Build | 142 ++++++ tools/perf/util/python-ext-sources | 1 - tools/perf/util/scripting-engines/Build | 6 + 64 files changed, 1070 insertions(+), 833 deletions(-) create mode 100644 tools/build/Build.include create mode 100644 tools/build/Documentation/Build.txt create mode 100644 tools/build/Makefile.build create mode 100644 tools/build/tests/ex/Build create mode 100644 tools/build/tests/ex/Makefile create mode 100644 tools/build/tests/ex/a.c create mode 100644 tools/build/tests/ex/arch/Build create mode 100644 tools/build/tests/ex/arch/e.c create mode 100644 tools/build/tests/ex/arch/f.c create mode 100644 tools/build/tests/ex/b.c create mode 100644 tools/build/tests/ex/c.c create mode 100644 tools/build/tests/ex/d.c create mode 100644 tools/build/tests/ex/empty/Build create mode 100644 tools/build/tests/ex/ex.c create mode 100755 tools/build/tests/run.sh create mode 100644 tools/lib/api/Build create mode 100644 tools/lib/api/fd/Build create mode 100644 tools/lib/api/fs/Build create mode 100644 tools/lib/lockdep/Build create mode 100644 tools/lib/traceevent/Build create mode 100644 tools/perf/Build create mode 100644 tools/perf/Documentation/Build.txt create mode 100644 tools/perf/arch/Build create mode 100644 tools/perf/arch/arm/Build create mode 100644 tools/perf/arch/arm/tests/Build create mode 100644 tools/perf/arch/arm/util/Build create mode 100644 tools/perf/arch/arm64/Build create mode 100644 tools/perf/arch/arm64/util/Build create mode 100644 tools/perf/arch/powerpc/Build create mode 100644 tools/perf/arch/powerpc/util/Build create mode 100644 tools/perf/arch/s390/Build create mode 100644 tools/perf/arch/s390/util/Build create mode 100644 tools/perf/arch/sh/Build create mode 100644 tools/perf/arch/sh/util/Build create mode 100644 tools/perf/arch/sparc/Build create mode 100644 tools/perf/arch/sparc/util/Build create mode 100644 tools/perf/arch/x86/Build create mode 100644 tools/perf/arch/x86/tests/Build create mode 100644 tools/perf/arch/x86/util/Build create mode 100644 tools/perf/bench/Build create mode 100644 tools/perf/scripts/Build create mode 100644 tools/perf/scripts/perl/Perf-Trace-Util/Build create mode 100644 tools/perf/scripts/python/Perf-Trace-Util/Build create mode 100644 tools/perf/tests/Build create mode 100644 tools/perf/ui/Build create mode 100644 tools/perf/ui/browsers/Build create mode 100644 tools/perf/ui/gtk/Build create mode 100644 tools/perf/ui/tui/Build create mode 100644 tools/perf/util/Build create mode 100644 tools/perf/util/scripting-engines/Build