[oe-commits] Richard Purdie : package: Fix darwin shlibs code

git at git.openembedded.org git at git.openembedded.org
Mon Aug 4 15:26:30 UTC 2014


Module: openembedded-core.git
Branch: master-next
Commit: 3a26862b7a7e0ff247bd1441d670443e83fca391
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=3a26862b7a7e0ff247bd1441d670443e83fca391

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Mon Aug  4 15:22:49 2014 +0000

package: Fix darwin shlibs code

We need to scan binaries as well as libraries for dependencies.

Also ensure if its not an object file (as found by otool), we handle
this case.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/classes/package.bbclass | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 97a92ef..6a552d9 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1470,17 +1470,19 @@ python package_do_shlibs() {
                     if l.startswith('path '):
                         rpath.append(l.split()[1])
 
-            p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file],stdout=sub.PIPE,stderr=sub.PIPE)
-            err, out = p.communicate()
-            # If returned succesfully, process stderr for results
-            if p.returncode == 0:
-                for l in err.split("\n"):
-                    l = l.strip()
-                    if not l or l.endswith(":"):
-                        continue
-                    name = os.path.basename(l.split()[0]).rsplit(".", 1)[0]
-                    if name and name not in needed[pkg]:
-                         needed[pkg].append((name, file, []))
+        p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file],stdout=sub.PIPE,stderr=sub.PIPE)
+        err, out = p.communicate()
+        # If returned succesfully, process stderr for results
+        if p.returncode == 0:
+            for l in err.split("\n"):
+                l = l.strip()
+                if not l or l.endswith(":"):
+                    continue
+                if "is not an object file" in l:
+                    continue
+                name = os.path.basename(l.split()[0]).rsplit(".", 1)[0]
+                if name and name not in needed[pkg]:
+                     needed[pkg].append((name, file, []))
 
     if d.getVar('PACKAGE_SNAP_LIB_SYMLINKS', True) == "1":
         snap_symlinks = True



More information about the Openembedded-commits mailing list