aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-01-19 23:29:08 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-01-20 12:57:31 +0000
commitacd7b1c2ee9f3ff84c45a723dba5e0bc5f6a100c (patch)
tree584b832c1982df812437a8cae0a910b2e31007dd /meta/classes
parent16b57e352f5844f301cc6c7ea4f87bf750c11d67 (diff)
downloadopenembedded-core-acd7b1c2ee9f3ff84c45a723dba5e0bc5f6a100c.tar.gz
package.bbclass: Fix shlibs cross package-arch contamination
I found that if I had two packages architectures built (say core2 and i586), that the shlibs data from i586 was being used in the core2 build. This lead to odd dependency issues if the i586 build was out of date and core2 was being targetted. When loading shlibs files, the last loaded wins so we need to iterate the lists from least to strongest weighting, not the other way around. With this patch applied, the contamination issue is resolved. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/package.bbclass6
1 files changed, 4 insertions, 2 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 8609e75354..4794f0ece1 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1521,7 +1521,8 @@ python package_do_shlibs() {
d.setVar('pkg_postinst_%s' % pkg, postinst)
list_re = re.compile('^(.*)\.list$')
- for dir in shlibs_dirs:
+ # Go from least to most specific since the last one found wins
+ for dir in reversed(shlibs_dirs):
if not os.path.exists(dir):
continue
for file in os.listdir(dir):
@@ -1643,7 +1644,8 @@ python package_do_pkgconfig () {
f.write('%s\n' % p)
f.close()
- for dir in shlibs_dirs:
+ # Go from least to most specific since the last one found wins
+ for dir in reversed(shlibs_dirs):
if not os.path.exists(dir):
continue
for file in os.listdir(dir):