Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 1/1] allarch: do not set baselib
@ 2018-01-02 20:00 Joe Slater
  2018-01-02 22:45 ` Richard Purdie
  0 siblings, 1 reply; 7+ messages in thread
From: Joe Slater @ 2018-01-02 20:00 UTC (permalink / raw)
  To: openembedded-core

postinstall scripts may run target binaries and need to know
where shared libraries are.

Signed-off-by: Joe Slater <jslater@windriver.com>
---
 meta/classes/allarch.bbclass | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
index 51ba509..3749328 100644
--- a/meta/classes/allarch.bbclass
+++ b/meta/classes/allarch.bbclass
@@ -11,9 +11,8 @@ python () {
         # No need for virtual/libc or a cross compiler
         d.setVar("INHIBIT_DEFAULT_DEPS","1")
 
-        # 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")
+        # Set these to a common set of values, we shouldn't be using them other than for WORKDIR directory
+        # naming anyway.  Do not set baselib because postinstall may need to know where shared libraries are.
         d.setVar("TARGET_ARCH", "allarch")
         d.setVar("TARGET_OS", "linux")
         d.setVar("TARGET_CC_ARCH", "none")
-- 
2.7.4



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

* Re: [PATCH 1/1] allarch: do not set baselib
  2018-01-02 20:00 [PATCH 1/1] allarch: do not set baselib Joe Slater
@ 2018-01-02 22:45 ` Richard Purdie
  2018-01-03  8:43   ` Alexander Kanavin
  0 siblings, 1 reply; 7+ messages in thread
From: Richard Purdie @ 2018-01-02 22:45 UTC (permalink / raw)
  To: Joe Slater, openembedded-core

On Tue, 2018-01-02 at 12:00 -0800, Joe Slater wrote:
> postinstall scripts may run target binaries and need to know
> where shared libraries are.
> 
> Signed-off-by: Joe Slater <jslater@windriver.com>
> ---
>  meta/classes/allarch.bbclass | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
> index 51ba509..3749328 100644
> --- a/meta/classes/allarch.bbclass
> +++ b/meta/classes/allarch.bbclass
> @@ -11,9 +11,8 @@ python () {
>          # No need for virtual/libc or a cross compiler
>          d.setVar("INHIBIT_DEFAULT_DEPS","1")
>  
> -        # 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")
> +        # Set these to a common set of values, we shouldn't be using them other than for WORKDIR directory
> +        # naming anyway.  Do not set baselib because postinstall may need to know where shared libraries are.
>          d.setVar("TARGET_ARCH", "allarch")
>          d.setVar("TARGET_OS", "linux")
>          d.setVar("TARGET_CC_ARCH", "none")

Sorry, but I don't think this can work :/.

Do the sstate sig selftests pass with this change?

I appreciate this will make some things "work" but it will mean that
allarch packages rebuild for each architecture or multilib and that
isn't right either.

So we need a better solution here. Why do we need libdir paths to run
binaries anyway? Is this a libexec issue? Perhaps the things in
question shouldn't be allarch?

Cheers,

Richard


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

* Re: [PATCH 1/1] allarch: do not set baselib
  2018-01-02 22:45 ` Richard Purdie
@ 2018-01-03  8:43   ` Alexander Kanavin
  2018-01-03 21:46     ` Slater, Joseph
  2018-01-03 21:56     ` Richard Purdie
  0 siblings, 2 replies; 7+ messages in thread
From: Alexander Kanavin @ 2018-01-03  8:43 UTC (permalink / raw)
  To: Richard Purdie, Joe Slater, openembedded-core, Burton, Ross

On 01/03/2018 12:45 AM, Richard Purdie wrote:
> Sorry, but I don't think this can work :/.
> 
> Do the sstate sig selftests pass with this change?
> 
> I appreciate this will make some things "work" but it will mean that
> allarch packages rebuild for each architecture or multilib and that
> isn't right either.
> 
> So we need a better solution here. Why do we need libdir paths to run
> binaries anyway? Is this a libexec issue? Perhaps the things in
> question shouldn't be allarch?

I think Ross has spent some time developing a fix for this same issue, 
perhaps he can chime in?

Alex


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

* Re: [PATCH 1/1] allarch: do not set baselib
  2018-01-03  8:43   ` Alexander Kanavin
@ 2018-01-03 21:46     ` Slater, Joseph
  2018-01-03 21:58       ` Richard Purdie
  2018-01-03 21:56     ` Richard Purdie
  1 sibling, 1 reply; 7+ messages in thread
From: Slater, Joseph @ 2018-01-03 21:46 UTC (permalink / raw)
  To: Alexander Kanavin, Richard Purdie,
	openembedded-core@lists.openembedded.org, BURTON, ROSS

Currently, we do have to provide qemuwrapper with LD_LIBRARY_PATH.  We could hard-code all possible paths into that and not use ${libdir} and ${base_libdir}.  (I tried it and it works.)  We could also create a couple of new variables, like original_base_libdir, that don't get clobbered by allarch.   Maybe qemuwrapper should be smart enough to compute LD_LIBRARY_PATH...

Joe

-----Original Message-----
From: Alexander Kanavin [mailto:alexander.kanavin@linux.intel.com] 
Sent: Wednesday, January 03, 2018 12:43 AM
To: Richard Purdie; Slater, Joseph; openembedded-core@lists.openembedded.org; BURTON, ROSS
Subject: Re: [OE-core] [oe-core][PATCH 1/1] allarch: do not set baselib

On 01/03/2018 12:45 AM, Richard Purdie wrote:
> Sorry, but I don't think this can work :/.
> 
> Do the sstate sig selftests pass with this change?
> 
> I appreciate this will make some things "work" but it will mean that 
> allarch packages rebuild for each architecture or multilib and that 
> isn't right either.
> 
> So we need a better solution here. Why do we need libdir paths to run 
> binaries anyway? Is this a libexec issue? Perhaps the things in 
> question shouldn't be allarch?

I think Ross has spent some time developing a fix for this same issue, perhaps he can chime in?

Alex

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

* Re: [PATCH 1/1] allarch: do not set baselib
  2018-01-03  8:43   ` Alexander Kanavin
  2018-01-03 21:46     ` Slater, Joseph
@ 2018-01-03 21:56     ` Richard Purdie
  1 sibling, 0 replies; 7+ messages in thread
From: Richard Purdie @ 2018-01-03 21:56 UTC (permalink / raw)
  To: Alexander Kanavin, Joe Slater, openembedded-core, Burton, Ross

On Wed, 2018-01-03 at 10:43 +0200, Alexander Kanavin wrote:
> On 01/03/2018 12:45 AM, Richard Purdie wrote:
> > 
> > Sorry, but I don't think this can work :/.
> > 
> > Do the sstate sig selftests pass with this change?
> > 
> > I appreciate this will make some things "work" but it will mean
> > that
> > allarch packages rebuild for each architecture or multilib and that
> > isn't right either.
> > 
> > So we need a better solution here. Why do we need libdir paths to
> > run
> > binaries anyway? Is this a libexec issue? Perhaps the things in
> > question shouldn't be allarch?
>
> I think Ross has spent some time developing a fix for this same
> issue, perhaps he can chime in?

I think he did, I think I also pointed him at the sstate signature
tests and that caused some problems. Ross may be able to elaborate
more...

Cheers,

Richard


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

* Re: [PATCH 1/1] allarch: do not set baselib
  2018-01-03 21:46     ` Slater, Joseph
@ 2018-01-03 21:58       ` Richard Purdie
  2018-01-04 17:24         ` Slater, Joseph
  0 siblings, 1 reply; 7+ messages in thread
From: Richard Purdie @ 2018-01-03 21:58 UTC (permalink / raw)
  To: Slater, Joseph, Alexander Kanavin,
	openembedded-core@lists.openembedded.org, BURTON, ROSS

On Wed, 2018-01-03 at 21:46 +0000, Slater, Joseph wrote:
> Currently, we do have to provide qemuwrapper with
> LD_LIBRARY_PATH.  We could hard-code all possible paths into that and
> not use ${libdir} and ${base_libdir}.  (I tried it and it works.)  We
> could also create a couple of new variables, like
> original_base_libdir, that don't get clobbered by allarch.   Maybe
> qemuwrapper should be smart enough to compute LD_LIBRARY_PATH...

I suspect somehow we therefore need to decouple qemuwrapper from the
target packages and just ensure that a separate script is available in
PATH when the rootfs is generated?

The rootfs should know which multilibs are enabled and be able to
generate the wrapper correctly?

Cheers,

Richard



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

* Re: [PATCH 1/1] allarch: do not set baselib
  2018-01-03 21:58       ` Richard Purdie
@ 2018-01-04 17:24         ` Slater, Joseph
  0 siblings, 0 replies; 7+ messages in thread
From: Slater, Joseph @ 2018-01-04 17:24 UTC (permalink / raw)
  To: Richard Purdie, Alexander Kanavin,
	openembedded-core@lists.openembedded.org, BURTON, ROSS

We should change fontcache.bbclass to not pass libdir, etc, to the update_font_cache script, since the environment will be set when the script executes.

That would solve the original problem, but it leaves the general problem of matching LD_LIBRARY_PATH for postinstall intercepts to the multilib for which the target binaries they run were compiled.  Or, of generating a LD_LIBRARY_PATH containing all possible paths for the rootfs being constructed.

Joe
________________________________________
From: Richard Purdie [richard.purdie@linuxfoundation.org]
Sent: Wednesday, January 03, 2018 1:58 PM
To: Slater, Joseph; Alexander Kanavin; openembedded-core@lists.openembedded.org; BURTON, ROSS
Subject: Re: [OE-core] [oe-core][PATCH 1/1] allarch: do not set baselib

On Wed, 2018-01-03 at 21:46 +0000, Slater, Joseph wrote:
> Currently, we do have to provide qemuwrapper with
> LD_LIBRARY_PATH.  We could hard-code all possible paths into that and
> not use ${libdir} and ${base_libdir}.  (I tried it and it works.)  We
> could also create a couple of new variables, like
> original_base_libdir, that don't get clobbered by allarch.   Maybe
> qemuwrapper should be smart enough to compute LD_LIBRARY_PATH...

I suspect somehow we therefore need to decouple qemuwrapper from the
target packages and just ensure that a separate script is available in
PATH when the rootfs is generated?

The rootfs should know which multilibs are enabled and be able to
generate the wrapper correctly?

Cheers,

Richard



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

end of thread, other threads:[~2018-01-04 17:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-02 20:00 [PATCH 1/1] allarch: do not set baselib Joe Slater
2018-01-02 22:45 ` Richard Purdie
2018-01-03  8:43   ` Alexander Kanavin
2018-01-03 21:46     ` Slater, Joseph
2018-01-03 21:58       ` Richard Purdie
2018-01-04 17:24         ` Slater, Joseph
2018-01-03 21:56     ` Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox