summaryrefslogtreecommitdiffstats
path: root/ppapi/native_client/native_client.gyp
diff options
context:
space:
mode:
authorbbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-16 00:35:01 +0000
committerbbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-16 00:35:01 +0000
commit21f977570e42b26a9c50da35bf8d12e44645371a (patch)
tree79d2c7ceb5dd24a3ddef8a02590a2786e6768b0e /ppapi/native_client/native_client.gyp
parent8df26d4b2c07009cca88c4082bee5a4acff16a77 (diff)
downloadchromium_src-21f977570e42b26a9c50da35bf8d12e44645371a.zip
chromium_src-21f977570e42b26a9c50da35bf8d12e44645371a.tar.gz
chromium_src-21f977570e42b26a9c50da35bf8d12e44645371a.tar.bz2
Add untrusted NaCl build for PPAPI proxy.
This patch refactors ppapi_shared.gypi and ppapi_proxy.gypi into proper includes, adds ppapi_shared_untrusted and ppapi_proxy_untrusted .gyp files, and integrates them into the nacl_irt build (ppapi/native_client/native_client.gyp). In order to build without link errors, it includes our plugin side initialization of PluginDispatcher, and a PpapiPluginMain definition. When the 'build_ppapi_ipc_proxy_untrusted' gyp flag is set to '1', this will build a working NaCl IRT using the Chrome IPC proxy. BUG=116317 TEST=compiles, runs HelloWorld and GetURL SDK examples. Review URL: https://chromiumcodereview.appspot.com/10565015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142540 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/native_client/native_client.gyp')
-rw-r--r--ppapi/native_client/native_client.gyp163
1 files changed, 162 insertions, 1 deletions
diff --git a/ppapi/native_client/native_client.gyp b/ppapi/native_client/native_client.gyp
index c34d6b5..c68bf0d 100644
--- a/ppapi/native_client/native_client.gyp
+++ b/ppapi/native_client/native_client.gyp
@@ -4,7 +4,7 @@
{
'includes': [
- '../../native_client/build/common.gypi',
+ '../../native_client/build/untrusted.gypi',
],
'conditions': [
['disable_nacl==0 and disable_nacl_untrusted==0', {
@@ -53,6 +53,12 @@
},
],
},
+ ],
+ }],
+ # TODO(bbudge) Remove the build_ppapi_ipc_proxy_untrusted flag, factor out common
+ # properties from both IRT flavors, and build them side by side.
+ ['disable_nacl==0 and disable_nacl_untrusted==0 and build_ppapi_ipc_proxy_untrusted==0', {
+ 'targets': [
{
'target_name': 'nacl_irt',
'type': 'none',
@@ -179,5 +185,160 @@
},
],
}],
+ ['disable_nacl==0 and disable_nacl_untrusted==0 and build_ppapi_ipc_proxy_untrusted==1', {
+ 'targets': [
+ {
+ 'target_name': 'nacl_irt',
+ 'type': 'none',
+ 'variables': {
+ 'nexe_target': 'nacl_irt',
+ # These out_* fields override the default filenames, which
+ # include a "_newlib" suffix.
+ 'out_newlib64': '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
+ 'out_newlib32': '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
+ 'out_newlib_arm': '<(PRODUCT_DIR)/nacl_irt_arm.nexe',
+ 'build_glibc': 0,
+ 'build_newlib': 1,
+ 'include_dirs': [
+ 'lib/gl/include',
+ '..',
+ ],
+ 'link_flags': [
+ '-Wl,--start-group',
+ '-lirt_browser',
+ '-lppapi_proxy_untrusted',
+ '-lppapi_shared_untrusted',
+ '-lipc_untrusted',
+ '-lbase_untrusted',
+ '-lsrpc',
+ '-limc_syscalls',
+ '-lplatform',
+ '-lgio',
+ '-Wl,--end-group',
+ '-lm',
+ ],
+ # See http://code.google.com/p/nativeclient/issues/detail?id=2691.
+ # The PNaCl linker (gold) does not implement the "-Ttext-segment"
+ # option. However, with the linker for x86, the "-Ttext" option
+ # does not affect the executable's base address.
+ # TODO(olonho): simplify flags handling and avoid duplication
+ # with NaCl logic.
+ 'conditions': [
+ ['target_arch!="arm"',
+ {
+ 'link_flags': [
+ '-Wl,--section-start,.rodata=<(NACL_IRT_DATA_START)',
+ '-Wl,-Ttext-segment=<(NACL_IRT_TEXT_START)',
+ ]
+ }, { # target_arch == "arm"
+ 'link_flags': [
+ '-Wl,--section-start,.rodata=<(NACL_IRT_DATA_START)',
+ '-Wl,-Ttext=<(NACL_IRT_TEXT_START)',
+ '--pnacl-allow-native',
+ '-arch', 'arm',
+ '-Wt,-mtls-use-call',
+ ],
+ },
+ ],
+ ],
+ 'sources': [
+ ],
+ 'extra_args': [
+ '--strip-debug',
+ ],
+ # TODO(bradchen): get rid of extra_deps64 and extra_deps32
+ # once native_client/build/untrusted.gypi no longer needs them.
+ 'extra_deps64': [
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_proxy_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_shared_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libipc_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libbase_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libirt_browser.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libsrpc.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libplatform.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libimc_syscalls.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgio.a',
+ ],
+ 'extra_deps32': [
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_proxy_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_shared_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libipc_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libbase_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libirt_browser.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libsrpc.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libplatform.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libimc_syscalls.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgio.a',
+ ],
+ 'extra_deps_newlib64': [
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_proxy_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_shared_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libipc_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libbase_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libirt_browser.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libsrpc.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libplatform.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libimc_syscalls.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgio.a',
+ ],
+ 'extra_deps_newlib32': [
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_proxy_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_shared_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libipc_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libbase_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libirt_browser.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libsrpc.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libplatform.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libimc_syscalls.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgio.a',
+ ],
+ 'extra_deps_glibc64': [
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libppapi_proxy_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libppapi_shared_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libipc_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libbase_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libirt_browser.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libsrpc.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libplatform.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libimc_syscalls.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libgio.a',
+ ],
+ 'extra_deps_glibc32': [
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libppapi_proxy_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libppapi_shared_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libipc_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libbase_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libirt_browser.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libsrpc.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libplatform.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libimc_syscalls.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libgio.a',
+ ],
+ 'extra_deps_arm': [
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libppapi_proxy_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libppapi_shared_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libipc_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libbase_untrusted.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libirt_browser.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libsrpc.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libplatform.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libimc_syscalls.a',
+ '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libgio.a',
+ ],
+ },
+ 'dependencies': [
+ '../ppapi_proxy_untrusted.gyp:ppapi_proxy_untrusted',
+ '../ppapi_shared_untrusted.gyp:ppapi_shared_untrusted',
+ '../../ipc/ipc_untrusted.gyp:ipc_untrusted',
+ '../../base/base_untrusted.gyp:base_untrusted',
+ '../../native_client/src/untrusted/irt/irt.gyp:irt_browser_lib',
+ '../../native_client/src/shared/srpc/srpc.gyp:srpc_lib',
+ '../../native_client/src/shared/platform/platform.gyp:platform_lib',
+ '../../native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib',
+ '../../native_client/src/shared/gio/gio.gyp:gio_lib',
+ ],
+ },
+ ],
+ }],
],
}