* [U-Boot] [PATCH] Makefile: fix broken pipe error for lcd4_lwmon5 board
@ 2013-12-18 8:32 Masahiro Yamada
2013-12-18 9:31 ` Stefan Roese
0 siblings, 1 reply; 3+ messages in thread
From: Masahiro Yamada @ 2013-12-18 8:32 UTC (permalink / raw)
To: u-boot
Before this commit, a broken pipe error sometimes happened
when building lcd4_lwmon5 board with Buildman.
This commit re-writes build rules of
u-boot.spr and u-boot-img-spl-at-end.bin
more simply without using a pipe.
Besides fixing a broken pipe error,
this commit gives us other advantages:
- Do not generate intermidiate files, spl/u-boot-spl.img
and spl/u-boot-spl-pad.img for creating u-boot.spr
- Do not generate an intermidiate file, u-boot-pad.img
for creating u-boot-img-spl-at-end.bin
Such intermidiate files were not deleted by "make clean" or "make mrpropr".
Nor u-boot-pad.img was ignored by git.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
---
Hello Simon.
I noticed a broken pipe error when I was using Buildman.
The error happens here:
$(obj)u-boot-img-spl-at-end.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_UBOOT_PAD_TO) \
of=$(obj)u-boot-pad.img 2>/dev/null
I cannot understand why this error happens on Buildman.
(I have never seen it on MAKEALL script.)
Does the same error happen on your machine too?
Do you have any idea why this error happen?
What I did is as follows:
$ git checkout master
$ git describe
v2014.01-rc2
$ git checkout -b cosmetic
Add many cosmetic commits. Do not change any source files.
(For example, changing README files)
I think about 20 commits are enough.
$ git branch --set-upstream-to=master
$ tool/buildman/buildman -b cosmetic lcd4_lwmon5
No section: 'make-flags'
Building 21 commits for 1 boards (1 thread, 8 jobs per thread)
Cloning repo for thread 0
14 7 0 /21 lcd4_lwmon5
$ tools/buildman/buildman -se -b cosmetic
No section: 'make-flags'
Summary of 21 commits for 1194 boards (8 threads, 1 job per thread)
01: Prepare v2014.01-rc2
powerpc: + lcd4_lwmon5
+tr: write error: Broken pipe
+tr: write error
02: cosmetic1
powerpc: lcd4_lwmon5
-tr: write error: Broken pipe
-tr: write error
03: cosmetic2
04: cosmetic3
05: cosmetic4
06: cosmetic5
07: cosmetic6
08: cosmetic7
09: cosmetic8
10: cosmetic9
11: cosmetic10
12: cosmetic11
13: cosmetic12
14: cosmetic13
15: cosmetic14
16: cosmetic15
powerpc: + lcd4_lwmon5
+tr: write error: Broken pipe
+tr: write error
17: cosmetic16
18: cosmetic17
19: cosmetic18
20: cosmetic19
21: cosmetic20
Here, a broken pipe error occurred at 01 and fixed at 02.
It happend again at 16.
But the result changes every time.
The error happens randomly.
Makefile | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index f03d116..de5969c 100644
--- a/Makefile
+++ b/Makefile
@@ -471,12 +471,10 @@ $(obj)u-boot.sb: $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin
$(obj)u-boot.spr: $(obj)u-boot.img $(obj)spl/u-boot-spl.bin
$(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
-a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n XLOADER \
- -d $(obj)spl/u-boot-spl.bin $(obj)spl/u-boot-spl.img
- tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_SPL_PAD_TO) \
- of=$(obj)spl/u-boot-spl-pad.img 2>/dev/null
- dd if=$(obj)spl/u-boot-spl.img of=$(obj)spl/u-boot-spl-pad.img \
- conv=notrunc 2>/dev/null
- cat $(obj)spl/u-boot-spl-pad.img $(obj)u-boot.img > $@
+ -d $(obj)spl/u-boot-spl.bin $@
+ $(OBJCOPY) -I binary -O binary \
+ --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff $@
+ cat $(obj)u-boot.img >> $@
ifneq ($(CONFIG_TEGRA),)
$(obj)u-boot-nodtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
@@ -499,11 +497,10 @@ $(obj)u-boot-img.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
# at the start padded up to the start of the SPL image. And then concat
# the SPL image to the end.
$(obj)u-boot-img-spl-at-end.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
- tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_UBOOT_PAD_TO) \
- of=$(obj)u-boot-pad.img 2>/dev/null
- dd if=$(obj)u-boot.img of=$(obj)u-boot-pad.img \
- conv=notrunc 2>/dev/null
- cat $(obj)u-boot-pad.img $(obj)spl/u-boot-spl.bin > $@
+ cp $(obj)u-boot.img $@
+ $(OBJCOPY) -I binary -O binary --pad-to=$(CONFIG_UBOOT_PAD_TO) \
+ --gap-fill=0xff $(obj)u-boot.img $@
+ cat $(obj)spl/u-boot-spl.bin >> $@
ifeq ($(CONFIG_SANDBOX),y)
GEN_UBOOT = \
--
1.8.3.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* [U-Boot] [PATCH] Makefile: fix broken pipe error for lcd4_lwmon5 board
2013-12-18 8:32 [U-Boot] [PATCH] Makefile: fix broken pipe error for lcd4_lwmon5 board Masahiro Yamada
@ 2013-12-18 9:31 ` Stefan Roese
2013-12-18 10:03 ` Masahiro Yamada
0 siblings, 1 reply; 3+ messages in thread
From: Stefan Roese @ 2013-12-18 9:31 UTC (permalink / raw)
To: u-boot
Hi Masahiro,
On 18.12.2013 09:32, Masahiro Yamada wrote:
> Before this commit, a broken pipe error sometimes happened
> when building lcd4_lwmon5 board with Buildman.
>
> This commit re-writes build rules of
> u-boot.spr and u-boot-img-spl-at-end.bin
> more simply without using a pipe.
>
> Besides fixing a broken pipe error,
> this commit gives us other advantages:
>
> - Do not generate intermidiate files, spl/u-boot-spl.img
> and spl/u-boot-spl-pad.img for creating u-boot.spr
>
> - Do not generate an intermidiate file, u-boot-pad.img
> for creating u-boot-img-spl-at-end.bin
>
> Such intermidiate files were not deleted by "make clean" or "make mrpropr".
> Nor u-boot-pad.img was ignored by git.
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
This looks like a nice improvement. Thanks!
Acked-by: Stefan Roese <sr@denx.de>
Thanks,
Stefan
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] [PATCH] Makefile: fix broken pipe error for lcd4_lwmon5 board
2013-12-18 9:31 ` Stefan Roese
@ 2013-12-18 10:03 ` Masahiro Yamada
0 siblings, 0 replies; 3+ messages in thread
From: Masahiro Yamada @ 2013-12-18 10:03 UTC (permalink / raw)
To: u-boot
Hello Stefan
> > Besides fixing a broken pipe error,
> > this commit gives us other advantages:
> >
> > - Do not generate intermidiate files, spl/u-boot-spl.img
> > and spl/u-boot-spl-pad.img for creating u-boot.spr
> >
> > - Do not generate an intermidiate file, u-boot-pad.img
> > for creating u-boot-img-spl-at-end.bin
> >
> > Such intermidiate files were not deleted by "make clean" or "make mrpropr".
> > Nor u-boot-pad.img was ignored by git.
> >
> > Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
>
> This looks like a nice improvement. Thanks!
>
> Acked-by: Stefan Roese <sr@denx.de>
Thanks for you review.
But I found a mistake.
I posted v2.
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-12-18 10:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-18 8:32 [U-Boot] [PATCH] Makefile: fix broken pipe error for lcd4_lwmon5 board Masahiro Yamada
2013-12-18 9:31 ` Stefan Roese
2013-12-18 10:03 ` Masahiro Yamada
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.