Patchwork [Multilib] a problem of SHLIBSDIR

login
register
mail settings
Submitter Lianhao Lu
Date June 29, 2011, 9:10 a.m.
Message ID <C10D3FB0CD45994C8A51FEC1227CE22F27050B57BE@shsmsx502.ccr.corp.intel.com>
Download mbox | patch
Permalink /patch/6671/
State New, archived
Headers show

Comments

Lianhao Lu - June 29, 2011, 9:10 a.m.
Hi,

SHLIBSDIR is a central place where to store the pkg information about the shared libraries which the package would provide. In the do_package task,  the function package_do_shlibs() will use this kind of information to automatically add RDEPENDS for the package being built. In the multilib situation, the SHLIBSDIR should be set to a different place form the normal version, otherwise a 32bit application might RDEPENDS on lib64-eglibc instead of the 32bit eglibc. 

The following patch tries to solve this problem. Any comment?
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=llu/ml&id=1970842424c414db50058ff99c6627e3ca034a04 

----------------------------------------------------------------------------------
classes/multilib.bbclass: Change the SHLIBSDIR.
Changes the SHLIBSDIR for the multilib version, so it won't mix up with the normal version.

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>

Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--	meta/classes/multilib.bbclass	1+	
1 files changed, 1 insertions, 0 deletions

Best Regards,
-Lianhao Lu
Richard Purdie - June 29, 2011, 9:49 a.m.
On Wed, 2011-06-29 at 17:10 +0800, Lu, Lianhao wrote:
> Hi,
> 
> SHLIBSDIR is a central place where to store the pkg information about
> the shared libraries which the package would provide. In the
> do_package task,  the function package_do_shlibs() will use this kind
> of information to automatically add RDEPENDS for the package being
> built. In the multilib situation, the SHLIBSDIR should be set to a
> different place form the normal version, otherwise a 32bit application
> might RDEPENDS on lib64-eglibc instead of the 32bit eglibc. 
> 
> The following patch tries to solve this problem. Any comment?
> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=llu/ml&id=1970842424c414db50058ff99c6627e3ca034a04 

I think I'd been assuming that SHLIBSDIR included the TARGET_VENDOR
string as part of the triplet but it obviously doesn't and we need this.

Good catch. I think the patch is a good one to add!

Cheers,

Richard

Patch

diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index 36c52ef..17edc37 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -30,6 +30,7 @@  python multilib_virtclass_handler () {
             e.data.setVar("BASE_PACKAGE_ARCH", "${TARGET_ARCH}")
 
     bb.data.setVar("PN", variant + "-" + bb.data.getVar("PN", e.data, False), e.data)
+    bb.data.setVar("SHLIBSDIR_virtclass-multilib-" + variant ,bb.data.getVar("SHLIBSDIR",e.data,False) + "/" + variant, e.data)
     bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", e.data, False) + override, e.data)
 }