On Mon, 2011-08-01 at 15:51 -0700, Tom Rini wrote:
> On 08/01/2011 03:28 PM, Saul Wold wrote:
> > On 07/30/2011 11:20 AM, Khem Raj wrote:
> >> On Wednesday, July 27, 2011 05:34:45 PM Kang Kai wrote:
> >>> From: Kang Kai<kai.k...@windriver.com>
> >>>
> >>> ghostscript fails some time on autobuilder, it seems a parallel build
> >>> issue.
> >>> Add patch to fix it.
> >>>
> >>> Fixes [Yocto #1202]
> >>>
> >>> Signed-off-by: Kang Kai<kai.k...@windriver.com>
> >>> ---
> >>>   .../ghostscript-9.02-parallel-make.patch           |   17
> >>> +++++++++++++++++
> >>> .../ghostscript/ghostscript_9.02.bb                |    3 ++-
> >>>   2 files changed, 19 insertions(+), 1 deletions(-)
> >>>   create mode 100644
> >>> meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-parallel-mak
> >>>
> >>> e.patch
> >>>
> >>> diff --git
> >>> a/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-parallel-m
> >>>
> >>> ake.patch
> >>> b/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-parallel-m
> >>>
> >>> ake.patch new file mode 100644
> >>> index 0000000..76d1676
> >>> --- /dev/null
> >>> +++
> >>> b/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-parallel-m
> >>>
> >>> ake.patch @@ -0,0 +1,17 @@
> >>> +When parallel make it will fail with multi copy, see
> >>> +http://bugzilla.pokylinux.org/show_bug.cgi?id=1202
> >>> +
> >>> +Upstream-Status: Pending
> >>> +
> >>> +Signed-off-by: Kang Kai<kai.k...@windriver.com>
> >>> +--- ghostscript-9.02/base/unixhead.mak.orig    2011-07-27
> >>> 17:06:17.749456100
> >>> +0800 ++++ ghostscript-9.02/base/unixhead.mak    2011-07-27
> >>> 17:06:37.449456100
> >>> +0800 +@@ -54,7 +54,7 @@
> >>> +
> >>> + # Define generic commands.
> >>> +
> >>> +-CP_=cp
> >>> ++CP_=cp -f
> >>
> >> It means it will first delete the target if it exists. Did you check
> >> if this
> >> is correct behavior ?
> >>
> > Khem,
> > 
> > As far as I know the file is that is being copied to is the same file
> > and the CP is only used in that case, the 2 files are copied to the same
> > location due to the Parallel make.
> 
> Er, that sounds like we're just changing the race around.  Now we could
> get an incomplete file?

I don't think you would get an incomplete file, but using "cp -f" just
makes the race less likely rather than eliminating it.  You can still
get:

cp 1                    cp 2
open(foo) = -EACCESS
unlink(foo)
                        open(foo) = 0
open(foo) = -EACCESS
exit(1)
                        write()
                        exit(0)

if the two copies of cp end up running at the same time.

It seems pretty clear that the right fix is to figure out why this race
is happening in the first place and adjust the make rules to avoid it,
rather than trying to paper over it by making the conflict harmless.  If
that's hard/impossible for any reason then "cp -n" might possibly be
acceptable since then the copy of cp that loses the race will just do
nothing harmlessly.  I don't think -n is POSIX though so this is
definitely a less-good workaround.

p.



_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to