From: Jiri Olsa <jolsa@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Kai Germaschewski <kai.germaschewski@gmx.de>,
lkml <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>, Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: [PATCH 0/7] tools build: Fix header removal build issue
Date: Wed, 23 Sep 2015 12:33:55 +0200 [thread overview]
Message-ID: <1443004442-32660-1-git-send-email-jolsa@kernel.org> (raw)
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
next reply other threads:[~2015-09-23 10:34 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-23 10:33 Jiri Olsa [this message]
2015-09-23 10:33 ` [PATCH 1/7] tools build: Add Makefile.include Jiri Olsa
2015-09-29 8:38 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:33 ` [PATCH 2/7] tools build: Add test for missing include Jiri Olsa
2015-09-25 17:43 ` Arnaldo Carvalho de Melo
2015-09-27 19:45 ` Jiri Olsa
2015-09-29 8:39 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:33 ` [PATCH 3/7] tools build: Add fixdep dependency helper Jiri Olsa
2015-09-29 8:39 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:33 ` [PATCH 4/7] tools build: Move dependency copy into function Jiri Olsa
2015-09-29 8:40 ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:34 ` [PATCH 5/7] tools build: Make fixdep helper part of the build process Jiri Olsa
2015-09-29 8:40 ` [tip:perf/core] tools build: Make the " tip-bot for Jiri Olsa
2015-09-23 10:34 ` [PATCH 6/7] perf tools: Rename single_dep target to prepare Jiri Olsa
2015-09-29 8:40 ` [tip:perf/core] perf tools: Rename the 'single_dep' target to ' prepare' tip-bot for Jiri Olsa
2015-09-23 10:34 ` [PATCH 7/7] tools build: Build fixdep helper from perf and basic libs Jiri Olsa
2015-09-29 8:41 ` [tip:perf/core] " tip-bot for Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1443004442-32660-1-git-send-email-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=kai.germaschewski@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.