| Index: native_client_sdk/src/tools/create_nmf.py
|
| diff --git a/native_client_sdk/src/tools/create_nmf.py b/native_client_sdk/src/tools/create_nmf.py
|
| index eabcc1273121e55a2813f8f82ae2cd47cff1d4c8..fe4abb9ff9aac813b671ebb8d103c088c4be67f6 100755
|
| --- a/native_client_sdk/src/tools/create_nmf.py
|
| +++ b/native_client_sdk/src/tools/create_nmf.py
|
| @@ -36,12 +36,11 @@ import quote
|
| ARCH_LOCATION = {
|
| 'x86-32': 'lib32',
|
| 'x86-64': 'lib64',
|
| - 'arm': 'lib',
|
| + 'arm': 'libarm',
|
| }
|
|
|
|
|
| # These constants are used within nmf files.
|
| -RUNNABLE_LD = 'runnable-ld.so' # Name of the dynamic loader
|
| MAIN_NEXE = 'main.nexe' # Name of entry point for execution
|
| PROGRAM_KEY = 'program' # Key of the program section in an nmf file
|
| URL_KEY = 'url' # Key of the url field for a particular file in an nmf file
|
| @@ -142,6 +141,11 @@ class Error(Exception):
|
| pass
|
|
|
|
|
| +def IsLoader(filename):
|
| + return (filename.endswith(get_shared_deps.LOADER_X86) or
|
| + filename.endswith(get_shared_deps.LOADER_ARM))
|
| +
|
| +
|
| class ArchFile(object):
|
| """Simple structure containing information about an architecture-specific
|
| file.
|
| @@ -295,7 +299,7 @@ class NmfUtils(object):
|
| prefix = arch_to_main_dir[arch_file.arch]
|
| url = os.path.basename(arch_file.path)
|
|
|
| - if arch_file.name.endswith('.nexe'):
|
| + if arch_file.name.endswith('.nexe') and not IsLoader(arch_file.name):
|
| prefix = posixpath.join(prefix, self.nexe_prefix)
|
| elif self.no_arch_prefix:
|
| prefix = posixpath.join(prefix, self.lib_prefix)
|
| @@ -375,10 +379,10 @@ class NmfUtils(object):
|
|
|
| manifest_items = needed.items() + extra_files_kv
|
|
|
| - # Add in runnable-ld.so entries to the program section.
|
| + # Add dynamic loader to the program section.
|
| for need, archinfo in manifest_items:
|
| - urlinfo = { URL_KEY: archinfo.url }
|
| - if need.endswith(RUNNABLE_LD):
|
| + if IsLoader(need):
|
| + urlinfo = { URL_KEY: archinfo.url }
|
| manifest[PROGRAM_KEY][archinfo.arch] = urlinfo
|
|
|
| for need, archinfo in manifest_items:
|
| @@ -386,7 +390,7 @@ class NmfUtils(object):
|
| name = archinfo.name
|
| arch = archinfo.arch
|
|
|
| - if need.endswith(RUNNABLE_LD):
|
| + if IsLoader(need):
|
| continue
|
|
|
| if need in self.main_files:
|
| @@ -557,6 +561,7 @@ def GetDefaultLibPath(config):
|
| ]
|
| libpath = [os.path.normpath(p) for p in libpath]
|
| libpath = [os.path.join(sdk_root, p) for p in libpath]
|
| + libpath.append(os.path.join(sdk_root, 'tools'))
|
| return libpath
|
|
|
|
|
|
|