diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/package.bbclass | 21 |
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" | |||
1580 | SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs2" | 1580 | SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs2" |
1581 | 1581 | ||
1582 | python package_do_shlibs() { | 1582 | python 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 | ||