diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-08-04 15:22:49 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-08-04 16:25:46 +0100 |
commit | b52132122c9e68bac91099aac908de2b0c199892 (patch) | |
tree | 5e1f1f57fa528ab353b351eaf13f1a7dcbcd7f7f | |
parent | 0a7530fcd2e8ae91b297a3ebd9877957f0550d4c (diff) | |
download | poky-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.bbclass | 24 |
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 |