summaryrefslogtreecommitdiff
path: root/meta/classes/package.bbclass
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:24:48 +0100
commit3a26862b7a7e0ff247bd1441d670443e83fca391 (patch)
treebe5323259664cb552f620aef02431761ce94bec8 /meta/classes/package.bbclass
parente27573b6c3562662e4b2f5d8543eb7d150c3bc92 (diff)
downloadopenembedded-core-3a26862b7a7e0ff247bd1441d670443e83fca391.tar.gz
openembedded-core-3a26862b7a7e0ff247bd1441d670443e83fca391.tar.bz2
openembedded-core-3a26862b7a7e0ff247bd1441d670443e83fca391.zip
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@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package.bbclass')
-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() {
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