summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-04 15:22:49 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-04 16:25:46 +0100
commitb52132122c9e68bac91099aac908de2b0c199892 (patch)
tree5e1f1f57fa528ab353b351eaf13f1a7dcbcd7f7f
parent0a7530fcd2e8ae91b297a3ebd9877957f0550d4c (diff)
downloadpoky-b52132122c9e68bac91099aac908de2b0c199892.tar.gz
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. (From OE-Core rev: 3a26862b7a7e0ff247bd1441d670443e83fca391) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/package.bbclass24
1 files changed, 13 insertions, 11 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 97a92eff22..6a552d904e 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1470,17 +1470,19 @@ python package_do_shlibs() {
1470 if l.startswith('path '): 1470 if l.startswith('path '):
1471 rpath.append(l.split()[1]) 1471 rpath.append(l.split()[1])
1472 1472
1473 p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file],stdout=sub.PIPE,stderr=sub.PIPE) 1473 p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file],stdout=sub.PIPE,stderr=sub.PIPE)
1474 err, out = p.communicate() 1474 err, out = p.communicate()
1475 # If returned succesfully, process stderr for results 1475 # If returned succesfully, process stderr for results
1476 if p.returncode == 0: 1476 if p.returncode == 0:
1477 for l in err.split("\n"): 1477 for l in err.split("\n"):
1478 l = l.strip() 1478 l = l.strip()
1479 if not l or l.endswith(":"): 1479 if not l or l.endswith(":"):
1480 continue 1480 continue
1481 name = os.path.basename(l.split()[0]).rsplit(".", 1)[0] 1481 if "is not an object file" in l:
1482 if name and name not in needed[pkg]: 1482 continue
1483 needed[pkg].append((name, file, [])) 1483 name = os.path.basename(l.split()[0]).rsplit(".", 1)[0]
1484 if name and name not in needed[pkg]:
1485 needed[pkg].append((name, file, []))
1484 1486
1485 if d.getVar('PACKAGE_SNAP_LIB_SYMLINKS', True) == "1": 1487 if d.getVar('PACKAGE_SNAP_LIB_SYMLINKS', True) == "1":
1486 snap_symlinks = True 1488 snap_symlinks = True