Fixed:
make: *** No rule to make target `/path/to/sysroot/4.9.0/include/stdarg.h', needed by `cpio.o'. Stop.
make: *** Waiting for unfinished jobs....
ERROR: oe_runmake failed
This happens when upgrade gcc from 4.9.0 to 4.9.1, and the .cpio.o.d isn't
regenerated when recompile (the compile happens when do_install), the content
of it are:
[snip]
cpio.o: /path/to/sysroot/4.9.0/include/stdarg.h
[snip]
And Makefile includes the .cpio.o.d file if it exists, so there would be
errors when /path/to/sysroot/4.9.0/include/stdarg.h doesn't exist.
Remove .*.d (a few .d files, its Makefile uses this wildcard) will fix
the problem.
(From OE-Core rev:
f7dc6e801bba897fd4709a2f4fb0e7dbc198497a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
}
do_compile() {
+ # Make sure the recompile is OK.
+ # Though the ${B} should always exist, still check it before find and rm.
+ [ -d "${B}" ] && find ${B} -name '.*.d' -type f -exec rm -f {} \;
+
# Rebuild only the installer; keep precompiled bootloaders
# as per author's request (doc/distrib.txt)
oe_runmake CC="${CC} ${CFLAGS}" LDFLAGS="${LDFLAGS}" firmware="bios" installer