fix rebuild error
cover fix rebuild error
The following changes since commit 1fafe7ccc563d5ac9e41f5c1de93d2736745b512:
ghostscript: Remove bogus gsfonts reference from DESCRIPTION (2014-08-06 11:14:21 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/rebuild
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/rebuild
Robert Yang (7):
libnewt: fix recompile error
trace-cmd: fix recompile error
logrotate: fix recompile error
kexec-tools: fix recompile error
kernelshark: fix recompile error
u-boot-mkimage: fix recompile error
syslinux: fix reinstall error
meta/recipes-bsp/u-boot/u-boot-mkimage_2013.07.bb | 3 +++ meta/recipes-devtools/syslinux/syslinux_6.01.bb | 4 ++++ meta/recipes-extended/logrotate/logrotate_3.8.7.bb | 5 +++++ meta/recipes-extended/newt/libnewt_0.52.17.bb | 5 +++++ meta/recipes-kernel/kexec/kexec-tools.inc | 11 +++++++++++ meta/recipes-kernel/trace-cmd/kernelshark_1.2.bb | 5 +++++ meta/recipes-kernel/trace-cmd/trace-cmd_1.2.bb | 5 +++++ 7 files changed, 38 insertions(+)
Signature · 1 line
1.7.9.5
PATCH 1/7 libnewt: fix recompile error
Fixed:
NOTE: make -j 32
make: *** No rule to make target /path/to/sysroot/4.9.0/include/stddef.h', needed by test.o'. Stop.
This happens when upgrade gcc from 4.9.0 to 4.9.1, and the .depend isn't regenerated when recompile, the content of the .depend are:
[snip]
test.o: /path/to/sysroot/4.9.0/include/stddef.h
[snip]
And Makefile includes the .depend file if it exists, so there would be errors when /path/to/sysroot/4.9.0/include/stddef.h doesn't exist.
Remove .depend will fix the problem.
--- meta/recipes-extended/newt/libnewt_0.52.17.bb | 5 +++++ 1 file changed, 5 insertions(+)
meta/recipes-extended/newt/libnewt_0.52.17.bb +5 -0
@@ -46,4 +46,9 @@ do_configure_prepend() { sh autogen.sh } +do_compile_prepend() { + # Make sure the recompile is OK + rm -f ${B}/.depend +} + FILES_whiptail = "${bindir}/whiptail"
Signature · 1 line
1.7.9.5
PATCH 2/7 trace-cmd: fix recompile error
In reply to Robert YangFixed:
make: *** No rule to make target /path/to/sysroot/4.9.0/include/stddef.h', needed by parse-events.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 .parse-events.d isn't regenerated when recompile, the content of it are:
[snip]
parse-events.o: /path/to/sysroot/4.9.0/include/stddef.h [snip]
And Makefile includes the .parse-events.d file if it exists, so there would be errors when /path/to/sysroot/4.9.0/include/stddef.h doesn't exist.
Remove .*.d (a few .d files, its Makefile uses this wildcard) will fix the problem.
--- meta/recipes-kernel/trace-cmd/trace-cmd_1.2.bb | 5 +++++ 1 file changed, 5 insertions(+)
meta/recipes-kernel/trace-cmd/trace-cmd_1.2.bb +5 -0
@@ -18,6 +18,11 @@ EXTRA_OEMAKE = "'prefix=${prefix}'" FILES_${PN}-dbg += "${datadir}/trace-cmd/plugins/.debug/" +do_compile_prepend() { + # Make sure the recompile is OK + rm -f ${B}/.*.d +} + do_install() { oe_runmake prefix="${prefix}" DESTDIR="${D}" install }
Signature · 1 line
1.7.9.5
PATCH 3/7 logrotate: fix recompile error
In reply to Robert YangFixed:
NOTE: make -j 32
make: *** No rule to make target /path/to/sysroot/4.9.0/include/stddef.h', needed by logrotate.o'. Stop.
This happens when upgrade gcc from 4.9.0 to 4.9.1, and the .depend isn't regenerated when recompile, the content of the .depend are:
[snip]
logrotate.o: /path/to/sysroot/4.9.0/include/stddef.h [snip]
And Makefile includes the .depend file if it exists, so there would be errors when /path/to/sysroot/4.9.0/include/stddef.h doesn't exist.
Remove .depend will fix the problem.
--- meta/recipes-extended/logrotate/logrotate_3.8.7.bb | 5 +++++ 1 file changed, 5 insertions(+)
meta/recipes-extended/logrotate/logrotate_3.8.7.bb +5 -0
@@ -18,6 +18,11 @@ SRC_URI[sha256sum] = "f6ba691f40e30e640efa2752c1f9499a3f9738257660994de70a45fe00 EXTRA_OEMAKE = "" +do_compile_prepend() { + # Make sure the recompile is OK + rm -f ${B}/.depend +} + do_install(){ oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir} mkdir -p ${D}${sysconfdir}/logrotate.d
Signature · 1 line
1.7.9.5
PATCH 4/7 kexec-tools: fix recompile error
In reply to Robert YangFixed:
NOTE: make -j 32
make: *** No rule to make target /path/to/sysroot/4.9.0/include/stddef.h', needed by kexec/kexec.o'. Stop.
This happens when upgrade gcc from 4.9.0 to 4.9.1, and the kexec/kexec.d isn't regenerated when recompile, the content of it are:
[snip]kexec/kexec.o: /path/to/sysroot/4.9.0/include/stddef.h [snip]
And Makefile includes the kexec/kexec.d file if it exists, so there would be errors when /path/to/sysroot/4.9.0/include/stddef.h doesn't exist.
Remove kexec/kexec.d and other similar files will fix the problem.
--- meta/recipes-kernel/kexec/kexec-tools.inc | 11 +++++++++++ 1 file changed, 11 insertions(+)
meta/recipes-kernel/kexec/kexec-tools.inc +11 -0
@@ -15,3 +15,14 @@ inherit autotools-brokensep COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|powerpc.*|mips.*)-(linux|freebsd.*)' INSANE_SKIP_${PN} = "arch" + +do_compile_prepend() { + # Remove the '*.d' file to make sure the recompile is OK + for dep in `find ${B} -type f -name '*.d'`; do + dep_no_d="`echo $dep | sed 's#.d$##'`" + # Remove file.d when there is a file.o + if [ -f "$dep_no_d.o" ]; then + rm -f $dep + fi + done +}
Signature · 1 line
1.7.9.5
PATCH 5/7 kernelshark: fix recompile error
In reply to Robert YangFixed:
make: *** No rule to make target /path/to/sysroot/4.9.0/include/stddef.h', needed by parse-events.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 .parse-events.d isn't regenerated when recompile, the content of it are:
[snip]
parse-events.o: /path/to/sysroot/4.9.0/include/stddef.h [snip]
And Makefile includes the .parse-events.d file if it exists, so there would be errors when /path/to/sysroot/4.9.0/include/stddef.h doesn't exist.
Remove .*.d (a few .d files, its Makefile uses this wildcard) will fix the problem.
--- meta/recipes-kernel/trace-cmd/kernelshark_1.2.bb | 5 +++++ 1 file changed, 5 insertions(+)
meta/recipes-kernel/trace-cmd/kernelshark_1.2.bb +5 -0
@@ -13,6 +13,11 @@ SRC_URI_append = "file://kernelshark-fix-syntax-error-of-shell.patch" EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}' 'prefix=${prefix}' gui" +do_compile_prepend() { + # Make sure the recompile is OK + rm -f ${B}/.*.d +} + do_install() { oe_runmake CC="${CC}" AR="${AR}" prefix="${prefix}" DESTDIR="${D}" install_gui rm ${D}${bindir}/trace-cmd
Signature · 1 line
1.7.9.5
PATCH 6/7 u-boot-mkimage: fix recompile error
In reply to Robert YangFixed:
make: *** No rule to make target /path/to/sysroot/4.9.0/include/stddef.h', needed by crc32.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 .depend isn't regenerated when recompile, the content of it are:
[snip]
crc32.o: /path/to/sysroot/4.9.0/include/stddef.h
[snip]
And Makefile includes the .depend file if it exists, so there would be errors when /path/to/sysroot/4.9.0/include/stddef.h doesn't exist.
Remove .*.d (a few .d files, its Makefile uses this wildcard) will fix the problem.
--- meta/recipes-bsp/u-boot/u-boot-mkimage_2013.07.bb | 3 +++ 1 file changed, 3 insertions(+)
meta/recipes-bsp/u-boot/u-boot-mkimage_2013.07.bb +3 -0
@@ -17,6 +17,9 @@ S = "${WORKDIR}/git" EXTRA_OEMAKE = 'HOSTCC="${CC}" HOSTLD="${LD}" HOSTLDFLAGS="${LDFLAGS}" HOSTSTRIP=true' do_compile () { + # Make sure the recompile is OK + rm -f ${B}/tools/.depend + oe_runmake tools }
Signature · 1 line
1.7.9.5
PATCH 7/7 syslinux: fix reinstall error
In reply to Robert YangFixed:
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.
--- meta/recipes-devtools/syslinux/syslinux_6.01.bb | 4 ++++ 1 file changed, 4 insertions(+)
meta/recipes-devtools/syslinux/syslinux_6.01.bb +4 -0
@@ -45,6 +45,10 @@ do_configure() { } 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
Signature · 1 line
1.7.9.5