Skip to contentSkip to conversation

package.bbclass: Create empty key/value if not there for shlib_provider

PATCH New Khem Raj 1 participant 1 message Nov 21, 2014

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

PATCH 1/1 package.bbclass: Create empty key/value if not there for shlib_provider

When we use ASSUME_SHLIBS,e.g.

ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"

then we end up with errors like below when using shlibs2 (dizzy+)

File: 'package_do_shlibs', lineno: 216, function: package_do_shlibs

     0212:            dep_pkg = dep_pkg.rsplit("_", 1)
     0213:            if len(dep_pkg) == 2:
     0214:                lib_ver = dep_pkg[1]
     0215:            dep_pkg = dep_pkg[0]
 *** 0216:            shlib_provider[l][libdir] = (dep_pkg, lib_ver)
     0217:
     0218:    libsearchpath = [d.getVar('libdir', True),

d.getVar('base_libdir', True)]
0219:
0220: for pkg in packages.split():
Exception: KeyError: 'libEGL.so.1'

This is because the entry which is being populated does not exist so lets create it if its not already there.

Change-Id I9e292c5439e5d1e01ea48341334507aacc3784ae
---
 meta/classes/package.bbclass | 2 ++
 1 file changed, 2 insertions(+)
meta/classes/package.bbclass +2 -0
index 2aec3e6..696d173 100644
@@ -1554,6 +1554,8 @@ python package_do_shlibs() {
             if len(dep_pkg) == 2:
                 lib_ver = dep_pkg[1]
             dep_pkg = dep_pkg[0]
+            if l not in shlib_provider:
+                shlib_provider[l] = {}
             shlib_provider[l][libdir] = (dep_pkg, lib_ver)
 
     libsearchpath = [d.getVar('libdir', True), d.getVar('base_libdir', True)]
Signature · 1 line
2.1.1