All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] package.bbclass: needs_ldconfig from linux_so is needed in global namespace
Date: Tue, 10 Apr 2012 10:02:45 +0100	[thread overview]
Message-ID: <1334048565.6861.1.camel@ted> (raw)
In-Reply-To: <4803097570d9e27eb3931388eb76fe6d3d00591a.1333720467.git.andrei@gherzan.ro>

On Fri, 2012-04-06 at 16:57 +0300, Andrei Gherzan wrote:
> "The suite of statements in a function definition executes with a local namespace
> that is different from the global namespace. This means that all variables created
> within a function are local to that function. When the suite finishes, these
> working variables are discarded."
> 
> In this way the needs_ldconfig variable in linux_so never gets True in the statements
> below this function. As global statement is generally discouraged, a return value
> would be a clean and fast way to solve this issue.
> 
> [YOCTO #2205]
> 
> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> ---
>  meta/classes/package.bbclass |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index d35667a..c98e8fa 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -1263,6 +1263,7 @@ python package_do_shlibs() {
>  	lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"))
>  
>  	def linux_so(root, path, file):
> +		needs_ldconfig = False
>  		cmd = d.getVar('OBJDUMP', True) + " -p " + pipes.quote(os.path.join(root, file)) + " 2>/dev/null"
>  		cmd = "PATH=\"%s\" %s" % (d.getVar('PATH', True), cmd)
>  		fd = os.popen(cmd)
> @@ -1283,6 +1284,7 @@ python package_do_shlibs() {
>  					needs_ldconfig = True
>  				if snap_symlinks and (file != this_soname):
>  					renames.append((os.path.join(root, file), os.path.join(root, this_soname)))
> +		return needs_ldconfig
>  
>  	def darwin_so(root, path, file):
>  		fullpath = os.path.join(root, file)
> @@ -1382,7 +1384,7 @@ python package_do_shlibs() {
>  				if targetos == "darwin" or targetos == "darwin8":
>  					darwin_so(root, dirs, file)
>  				elif os.access(path, os.X_OK) or lib_re.match(file):
> -					linux_so(root, dirs, file)
> +					needs_ldconfig = linux_so(root, dirs, file)

Shouldn't this be something like:

ldconfig = linux_so(root, dirs, file)
needs_ldconfig = needs_ldconfig or ldconfig

or can this only get called once?

Cheers,

Richard




  reply	other threads:[~2012-04-10  9:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-06 13:56 [PATCH 0/1] Solve Bug 2205 - package.bbclass/linux_so never calls ldconfig Andrei Gherzan
2012-04-06 13:57 ` [PATCH 1/1] package.bbclass: needs_ldconfig from linux_so is needed in global namespace Andrei Gherzan
2012-04-10  9:02   ` Richard Purdie [this message]
2012-04-10 15:34     ` Andrei Gherzan
2012-04-11 11:57       ` Richard Purdie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1334048565.6861.1.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.