aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorOleksii Konoplitskyi <okonopli@cisco.com>2018-07-17 18:40:34 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-24 11:52:07 +0100
commit43be374a6deceeaf105794f034957c65bb6bec72 (patch)
tree46a93d5f42deb3396f252a60feb02a4e0f4e39b9 /meta/classes
parentff0b682b807959521c85716296de7a1d26d7d18f (diff)
downloadopenembedded-core-contrib-43be374a6deceeaf105794f034957c65bb6bec72.tar.gz
package.bbclass: exclude packages as shlib providers
Some packages containing shared libraries might be registered as shlib providers when they shouldn't (for example, the lib is for their private use and must not generate any dependency). EXCLUDE_FROM_SHLIBS is targeted at that, but it could be set for entire recipe only. This patch allows to set list of packages that are not candidates for shlib providers. Variable EXCLUDE_PACKAGES_FROM_SHLIBS is used, e.g.: EXCLUDE_PACKAGES_FROM_SHLIBS = "glibc-ptest glibc-mtest" Cc: Andrii Bordunov <aborduno@cisco.com> Signed-off-by: Oleksii Konoplitskyi <okonopli@cisco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/package.bbclass16
1 files changed, 14 insertions, 2 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index edeffa978f..07bc37879c 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1603,6 +1603,18 @@ python package_do_shlibs() {
libdir_re = re.compile(".*/%s$" % d.getVar('baselib'))
packages = d.getVar('PACKAGES')
+
+ shlib_pkgs = []
+ exclusion_list = d.getVar("EXCLUDE_PACKAGES_FROM_SHLIBS")
+ if exclusion_list:
+ for pkg in packages.split():
+ if pkg not in exclusion_list.split():
+ shlib_pkgs.append(pkg)
+ else:
+ bb.note("not generating shlibs for %s" % pkg)
+ else:
+ shlib_pkgs = packages.split()
+
targetos = d.getVar('TARGET_OS')
workdir = d.getVar('WORKDIR')
@@ -1734,7 +1746,7 @@ python package_do_shlibs() {
needed = {}
shlib_provider = oe.package.read_shlib_providers(d)
- for pkg in packages.split():
+ for pkg in shlib_pkgs:
private_libs = d.getVar('PRIVATE_LIBS_' + pkg) or d.getVar('PRIVATE_LIBS') or ""
private_libs = private_libs.split()
needs_ldconfig = False
@@ -1806,7 +1818,7 @@ python package_do_shlibs() {
libsearchpath = [d.getVar('libdir'), d.getVar('base_libdir')]
- for pkg in packages.split():
+ for pkg in shlib_pkgs:
bb.debug(2, "calculating shlib requirements for %s" % pkg)
private_libs = d.getVar('PRIVATE_LIBS_' + pkg) or d.getVar('PRIVATE_LIBS') or ""