From f507f59aec16b2e3e57b9abc5d03680473d310e9 Mon Sep 17 00:00:00 2001 From: bradnelson Date: Thu, 18 Jun 2015 16:57:16 -0700 Subject: Add an option for additional library directories to sel_ldr.py sel_ldr.py can run glibc dynamically linked executables, but does not currently support the case where the shared libaries originating from somewhere other than the toolchain are needed. Adding an option to allow additional library paths. Adding toolchain usr/lib directories to the default library paths. (Patch from gauravashish07@gmail.com) BUG=None TEST=trybots + local R=sbc@chromium.org,gauravashish07@gmail.com Review URL: https://codereview.chromium.org/1192693002 Cr-Commit-Position: refs/heads/master@{#335165} --- native_client_sdk/src/tools/sel_ldr.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/native_client_sdk/src/tools/sel_ldr.py b/native_client_sdk/src/tools/sel_ldr.py index e8d487f..30be7d2 100755 --- a/native_client_sdk/src/tools/sel_ldr.py +++ b/native_client_sdk/src/tools/sel_ldr.py @@ -64,6 +64,8 @@ def main(argv): 'libraries rather then release') parser.add_argument('executable', help='executable (.nexe) to run') parser.add_argument('args', nargs='*', help='argument to pass to exectuable') + parser.add_argument('--library-path', + help='Pass extra library paths') # To enable bash completion for this command first install optcomplete # and then add this line to your .bashrc: @@ -139,24 +141,29 @@ def main(argv): if dynamic: if options.debug_libs: - libpath = os.path.join(NACL_SDK_ROOT, 'lib', - 'glibc_%s' % arch_suffix, 'Debug') + sdk_lib_dir = os.path.join(NACL_SDK_ROOT, 'lib', + 'glibc_%s' % arch_suffix, 'Debug') else: - libpath = os.path.join(NACL_SDK_ROOT, 'lib', - 'glibc_%s' % arch_suffix, 'Release') + sdk_lib_dir = os.path.join(NACL_SDK_ROOT, 'lib', + 'glibc_%s' % arch_suffix, 'Release') toolchain = '%s_x86_glibc' % osname - sdk_lib_dir = os.path.join(NACL_SDK_ROOT, 'toolchain', - toolchain, 'x86_64-nacl') + toolchain_dir = os.path.join(NACL_SDK_ROOT, 'toolchain', toolchain) + sdk_lib_dir = os.path.join(toolchain_dir, 'x86_64-nacl') if arch == 'x86-64': - sdk_lib_dir = os.path.join(sdk_lib_dir, 'lib') + lib_dir = os.path.join(sdk_lib_dir, 'lib') + usr_lib_dir = os.path.join(toolchain_dir, 'x86_64-nacl', 'usr', 'lib') else: - sdk_lib_dir = os.path.join(sdk_lib_dir, 'lib32') + lib_dir = os.path.join(sdk_lib_dir, 'lib32') + usr_lib_dir = os.path.join(toolchain_dir, 'i686-nacl', 'usr', 'lib') ldso = os.path.join(sdk_lib_dir, 'runnable-ld.so') cmd.append(ldso) Log('LD.SO = %s' % ldso) - libpath += ':' + sdk_lib_dir + libpath = [usr_lib_dir, sdk_lib_dir, lib_dir] + if options.library_path: + libpath.extend([os.path.abspath(p) for p + in options.library_path.split(':')]) cmd.append('--library-path') - cmd.append(libpath) + cmd.append(':'.join(libpath)) # Append arguments for the executable itself. -- cgit v1.1