* Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
@ 2012-08-06 12:50 Rongqing Li
2012-08-07 5:59 ` Rongqing Li
0 siblings, 1 reply; 8+ messages in thread
From: Rongqing Li @ 2012-08-06 12:50 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer, Yang, Liezhi,
Hatle, Mark
Hi:
Building failed several times when building tar-replacement-native is
needed,
The error log shows
"bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tar: Text
file busy". this log proves "an attempt was made to execute a
pure-procedure
program that is currently open for writing."
Before this error, tar-replacement do_populate_sysroot just starts,
(tar-replacement-native-1.26-r2: task do_populate_sysroot: Started)
After this error, we see tar-replacement do_populate_sysroot just
finish.
So I think the root cause is that do_populate_sysroot sqlite is using
a tar command which being opened to written. in fact, all packages
need tar to do_popolate_sysroot()
I see building tar-replacement-native is started in bitbake file,
could we build tar-replacement firstly, not parallel if needed.
diff --git a/scripts/bitbake b/scripts/bitbake
index 3772d82..1bb8fed 100755
--- a/scripts/bitbake
+++ b/scripts/bitbake
@@ -134,7 +134,10 @@ if [ $buildpseudo -gt 0 ]; then
fi
done
done
- bitbake pseudo-native $TARTARGET $additionalopts -c populate_sysroot
+
+ if [ $needptar = "1" ]; then
+ sed -i 's/BB_NUMBER_THREADS =/#BB_NUMBER_THREADS =/g'
conf/local.conf
+ bitbake $TARTARGET
+ sed -i 's/#BB_NUMBER_THREADS =/BB_NUMBER_THREADS =/g'
conf/local.conf
+ fi
+
+ bitbake pseudo-native $additionalopts -c populate_sysroot
ret=$?
if [ "$ret" != "0" ]; then
exit 1
since building tar-replacement or not depends on host tar version, it is
hard to add a tar dependence to any package, and I did not have a good way
to fix this bug except the upper.
Any advice and suggestion are welcome
--
Best Reagrds,
Roy | RongQing Li
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
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
0 siblings, 1 reply; 8+ messages in thread
From: Rongqing Li @ 2012-08-07 5:59 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Yang, Liezhi
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
+
+ bitbake pseudo-native $additionalopts -c populate_sysroot
ret=$?
if [ "$ret" != "0" ]; then
exit 1
--
1.7.4.1
On 2012年08月06日 20:50, Rongqing Li wrote:
> Hi:
>
> Building failed several times when building tar-replacement-native is
> needed,
> The error log shows
> "bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tar: Text
> file busy". this log proves "an attempt was made to execute a
> pure-procedure
> program that is currently open for writing."
>
>
> Before this error, tar-replacement do_populate_sysroot just starts,
> (tar-replacement-native-1.26-r2: task do_populate_sysroot: Started)
> After this error, we see tar-replacement do_populate_sysroot just
> finish.
>
> So I think the root cause is that do_populate_sysroot sqlite is using
> a tar command which being opened to written. in fact, all packages
> need tar to do_popolate_sysroot()
>
> I see building tar-replacement-native is started in bitbake file,
> could we build tar-replacement firstly, not parallel if needed.
>
>
>
> diff --git a/scripts/bitbake b/scripts/bitbake
> index 3772d82..1bb8fed 100755
> --- a/scripts/bitbake
> +++ b/scripts/bitbake
> @@ -134,7 +134,10 @@ if [ $buildpseudo -gt 0 ]; then
> fi
> done
> done
> - bitbake pseudo-native $TARTARGET $additionalopts -c populate_sysroot
> +
> + if [ $needptar = "1" ]; then
> + sed -i 's/BB_NUMBER_THREADS =/#BB_NUMBER_THREADS =/g'
> conf/local.conf
> + bitbake $TARTARGET
> + sed -i 's/#BB_NUMBER_THREADS =/BB_NUMBER_THREADS =/g'
> conf/local.conf
> + fi
> +
> + bitbake pseudo-native $additionalopts -c populate_sysroot
> ret=$?
> if [ "$ret" != "0" ]; then
> exit 1
>
>
> since building tar-replacement or not depends on host tar version, it is
> hard to add a tar dependence to any package, and I did not have a good way
> to fix this bug except the upper.
>
> Any advice and suggestion are welcome
>
>
--
Best Reagrds,
Roy | RongQing Li
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
2012-08-07 5:59 ` Rongqing Li
@ 2012-08-07 7:41 ` Richard Purdie
2012-08-07 8:02 ` Rongqing Li
0 siblings, 1 reply; 8+ messages in thread
From: Richard Purdie @ 2012-08-07 7:41 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Yang, Liezhi
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?
If you're just building tar-native, is there a parallel race possible?
I'm not sure that there is?
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
2012-08-07 7:41 ` Richard Purdie
@ 2012-08-07 8:02 ` Rongqing Li
2012-08-07 8:57 ` Pascal Ouyang
2012-08-07 9:03 ` Richard Purdie
0 siblings, 2 replies; 8+ messages in thread
From: Rongqing Li @ 2012-08-07 8:02 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Yang, Liezhi
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
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
>
>
--
Best Reagrds,
Roy | RongQing Li
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
2012-08-07 8:02 ` Rongqing Li
@ 2012-08-07 8:57 ` Pascal Ouyang
2012-08-07 9:27 ` Rongqing Li
2012-08-07 9:03 ` Richard Purdie
1 sibling, 1 reply; 8+ messages in thread
From: Pascal Ouyang @ 2012-08-07 8:57 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Yang, Liezhi
于 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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
2012-08-07 8:02 ` Rongqing Li
2012-08-07 8:57 ` Pascal Ouyang
@ 2012-08-07 9:03 ` Richard Purdie
2012-08-07 9:25 ` Rongqing Li
1 sibling, 1 reply; 8+ messages in thread
From: Richard Purdie @ 2012-08-07 9:03 UTC (permalink / raw)
To: Rongqing Li; +Cc: Yang, Liezhi, Patches and discussions about the oe-core layer
On Tue, 2012-08-07 at 16:02 +0800, Rongqing Li wrote:
>
> 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
I understand what you did, I just don't want to do this. Its horrible
and buggy.
> > 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
but tar-replacement-native will not build until all the above have
executed their populate_sysroot tasks, correct?
So I don't see a task that would run at the same time as
tar-replacement:do_populate_sysroot which will be the last task to run?
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
2012-08-07 9:03 ` Richard Purdie
@ 2012-08-07 9:25 ` Rongqing Li
0 siblings, 0 replies; 8+ messages in thread
From: Rongqing Li @ 2012-08-07 9:25 UTC (permalink / raw)
To: Richard Purdie
Cc: Yang, Liezhi, Patches and discussions about the oe-core layer
On 2012年08月07日 17:03, Richard Purdie wrote:
> On Tue, 2012-08-07 at 16:02 +0800, Rongqing Li wrote:
>>
>> 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
>
> I understand what you did, I just don't want to do this. Its horrible
> and buggy.
>
>>> 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
>
> but tar-replacement-native will not build until all the above have
> executed their populate_sysroot tasks, correct?
>
> So I don't see a task that would run at the same time as
> tar-replacement:do_populate_sysroot which will be the last task to run?
>
> Cheers,
>
> Richard
>
>
You are right, seems I only need to build tar-replacement firstly, donot
need to disable the BB_NUMBER_THREADS.
-Roy
>
--
Best Reagrds,
Roy | RongQing Li
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build
2012-08-07 8:57 ` Pascal Ouyang
@ 2012-08-07 9:27 ` Rongqing Li
0 siblings, 0 replies; 8+ messages in thread
From: Rongqing Li @ 2012-08-07 9:27 UTC (permalink / raw)
To: Pascal Ouyang
Cc: Yang, Liezhi, Patches and discussions about the oe-core layer
On 2012年08月07日 16:57, Pascal Ouyang wrote:
> 于 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
>
I think your suggestion is valuable to fix the similar problem,
we can adopt this method.
-Roy
>>
>> 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
>>>
>>>
>>
>
>
--
Best Reagrds,
Roy | RongQing Li
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-08-07 9:39 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2012-08-07 9:27 ` Rongqing Li
2012-08-07 9:03 ` Richard Purdie
2012-08-07 9:25 ` Rongqing Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox