Messages in this thread | | | From | Jiri Olsa <> | Subject | [PATCH 0/7] tools build: Fix header removal build issue | Date | Wed, 23 Sep 2015 12:33:55 +0200 |
| |
hi, for dependency tracking we currently use targets that fall out of the gcc -MD command. We store this info in the .cmd file and include as makefile during the build.
This format put object as target and all the c and header files as dependencies, like:
util/abspath.o: util/abspath.c /usr/include/stdc-predef.h util/cache.h \ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ ...
If any of those dependency header files (krava.h below) is removed the build fails on:
make[1]: *** No rule to make target 'krava.h', needed by 'inc.o'. Stop.
This patch adds fixdep helper, that is used by kbuild to alter the shape of the object dependencies like:
source_util/abspath.o := util/abspath.c
deps_util/abspath.o := \ /usr/include/stdc-predef.h \ util/cache.h \ ...
util/abspath.o: $(deps_util/abspath.o)
$(deps_util/abspath.o):
With this format the header removal won't make the build fail, because it'll be picked up by the last empty target defined for each header.
thanks, jirka
Cc: Kai Germaschewski <kai.germaschewski@gmx.de> --- Jiri Olsa (7): tools build: Add Makefile.include tools build: Add test for missing include tools build: Add fixdep dependency helper tools build: Move dependency copy into function tools build: Make fixdep helper part of the build process perf tools: Rename single_dep target to prepare tools build: Build fixdep helper from perf and basic libs
tools/build/Build | 1 + tools/build/Build.include | 17 +++++++++--- tools/build/Documentation/Build.txt | 52 +++++++++++++++++++++++++++--------- tools/build/Makefile | 43 ++++++++++++++++++++++++++++++ tools/build/Makefile.build | 7 +++++ tools/build/Makefile.include | 6 +++++ tools/build/fixdep.c | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/build/tests/ex/Build | 1 + tools/build/tests/ex/Makefile | 13 +++++---- tools/build/tests/ex/ex.c | 2 ++ tools/build/tests/ex/inc.c | 8 ++++++ tools/build/tests/run.sh | 27 +++++++++++++++++++ tools/lib/api/Makefile | 6 +++-- tools/lib/bpf/Makefile | 6 +++-- tools/lib/lockdep/Makefile | 6 +++-- tools/perf/Makefile.perf | 32 +++++++++++----------- 16 files changed, 352 insertions(+), 43 deletions(-) create mode 100644 tools/build/Build create mode 100644 tools/build/Makefile create mode 100644 tools/build/Makefile.include create mode 100644 tools/build/fixdep.c create mode 100644 tools/build/tests/ex/inc.c
| |