diff options
author | Khem Raj <raj.khem@gmail.com> | 2014-10-08 22:33:05 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-10-10 22:40:45 +0100 |
commit | b2f1250f6d04fedb0c76b4deb1d4bc4bca9e2815 (patch) | |
tree | 0d844b710fb27851a4fb49e5f8c6af0f43845e2d | |
parent | e495d9ce537ac9277306bc22ce132a2c818faed8 (diff) | |
download | poky-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.bbclass | 5 |
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 |