[OE-core] [PATCH RESEND] staging.bbclass: Fix wrong library path in sysroot_strip

Junling Zheng zhengjunling at huawei.com
Sat Nov 16 10:33:40 UTC 2019


On 2019/11/16 7:21, Richard Purdie wrote:
> On Fri, 2019-11-15 at 18:45 +0800, Junling Zheng wrote:
>> Do not reset libdir and base_libdir in sysroot_strip, and just pass
>> crude
>> paths as they will be reset later in strip_execs.
>>
>> Signed-off-by: Junling Zheng <zhengjunling at huawei.com>
>> ---
>>  meta/classes/staging.bbclass | 2 --
>>  1 file changed, 2 deletions(-)
>>
>> diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
>> index cca0b7e0d6..58d57a4323 100644
>> --- a/meta/classes/staging.bbclass
>> +++ b/meta/classes/staging.bbclass
>> @@ -75,8 +75,6 @@ python sysroot_strip () {
>>  
>>      dstdir = d.getVar('SYSROOT_DESTDIR')
>>      pn = d.getVar('PN')
>> -    libdir = os.path.abspath(dstdir + os.sep + d.getVar("libdir"))
>> -    base_libdir = os.path.abspath(dstdir + os.sep + d.getVar("base_libdir"))
>>      qa_already_stripped = 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split()
>>      strip_cmd = d.getVar("STRIP")
> 
> To show this function in full:
> 
> python sysroot_strip () {
>     inhibit_sysroot = d.getVar('INHIBIT_SYSROOT_STRIP')
>     if inhibit_sysroot and oe.types.boolean(inhibit_sysroot):
>         return
> 
>     dstdir = d.getVar('SYSROOT_DESTDIR')
>     pn = d.getVar('PN')
>     libdir = os.path.abspath(dstdir + os.sep + d.getVar("libdir"))
>     base_libdir = os.path.abspath(dstdir + os.sep + d.getVar("base_libdir"))
>     qa_already_stripped = 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split()
>     strip_cmd = d.getVar("STRIP")
> 
>     oe.package.strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d,
>                            qa_already_stripped=qa_already_stripped)
> }
> 
> so if we apply this patch, we just have two undefined variables which
> we pass into oe.package.strip_execs() which would cause a undefined
> variable failure?
> 

Yes, you're right. I'm sorry for my patch without testing :(
Removing them in strip_execs() will work, and I'll send a v2 patch :)

Thanks,

Junling

> I think I do see a potential problem as dstdir is added here and then
> again strip_execs() itself which does:
> 
> def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d, qa_already_stripped=False):
> 
>     libdir = os.path.abspath(dstdir + os.sep + libdir)
>     base_libdir = os.path.abspath(dstdir + os.sep + base_libdir)
> 
> but the patch as submitted doesn't solve this.
> 
> Cheers,
> 
> Richard
> 
> 
> .
> 




More information about the Openembedded-core mailing list