summaryrefslogtreecommitdiffstats
path: root/meta/classes/package.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r--meta/classes/package.bbclass21
1 files changed, 11 insertions, 10 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index aa8451ffe8..d8bef3afb0 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1580,6 +1580,7 @@ SHLIBSDIRS = "${WORKDIR_PKGDATA}/${MLPREFIX}shlibs2"
1580SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs2" 1580SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs2"
1581 1581
1582python package_do_shlibs() { 1582python package_do_shlibs() {
1583 import itertools
1583 import re, pipes 1584 import re, pipes
1584 import subprocess 1585 import subprocess
1585 1586
@@ -1835,16 +1836,16 @@ python package_do_shlibs() {
1835 bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0])) 1836 bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0]))
1836 continue 1837 continue
1837 if n[0] in shlib_provider.keys(): 1838 if n[0] in shlib_provider.keys():
1838 shlib_provider_path = [] 1839 shlib_provider_map = shlib_provider[n[0]]
1839 for k in shlib_provider[n[0]].keys(): 1840 matches = set()
1840 shlib_provider_path.append(k) 1841 for p in itertools.chain(list(n[2]), sorted(shlib_provider_map.keys()), libsearchpath):
1841 match = None 1842 if p in shlib_provider_map:
1842 for p in list(n[2]) + shlib_provider_path + libsearchpath: 1843 matches.add(p)
1843 if p in shlib_provider[n[0]]: 1844 if len(matches) > 1:
1844 match = p 1845 matchpkgs = ', '.join([shlib_provider_map[match][0] for match in matches])
1845 break 1846 bb.error("%s: Multiple shlib providers for %s: %s (used by files: %s)" % (pkg, n[0], matchpkgs, n[1]))
1846 if match: 1847 elif len(matches) == 1:
1847 (dep_pkg, ver_needed) = shlib_provider[n[0]][match] 1848 (dep_pkg, ver_needed) = shlib_provider_map[matches.pop()]
1848 1849
1849 bb.debug(2, '%s: Dependency %s requires package %s (used by files: %s)' % (pkg, n[0], dep_pkg, n[1])) 1850 bb.debug(2, '%s: Dependency %s requires package %s (used by files: %s)' % (pkg, n[0], dep_pkg, n[1]))
1850 1851