Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Pascal Ouyang <xin.ouyang@windriver.com>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Cc: "Yang, Liezhi" <Liezhi.Yang@windriver.com>
Subject: Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
Date: Tue, 7 Aug 2012 16:57:55 +0800	[thread overview]
Message-ID: <5020D893.3030101@windriver.com> (raw)
In-Reply-To: <5020CB95.3010501@windriver.com>

于 2012年08月07日 16:02, Rongqing Li 写道:
>
>
> On 2012年08月07日 15:41, Richard Purdie wrote:
>> On Tue, 2012-08-07 at 13:59 +0800, Rongqing Li wrote:
>>> Paste a RFC PATCH
>>>
>>> [RFC PATCH 1/1] bitbake: compile tar-replacement firstly, and not
>>> parallel
>>>
>>> Compiling tar-replacement or not is decided by version of host tar,
>>> if the host tar version is lower than 1.23, Compiling tar-replacement
>>> is needed.
>>>
>>> When doing popoluate tar-replacement sysroot to write the tar to
>>> sysroot, but writing is not finished. other packages probably
>>> use the being written tar to unzip file, which will lead to failure
>>> and report the below error:
>>> "bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tar: Text file busy"
>>>
>>> Now we compile tar-replacement firstly and not parallel to ensure
>>> that a being written tar command will not be used.
>>>
>>> Signed-off-by: Roy.Li <rongqing.li@windriver.com>
>>> ---
>>>    scripts/bitbake |   14 +++++++++++++-
>>>    1 files changed, 13 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/scripts/bitbake b/scripts/bitbake
>>> index 3772d82..eb6b144 100755
>>> --- a/scripts/bitbake
>>> +++ b/scripts/bitbake
>>> @@ -134,7 +134,19 @@ if [ $buildpseudo -gt 0 ]; then
>>>                fi
>>>            done
>>>        done
>>> -    bitbake pseudo-native $TARTARGET $additionalopts -c
>>> populate_sysroot
>>> +
>>> +    if [ $needtar = "1" ]; then
>>> +       NUM_THREAD_LINE=`grep -n "^\s*BB_NUMBER_THREADS" conf/local.conf
>>> |awk -F':' '{print $1}'`
>>> +    test -n "$NUM_THREAD_LINE" &&
>>> +    sed -i ''"$NUM_THREAD_LINE"'s/^\s*BB_NUMBER_THREADS/#\0/g'
>>> conf/local.conf
>>> +
>>> +    bitbake $TARTARGET -c populate_sysroot
>>> +
>>> +    test -n "$NUM_THREAD_LINE" &&
>>> +    sed -i
>>> ''"$NUM_THREAD_LINE"'s/^#\s*BB_NUMBER_THREADS/BB_NUMBER_THREADS/g'
>>> conf/local.conf
>>> +    fi
>>
>> We are *NOT* running sed over local.conf. What is the user used a
>> different configuration file for example?
>
> I use the sed to disable NUM_THREAD_LINE in conf/local.conf if
> NUM_THREAD_LINE has been enabled.
>
> After compile $TARTARGET, use the sed to enable NUM_THREAD_LINE
> in conf/local.conf
>
>
>
>> If you're just building tar-native, is there a parallel race possible?
>> I'm not sure that there is?
>
> Even if I just build tar-native, I still have several packages which
> are needed to building.
>
>
> $bitbake tar-replacement-native -g
>
> $ cat pn-buildlist
> autoconf-native
> libtool-native
> m4-native
> gettext-minimal-native
> tar-replacement-native
> quilt-native
> gnu-config-native
> automake-native
>

To avoid to use the incomplete tar binary, I think we could rename the 
binary name to "tar-native" before do_populate_sysroot, and then rename 
back to "tar" after do_populate_sysroot().

Thanks.

- Pascal

>
> Thanks for your reply.
> -Roy
>>
>> For the record I hate this script and what it has become, its horrible.
>> It started as a workaround for pseudo-native, its becoming a dumping
>> ground for a whole set of nasty workarounds :(.
>>
>> Cheers,
>>
>> Richard
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
>>
>


-- 
- Pascal



  reply	other threads:[~2012-08-07  9:09 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-06 12:50 Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build Rongqing Li
2012-08-07  5:59 ` Rongqing Li
2012-08-07  7:41   ` Richard Purdie
2012-08-07  8:02     ` Rongqing Li
2012-08-07  8:57       ` Pascal Ouyang [this message]
2012-08-07  9:27         ` Rongqing Li
2012-08-07  9:03       ` Richard Purdie
2012-08-07  9:25         ` Rongqing Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5020D893.3030101@windriver.com \
    --to=xin.ouyang@windriver.com \
    --cc=Liezhi.Yang@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox