lkml.org 
[lkml]   [2015]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/7] tools build: Fix header removal build issue
Date
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


\
 
 \ /
  Last update: 2015-09-23 13:01    [W:0.104 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site