Skip to contentSkip to conversation

fix rebuild error

PATCH New Robert Yang 1 participant 8 messages Aug 7, 2014

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index 09b017e..28d5cf1 100644
@@ -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
#2 lore raw

PATCH 2/7 trace-cmd: fix recompile error

In reply to Robert Yang

Fixed:
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
index 6f3319d..7f99dde 100644
@@ -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
#3 lore raw

PATCH 3/7 logrotate: fix recompile error

In reply to Robert Yang

Fixed:
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
index b386b85..3a6a228 100644
@@ -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
#4 lore raw

PATCH 4/7 kexec-tools: fix recompile error

In reply to Robert Yang

Fixed:
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
index 50b448c..7e3b7ad 100644
@@ -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
#5 lore raw

PATCH 5/7 kernelshark: fix recompile error

In reply to Robert Yang

Fixed:
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
index 9af91c9..99de97b 100644
@@ -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
#6 lore raw

PATCH 6/7 u-boot-mkimage: fix recompile error

In reply to Robert Yang

Fixed:
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
index 2ca6050..93c8102 100644
@@ -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
#7 lore raw

PATCH 7/7 syslinux: fix reinstall error

In reply to Robert Yang

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.

---
 meta/recipes-devtools/syslinux/syslinux_6.01.bb |    4 ++++
 1 file changed, 4 insertions(+)
meta/recipes-devtools/syslinux/syslinux_6.01.bb +4 -0
index e8a1fd4..2377cc0 100644
@@ -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