[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1443004442-32660-1-git-send-email-jolsa@kernel.org>
Date: Wed, 23 Sep 2015 12:33:55 +0200
From: Jiri Olsa <jolsa@...nel.org>
To: Arnaldo Carvalho de Melo <acme@...nel.org>
Cc: Kai Germaschewski <kai.germaschewski@....de>,
lkml <linux-kernel@...r.kernel.org>,
David Ahern <dsahern@...il.com>,
Ingo Molnar <mingo@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>
Subject: [PATCH 0/7] tools build: Fix header removal build issue
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@....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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists