diff options
Diffstat (limited to 'chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp')
-rw-r--r-- | chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp | 95 |
1 files changed, 79 insertions, 16 deletions
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp index 787d6206b29..d3d5f2a11a4 100644 --- a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp +++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp @@ -8,35 +8,98 @@ ], 'targets': [ { - 'target_name': 'pnacl_irt_shim', + # The full library, which PNaCl uses for offline .pexe -> .nexe. + # We keep the target names in this file short to avoid having really long + # path names on Windows. + # https://code.google.com/p/nativeclient/issues/detail?id=3846 + 'target_name': 'shim_aot', 'type': 'none', 'variables': { 'nlib_target': 'libpnacl_irt_shim.a', - 'out_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/libpnacl_irt_shim.a', - 'out_newlib32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/libpnacl_irt_shim.a', - 'out_newlib64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/libpnacl_irt_shim.a', + 'out_pnacl_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/>(nlib_target)', + 'out_pnacl_newlib_x86_32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/>(nlib_target)', + 'out_pnacl_newlib_x86_64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/>(nlib_target)', + 'out_pnacl_newlib_mips': '>(tc_lib_dir_pnacl_translate)/lib-mips32/>(nlib_target)', + 'out_pnacl_newlib_x86_32_nonsfi': '>(tc_lib_dir_pnacl_translate)/lib-x86-32-nonsfi/>(nlib_target)', 'build_glibc': 0, - 'build_newlib': 1, - 'force_arm_pnacl': 1, + 'build_newlib': 0, + 'build_pnacl_newlib': 1, + 'pnacl_native_biased': 1, + 'enable_x86_32': 1, + 'enable_x86_64': 1, + 'enable_arm': 1, + 'enable_mips': 1, + 'enable_x86_32_nonsfi': 1, 'sources': [ + 'irt_shim_ppapi.c', 'pnacl_shim.c', 'shim_entry.c', 'shim_ppapi.c', ], - 'include_dirs': [ - '../../../..', + 'extra_args': [ + '--strip-debug', + ], + # Indicate that shim should not depend on unstable IRT hook interface. + 'compile_flags': [ + '-DPNACL_SHIM_AOT', + ], + }, + 'dependencies': [ + '<(DEPTH)/native_client/tools.gyp:prep_toolchain', + ], + }, + # Smaller shim library for PNaCl in-browser translation. + # Uses an unstable IRT hook interface to get the shim from the IRT itself. + # If we ever change that hook interface or change the in-IRT shim's ABI, + # we would need to clear the translation cache to match the new IRT. + { + 'target_name': 'shim_browser', + 'type': 'none', + 'variables': { + # Same output file name as shim_aot, so that we don't need to change + # the linker commandlines, but output to the "for_browser" directory, + # and have the pnacl_support_extension copy from that directory. + 'nlib_target': 'libpnacl_irt_shim.a', + 'out_pnacl_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/for_browser/>(nlib_target)', + 'out_pnacl_newlib_x86_32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/for_browser/>(nlib_target)', + 'out_pnacl_newlib_x86_64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/for_browser/>(nlib_target)', + 'out_pnacl_newlib_mips': '>(tc_lib_dir_pnacl_translate)/lib-mips32/for_browser/>(nlib_target)', + 'build_glibc': 0, + 'build_newlib': 0, + 'build_pnacl_newlib': 1, + 'pnacl_native_biased': 1, + 'enable_x86_32': 1, + 'enable_x86_64': 1, + 'enable_arm': 1, + 'enable_mips': 1, + 'sources': [ + 'shim_entry.c', + 'shim_ppapi.c', ], 'extra_args': [ '--strip-debug', ], - 'conditions': [ - ['target_arch=="arm"', { - 'compile_flags': [ - '--pnacl-allow-translate', - '--pnacl-allow-native', - '-arch', 'arm', - ], - }], + }, + 'dependencies': [ + '<(DEPTH)/native_client/tools.gyp:prep_toolchain', + ], + }, + { + # Second half of shim library for PNaCl in-browser translation. + # This half goes into the IRT and is returned by the unstable + # IRT hook interface. + 'target_name': 'shim_for_irt', + 'type': 'none', + 'variables': { + 'nlib_target': 'libpnacl_irt_shim_for_irt.a', + 'build_glibc': 0, + 'build_newlib': 0, + # Unlike the above, build this the way the IRT is built so that the + # output library directories match the IRT linking search paths. + 'build_irt': 1, + 'sources': [ + 'irt_shim_ppapi.c', + 'pnacl_shim.c', ], }, 'dependencies': [ |