Index: native_client_sdk/src/tools/lib/get_shared_deps.py |
diff --git a/native_client_sdk/src/tools/lib/get_shared_deps.py b/native_client_sdk/src/tools/lib/get_shared_deps.py |
index 3287474080eb59d44c498f7f0991984c0ec1848b..99a5884bdd26b66a32634cc9da9df343a5d6d895 100644 |
--- a/native_client_sdk/src/tools/lib/get_shared_deps.py |
+++ b/native_client_sdk/src/tools/lib/get_shared_deps.py |
@@ -39,6 +39,7 @@ OBJDUMP_ARCH_MAP = { |
'elf64-x86-64-nacl': 'x86-64', |
'elf32-x86-64-nacl': 'x86-64', |
'elf32-i386-nacl': 'x86-32', |
+ 'elf32-littlearm-nacl': 'arm', |
} |
# The proper name of the dynamic linker, as kept in the IRT. This is |
@@ -201,6 +202,17 @@ def _FindLibsInPath(name, lib_path): |
A list of system paths that match the given name within the lib_path''' |
files = [] |
for dirname in lib_path: |
+ # The libc.so files in the the glibc toolchain is actually a linker |
+ # script which references libc.so.<SHA1>. This means the lib.so itself |
+ # does not end up in the NEEDED section for glibc. However with bionic |
+ # the SONAME is actually libc.so. If we pass glibc's libc.so to objdump |
+ # if fails to parse it, os this filters out libc.so expept for within |
+ # the bionic toolchain. |
+ # TODO(noelallen): Remove this once the SONAME in bionic is made to be |
+ # unique in the same it is under glibc: |
+ # https://code.google.com/p/nativeclient/issues/detail?id=3833 |
+ if name == 'libc.so' and 'bionic' not in dirname: |
+ continue |
filename = os.path.join(dirname, name) |
if os.path.exists(filename): |
files.append(filename) |