Index: chrome/nacl.gypi |
diff --git a/chrome/nacl.gypi b/chrome/nacl.gypi |
index 337d13ef08583a1f92abc1c8bab65b789da3ff0c..f391ca1ed99dc8ee779ef244cf4094660bffd01f 100644 |
--- a/chrome/nacl.gypi |
+++ b/chrome/nacl.gypi |
@@ -187,166 +187,6 @@ |
'ldflags': ['-pie'], |
}, |
}, |
- { |
- 'target_name': 'nacl_helper_bootstrap_munge_phdr', |
- 'type': 'executable', |
- 'toolsets': ['host'], |
- 'sources': [ |
- 'nacl/nacl_helper_bootstrap_munge_phdr.c', |
- ], |
- 'libraries': [ |
- '-lelf', |
- ], |
- # This is an ugly kludge because gyp doesn't actually treat |
- # host_arch=x64 target_arch=ia32 as proper cross compilation. |
- # It still wants to compile the "host" program with -m32 et |
- # al. Though a program built that way can indeed run on the |
- # x86-64 host, we cannot reliably build this program on such a |
- # host because Ubuntu does not provide the full suite of |
- # x86-32 libraries in packages that can be installed on an |
- # x86-64 host; in particular, libelf is missing. So here we |
- # use the hack of eliding all the -m* flags from the |
- # compilation lines, getting the command close to what they |
- # would be if gyp were to really build properly for the host. |
- # TODO(bradnelson): Clean up with proper cross support. |
- 'conditions': [ |
- ['host_arch=="x64"', { |
- 'cflags/': [['exclude', '-m.*']], |
- 'ldflags/': [['exclude', '-m.*']], |
- }], |
- ], |
- }, |
- { |
- 'target_name': 'nacl_helper_bootstrap_lib', |
- 'type': 'static_library', |
- 'product_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome', |
- 'hard_depencency': 1, |
- 'include_dirs': [ |
- '..', |
- ], |
- 'sources': [ |
- 'nacl/nacl_helper_bootstrap_linux.c', |
- ], |
- 'cflags': [ |
- # The tiny standalone bootstrap program is incompatible with |
- # -fstack-protector, which might be on by default. That switch |
- # requires using the standard libc startup code, which we do not. |
- '-fno-stack-protector', |
- # We don't want to compile it PIC (or its cousin PIE), because |
- # it goes at an absolute address anyway, and because any kind |
- # of PIC complicates life for the x86-32 assembly code. We |
- # append -fno-* flags here instead of using a 'cflags!' stanza |
- # to remove -f* flags, just in case some system's compiler |
- # defaults to using PIC for everything. |
- '-fno-pic', '-fno-PIC', |
- '-fno-pie', '-fno-PIE', |
- ], |
- 'cflags!': [ |
- # TODO(glider): -fasan is deprecated. |
- '-fasan', |
- '-faddress-sanitizer', |
- '-w', |
- ], |
- 'conditions': [ |
- ['clang==1', { |
- 'cflags': [ |
- # Prevent llvm-opt from replacing my_bzero with a call |
- # to memset |
- '-ffreestanding', |
- # But make its <limits.h> still work! |
- '-U__STDC_HOSTED__', '-D__STDC_HOSTED__=1', |
- ], |
- }], |
- ], |
- }, |
- { |
- 'target_name': 'nacl_helper_bootstrap_raw', |
- 'type': 'none', |
- 'dependencies': [ |
- 'nacl_helper_bootstrap_lib', |
- ], |
- 'actions': [ |
- { |
- 'action_name': 'link_with_ld_bfd', |
- 'variables': { |
- 'bootstrap_lib': '<(SHARED_INTERMEDIATE_DIR)/chrome/<(STATIC_LIB_PREFIX)nacl_helper_bootstrap_lib<(STATIC_LIB_SUFFIX)', |
- 'linker_script': 'nacl/nacl_helper_bootstrap_linux.x', |
- }, |
- 'inputs': [ |
- '<(linker_script)', |
- '<(bootstrap_lib)', |
- '../tools/ld_bfd/ld', |
- ], |
- 'outputs': [ |
- '<(PRODUCT_DIR)/nacl_helper_bootstrap_raw', |
- ], |
- 'message': 'Linking nacl_helper_bootstrap_raw', |
- 'conditions': [ |
- ['target_arch=="x64"', { |
- 'variables': { |
- 'linker_emulation': 'elf_x86_64', |
- 'bootstrap_extra_lib': '', |
- } |
- }], |
- ['target_arch=="ia32"', { |
- 'variables': { |
- 'linker_emulation': 'elf_i386', |
- 'bootstrap_extra_lib': '', |
- } |
- }], |
- ['target_arch=="arm"', { |
- 'variables': { |
- 'linker_emulation': 'armelf_linux_eabi', |
- # ARM requires linking against libc due to ABI |
- # dependencies on memset. |
- 'bootstrap_extra_lib' : "${SYSROOT}/usr/lib/libc.a", |
- } |
- }], |
- ], |
- 'action': ['../tools/ld_bfd/ld', |
- '-m', '<(linker_emulation)', |
- '--build-id', |
- # This program is (almost) entirely |
- # standalone. It has its own startup code, so |
- # no crt1.o for it. It is statically linked, |
- # and on x86 it does not use libc at all. |
- # However, on ARM it needs a few (safe) things |
- # from libc. |
- '-static', |
- # Link with custom linker script for special |
- # layout. The script uses the symbol RESERVE_TOP. |
- '<@(nacl_reserve_top)', |
- '--script=<(linker_script)', |
- '-o', '<@(_outputs)', |
- # On x86-64, the default page size with some |
- # linkers is 2M rather than the real Linux page |
- # size of 4K. A larger page size is incompatible |
- # with our custom linker script's special layout. |
- '-z', 'max-page-size=0x1000', |
- '--whole-archive', '<(bootstrap_lib)', |
- '--no-whole-archive', |
- '<@(bootstrap_extra_lib)', |
- ], |
- } |
- ], |
- }, |
- { |
- 'target_name': 'nacl_helper_bootstrap', |
- 'dependencies': [ |
- 'nacl_helper_bootstrap_raw', |
- 'nacl_helper_bootstrap_munge_phdr#host', |
- ], |
- 'type': 'none', |
- 'actions': [{ |
- 'action_name': 'munge_phdr', |
- 'inputs': ['nacl/nacl_helper_bootstrap_munge_phdr.py', |
- '<(PRODUCT_DIR)/nacl_helper_bootstrap_munge_phdr', |
- '<(PRODUCT_DIR)/nacl_helper_bootstrap_raw'], |
- 'outputs': ['<(PRODUCT_DIR)/nacl_helper_bootstrap'], |
- 'message': 'Munging ELF program header', |
- 'action': ['python', '<@(_inputs)', '<@(_outputs)'] |
- }], |
- }, |
], |
}], |
], |