From b52132122c9e68bac91099aac908de2b0c199892 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 4 Aug 2014 15:22:49 +0000 Subject: 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 --- meta/classes/package.bbclass | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'meta/classes/package.bbclass') 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 -- cgit v1.2.3-54-g00ecf