summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2014-10-08 22:33:05 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-10-10 22:40:45 +0100
commitb2f1250f6d04fedb0c76b4deb1d4bc4bca9e2815 (patch)
tree0d844b710fb27851a4fb49e5f8c6af0f43845e2d
parente495d9ce537ac9277306bc22ce132a2c818faed8 (diff)
downloadpoky-b2f1250f6d04fedb0c76b4deb1d4bc4bca9e2815.tar.gz
package_do_shlibs: Look for provider in the path thats in shlib_provider dictionary
shlib2 code puts the information about path where a provider will be found. e.g. {'/usr/lib/llvm3.3': ('libllvm3.3-llvm-3.3', '3.3')} This is obtained from new shlib2 pkgdata from llvm3.3/3.3-r0/pkgdata/shlibs2/libllvm3.3-llvm-3.3.list However when we search for NEEDED libraries we ignore the key above which is the path where the provider library is installed and instead just seach in libdir and base_libdir and hence libraries which are not in above standard search paths gets ignored even if they appear in DT_NEEDED sections and a note is emitted NOTE: Couldn't find shared library provider for libLLVM-3.3.so, used by files: .... IMO this note should actually become an error since if we do not have all DT_NEEDED libraries in image the system is dysfunctional. This patch extracts this libpath from key and add it to seach paths when looing for a provider of a shared library [YOCTO #6798] Change-Id: Ie5f08632e37ba8d3439c8aaae33bc68b8996792f (From OE-Core rev: bf8472274ac1e9a35f8cbc82357da6c95b396759) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/package.bbclass5
1 files changed, 4 insertions, 1 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index f17c8d584a..2aec3e6bd9 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1572,8 +1572,11 @@ python package_do_shlibs() {
1572 bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0])) 1572 bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0]))
1573 continue 1573 continue
1574 if n[0] in shlib_provider.keys(): 1574 if n[0] in shlib_provider.keys():
1575 shlib_provider_path = list()
1576 for k in shlib_provider[n[0]].keys():
1577 shlib_provider_path.append(k)
1575 match = None 1578 match = None
1576 for p in n[2] + libsearchpath: 1579 for p in n[2] + shlib_provider_path + libsearchpath:
1577 if p in shlib_provider[n[0]]: 1580 if p in shlib_provider[n[0]]:
1578 match = p 1581 match = p
1579 break 1582 break