All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] Fix target-sdk-provides-dummy do_package error w/ & w/o multilib in one build project
@ 2019-04-30  7:15 kai.kang
  2019-04-30  7:15 ` [PATCH 1/1] target-sdk-provides-dummy: set nostamp for do_package kai.kang
  0 siblings, 1 reply; 4+ messages in thread
From: kai.kang @ 2019-04-30  7:15 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Kai Kang <kai.kang@windriver.com>

The failure still exists, so re-send the patch.

Kai Kang (1):
  target-sdk-provides-dummy: set nostamp for do_package

 meta/recipes-core/meta/target-sdk-provides-dummy.bb | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.20.0



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/1] target-sdk-provides-dummy: set nostamp for do_package
  2019-04-30  7:15 [PATCH 0/1] Fix target-sdk-provides-dummy do_package error w/ & w/o multilib in one build project kai.kang
@ 2019-04-30  7:15 ` kai.kang
  2019-04-30 10:19   ` richard.purdie
  0 siblings, 1 reply; 4+ messages in thread
From: kai.kang @ 2019-04-30  7:15 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Kai Kang <kai.kang@windriver.com>

It exists a situation that there is a common config file includes
multilib.conf but variable MULTILIBS is not set by default:

  require conf/multilib.conf
  MULTILIBS ?= ""

When build target-sdk-provides-dummy in the same build project with
following steps, it fails.

1 $ echo 'MACHINE = "qemux86"' >>conf/local.conf
  $ bitbake target-sdk-provides-dummy
2 $ cat <<EOF >>conf/local.conf
    MACHINE = "qemux86-64"
    MULTILIBS = "multilib:lib32"
    DEFAULTTUNE_virtclass-multilib-lib32 = "i586"
    EOF
  $ bitbake target-sdk-provides-dummy
  $ bitbake lib32-target-sdk-provides-dummy

It fails to build lib32-target-sdk-provides-dummy with error messages:

| ERROR: target-sdk-provides-dummy-1.0-r0 do_packagedata: The recipe target-sdk-provides-dummy
|  is trying to install files into a shared area when those files already exist. Those files
|  and their manifest location are:
|   .../tmp/pkgdata/qemux86-64/lib32-target-sdk-provides-dummy
|     (matched in manifest-qemux86_64-lib32-target-sdk-provides-dummy.packagedata)
|   .../tmp/pkgdata/qemux86-64/runtime/lib32-target-sdk-provides-dummy
|     (matched in manifest-qemux86_64-lib32-target-sdk-provides-dummy.packagedata)
|   ... snip ...
| Please verify which recipe should provide the above files.

Because target-sdk-provides-dummy is a virtual package, its sstate
caches are same for both qemux86 and qemux86_64. So when build
target-sdk-provides-dummy for qemux86_64, it re-uses the sstate cache
from qemux86 and then create file lib32-target-sdk-provides-dummy under
${PKGDATA_DIR} which should not and then conflicts with lib32-target-sdk-provides-dummy.

Make do_package always be executed to fix the issue. Because it is a dummy
package, it won't cost too much build time.

Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
 meta/recipes-core/meta/target-sdk-provides-dummy.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
index 85472a825c..e09a08bcd7 100644
--- a/meta/recipes-core/meta/target-sdk-provides-dummy.bb
+++ b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
@@ -52,3 +52,5 @@ DUMMYPROVIDES = "\
 "
 
 require dummy-sdk-package.inc
+
+do_package[nostamp] = "1"
-- 
2.20.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] target-sdk-provides-dummy: set nostamp for do_package
  2019-04-30  7:15 ` [PATCH 1/1] target-sdk-provides-dummy: set nostamp for do_package kai.kang
@ 2019-04-30 10:19   ` richard.purdie
  2019-04-30 14:16     ` Kang Kai
  0 siblings, 1 reply; 4+ messages in thread
From: richard.purdie @ 2019-04-30 10:19 UTC (permalink / raw)
  To: kai.kang; +Cc: openembedded-core

On Tue, 2019-04-30 at 03:15 -0400, kai.kang@windriver.com wrote:
> From: Kai Kang <kai.kang@windriver.com>
> 
> It exists a situation that there is a common config file includes
> multilib.conf but variable MULTILIBS is not set by default:
> 
>   require conf/multilib.conf
>   MULTILIBS ?= ""
> 
> When build target-sdk-provides-dummy in the same build project with
> following steps, it fails.
> 
> 1 $ echo 'MACHINE = "qemux86"' >>conf/local.conf
>   $ bitbake target-sdk-provides-dummy
> 2 $ cat <<EOF >>conf/local.conf
>     MACHINE = "qemux86-64"
>     MULTILIBS = "multilib:lib32"
>     DEFAULTTUNE_virtclass-multilib-lib32 = "i586"
>     EOF
>   $ bitbake target-sdk-provides-dummy
>   $ bitbake lib32-target-sdk-provides-dummy
> 
> It fails to build lib32-target-sdk-provides-dummy with error
> messages:
> 
> > ERROR: target-sdk-provides-dummy-1.0-r0 do_packagedata: The recipe
> > target-sdk-provides-dummy
> >  is trying to install files into a shared area when those files
> > already exist. Those files
> >  and their manifest location are:
> >   .../tmp/pkgdata/qemux86-64/lib32-target-sdk-provides-dummy
> >     (matched in manifest-qemux86_64-lib32-target-sdk-provides-
> > dummy.packagedata)
> >   .../tmp/pkgdata/qemux86-64/runtime/lib32-target-sdk-provides-
> > dummy
> >     (matched in manifest-qemux86_64-lib32-target-sdk-provides-
> > dummy.packagedata)
> >   ... snip ...
> > Please verify which recipe should provide the above files.
> 
> Because target-sdk-provides-dummy is a virtual package, its sstate
> caches are same for both qemux86 and qemux86_64. So when build
> target-sdk-provides-dummy for qemux86_64, it re-uses the sstate cache
> from qemux86 and then create file lib32-target-sdk-provides-dummy
> under
> ${PKGDATA_DIR} which should not and then conflicts with lib32-target-
> sdk-provides-dummy.
> 
> Make do_package always be executed to fix the issue. Because it is a
> dummy
> package, it won't cost too much build time.
> 
> Signed-off-by: Kai Kang <kai.kang@windriver.com>
> ---
>  meta/recipes-core/meta/target-sdk-provides-dummy.bb | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/meta/recipes-core/meta/target-sdk-provides-dummy.bb
> b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
> index 85472a825c..e09a08bcd7 100644
> --- a/meta/recipes-core/meta/target-sdk-provides-dummy.bb
> +++ b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
> @@ -52,3 +52,5 @@ DUMMYPROVIDES = "\
>  "
>  
>  require dummy-sdk-package.inc
> +
> +do_package[nostamp] = "1"

This isn't the right way to fix it, we should probably whitelist that
particular file for multiple providers. See SSTATE_DUPWHITELIST.

Cheers,

Richard





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] target-sdk-provides-dummy: set nostamp for do_package
  2019-04-30 10:19   ` richard.purdie
@ 2019-04-30 14:16     ` Kang Kai
  0 siblings, 0 replies; 4+ messages in thread
From: Kang Kai @ 2019-04-30 14:16 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

On 2019/4/30 下午6:19, richard.purdie@linuxfoundation.org wrote:
> On Tue, 2019-04-30 at 03:15 -0400, kai.kang@windriver.com wrote:
>> From: Kai Kang <kai.kang@windriver.com>
>>
>> It exists a situation that there is a common config file includes
>> multilib.conf but variable MULTILIBS is not set by default:
>>
>>    require conf/multilib.conf
>>    MULTILIBS ?= ""
>>
>> When build target-sdk-provides-dummy in the same build project with
>> following steps, it fails.
>>
>> 1 $ echo 'MACHINE = "qemux86"' >>conf/local.conf
>>    $ bitbake target-sdk-provides-dummy
>> 2 $ cat <<EOF >>conf/local.conf
>>      MACHINE = "qemux86-64"
>>      MULTILIBS = "multilib:lib32"
>>      DEFAULTTUNE_virtclass-multilib-lib32 = "i586"
>>      EOF
>>    $ bitbake target-sdk-provides-dummy
>>    $ bitbake lib32-target-sdk-provides-dummy
>>
>> It fails to build lib32-target-sdk-provides-dummy with error
>> messages:
>>
>>> ERROR: target-sdk-provides-dummy-1.0-r0 do_packagedata: The recipe
>>> target-sdk-provides-dummy
>>>   is trying to install files into a shared area when those files
>>> already exist. Those files
>>>   and their manifest location are:
>>>    .../tmp/pkgdata/qemux86-64/lib32-target-sdk-provides-dummy
>>>      (matched in manifest-qemux86_64-lib32-target-sdk-provides-
>>> dummy.packagedata)
>>>    .../tmp/pkgdata/qemux86-64/runtime/lib32-target-sdk-provides-
>>> dummy
>>>      (matched in manifest-qemux86_64-lib32-target-sdk-provides-
>>> dummy.packagedata)
>>>    ... snip ...
>>> Please verify which recipe should provide the above files.
>> Because target-sdk-provides-dummy is a virtual package, its sstate
>> caches are same for both qemux86 and qemux86_64. So when build
>> target-sdk-provides-dummy for qemux86_64, it re-uses the sstate cache
>> from qemux86 and then create file lib32-target-sdk-provides-dummy
>> under
>> ${PKGDATA_DIR} which should not and then conflicts with lib32-target-
>> sdk-provides-dummy.
>>
>> Make do_package always be executed to fix the issue. Because it is a
>> dummy
>> package, it won't cost too much build time.
>>
>> Signed-off-by: Kai Kang <kai.kang@windriver.com>
>> ---
>>   meta/recipes-core/meta/target-sdk-provides-dummy.bb | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/meta/recipes-core/meta/target-sdk-provides-dummy.bb
>> b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
>> index 85472a825c..e09a08bcd7 100644
>> --- a/meta/recipes-core/meta/target-sdk-provides-dummy.bb
>> +++ b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
>> @@ -52,3 +52,5 @@ DUMMYPROVIDES = "\
>>   "
>>   
>>   require dummy-sdk-package.inc
>> +
>> +do_package[nostamp] = "1"
> This isn't the right way to fix it, we should probably whitelist that
> particular file for multiple providers. See SSTATE_DUPWHITELIST.

OK. Thanks.

Kai


>
> Cheers,
>
> Richard
>
>
>
>

-- 
Kai Kang



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-04-30 14:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-30  7:15 [PATCH 0/1] Fix target-sdk-provides-dummy do_package error w/ & w/o multilib in one build project kai.kang
2019-04-30  7:15 ` [PATCH 1/1] target-sdk-provides-dummy: set nostamp for do_package kai.kang
2019-04-30 10:19   ` richard.purdie
2019-04-30 14:16     ` Kang Kai

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.