fixdep: Do not record dependency on the source file itself
The dependency is already expressed by the Makefiles, storing it in the .cmd file breaks build if a .c file is replaced by .S or vice versa, because the .cmd file contains foo/bar.o: foo/bar.c ... foo/bar.c ... : so the foo/bar.c -> foo/bar.o rule triggers even if there is no foo/bar.c anymore. Acked-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Michal Marek <mmarek@suse.cz>hifive-unleashed-5.1
parent
0f54088aac
commit
b7bd182176
|
@ -315,6 +315,7 @@ static void parse_dep_file(void *map, size_t len)
|
||||||
char *end = m + len;
|
char *end = m + len;
|
||||||
char *p;
|
char *p;
|
||||||
char s[PATH_MAX];
|
char s[PATH_MAX];
|
||||||
|
int first;
|
||||||
|
|
||||||
p = strchr(m, ':');
|
p = strchr(m, ':');
|
||||||
if (!p) {
|
if (!p) {
|
||||||
|
@ -327,6 +328,7 @@ static void parse_dep_file(void *map, size_t len)
|
||||||
|
|
||||||
clear_config();
|
clear_config();
|
||||||
|
|
||||||
|
first = 1;
|
||||||
while (m < end) {
|
while (m < end) {
|
||||||
while (m < end && (*m == ' ' || *m == '\\' || *m == '\n'))
|
while (m < end && (*m == ' ' || *m == '\\' || *m == '\n'))
|
||||||
m++;
|
m++;
|
||||||
|
@ -340,9 +342,17 @@ static void parse_dep_file(void *map, size_t len)
|
||||||
if (strrcmp(s, "include/generated/autoconf.h") &&
|
if (strrcmp(s, "include/generated/autoconf.h") &&
|
||||||
strrcmp(s, "arch/um/include/uml-config.h") &&
|
strrcmp(s, "arch/um/include/uml-config.h") &&
|
||||||
strrcmp(s, ".ver")) {
|
strrcmp(s, ".ver")) {
|
||||||
printf(" %s \\\n", s);
|
/*
|
||||||
|
* Do not output the first dependency (the
|
||||||
|
* source file), so that kbuild is not confused
|
||||||
|
* if a .c file is rewritten into .S or vice
|
||||||
|
* versa.
|
||||||
|
*/
|
||||||
|
if (!first)
|
||||||
|
printf(" %s \\\n", s);
|
||||||
do_config_file(s);
|
do_config_file(s);
|
||||||
}
|
}
|
||||||
|
first = 0;
|
||||||
m = p + 1;
|
m = p + 1;
|
||||||
}
|
}
|
||||||
printf("\n%s: $(deps_%s)\n\n", target, target);
|
printf("\n%s: $(deps_%s)\n\n", target, target);
|
||||||
|
|
Loading…
Reference in New Issue