diff options
author | Andrei Gherzan <andrei@gherzan.ro> | 2012-04-11 12:55:22 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-04-11 12:57:17 +0100 |
commit | 00a6199b9288d2c1fec7cef4c13a820a1976c1d6 (patch) | |
tree | 0a09b5e334339463f14c08d28ee1d80c3523c0a0 /meta/classes/package.bbclass | |
parent | f03d66bcc1fde80fd8923a400d2f2edfee576068 (diff) | |
download | poky-00a6199b9288d2c1fec7cef4c13a820a1976c1d6.tar.gz |
"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]
RP: Added logic to ensure the value doesn't get overwritten once set
(From OE-Core rev: 6d39af4f85220f20bad09b0fdd3ee0a7ec19c12d)
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>---
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r-- | meta/classes/package.bbclass | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index d35667a91d..c3f077af3a 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass | |||
@@ -1263,6 +1263,7 @@ python package_do_shlibs() { | |||
1263 | lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}")) | 1263 | lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}")) |
1264 | 1264 | ||
1265 | def linux_so(root, path, file): | 1265 | def linux_so(root, path, file): |
1266 | needs_ldconfig = False | ||
1266 | cmd = d.getVar('OBJDUMP', True) + " -p " + pipes.quote(os.path.join(root, file)) + " 2>/dev/null" | 1267 | cmd = d.getVar('OBJDUMP', True) + " -p " + pipes.quote(os.path.join(root, file)) + " 2>/dev/null" |
1267 | cmd = "PATH=\"%s\" %s" % (d.getVar('PATH', True), cmd) | 1268 | cmd = "PATH=\"%s\" %s" % (d.getVar('PATH', True), cmd) |
1268 | fd = os.popen(cmd) | 1269 | fd = os.popen(cmd) |
@@ -1283,6 +1284,7 @@ python package_do_shlibs() { | |||
1283 | needs_ldconfig = True | 1284 | needs_ldconfig = True |
1284 | if snap_symlinks and (file != this_soname): | 1285 | if snap_symlinks and (file != this_soname): |
1285 | renames.append((os.path.join(root, file), os.path.join(root, this_soname))) | 1286 | renames.append((os.path.join(root, file), os.path.join(root, this_soname))) |
1287 | return needs_ldconfig | ||
1286 | 1288 | ||
1287 | def darwin_so(root, path, file): | 1289 | def darwin_so(root, path, file): |
1288 | fullpath = os.path.join(root, file) | 1290 | fullpath = os.path.join(root, file) |
@@ -1382,7 +1384,8 @@ python package_do_shlibs() { | |||
1382 | if targetos == "darwin" or targetos == "darwin8": | 1384 | if targetos == "darwin" or targetos == "darwin8": |
1383 | darwin_so(root, dirs, file) | 1385 | darwin_so(root, dirs, file) |
1384 | elif os.access(path, os.X_OK) or lib_re.match(file): | 1386 | elif os.access(path, os.X_OK) or lib_re.match(file): |
1385 | linux_so(root, dirs, file) | 1387 | ldconfig = linux_so(root, dirs, file) |
1388 | needs_ldconfig = needs_ldconfig or ldconfig | ||
1386 | for (old, new) in renames: | 1389 | for (old, new) in renames: |
1387 | bb.note("Renaming %s to %s" % (old, new)) | 1390 | bb.note("Renaming %s to %s" % (old, new)) |
1388 | os.rename(old, new) | 1391 | os.rename(old, new) |