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

Richard Purdie richard.purdie at linuxfoundation.org
Fri Nov 15 23:21:50 UTC 2019


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?

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