On 9/12/17 10:59 AM, Ross Burton wrote: > allarch currently resets baselib to "lib" in an attempt to keep allarch > recipes > uniform. However if the real value for $baselib is actually needed, for > example > in a multilib environment where $baselib is lib64 for standard binaries and > the > allarch package is using postinst intercepts which need to know the real value > of $libdir, then a non-existant or incorrect $libdir will be used. > > Real world example: liberation-fonts is allarch and inherits fontcache, which > uses a postinst intercept to run fc-cache inside qemu-user. In a multilib > configuration where normal libdir=/usr/lib64 and lib32 libdir=/usr/lib qemu > will > try running a 64-bit fc-cache with a 32-bit ld-linux, and predicatably the > binary crashes.
This still won't work right. If we put an allarch package in a configuration that can be either 32-bit or 64-bit (which is the point of allarch), then how will it know which arch this magic script is running on? It sounds to me like the way the script is running needs to be fixed (and/or qemu needs to be fixed). Calls to QEMU should inherit the matching system envrionment, not assume an environment from the post-install scripts. --Mark > Signed-off-by: Ross Burton <[email protected]> > --- > meta/classes/allarch.bbclass | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass > index 51ba509cd0a..e0326039d0c 100644 > --- a/meta/classes/allarch.bbclass > +++ b/meta/classes/allarch.bbclass > @@ -13,7 +13,7 @@ python () { > > # Set these to a common set of values, we shouldn't be using them > other that for WORKDIR directory > # naming anyway > - d.setVar("baselib", "lib") > + #d.setVar("baselib", "lib") > d.setVar("TARGET_ARCH", "allarch") > d.setVar("TARGET_OS", "linux") > d.setVar("TARGET_CC_ARCH", "none") > @@ -48,4 +48,3 @@ python () { > elif bb.data.inherits_class('packagegroup', d) and not > bb.data.inherits_class('nativesdk', d): > bb.error("Please ensure recipe %s sets PACKAGE_ARCH before inherit > packagegroup" % d.getVar("FILE")) > } > - > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
