Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1966)

Unified Diff: chrome/nacl.gypi

Issue 7841008: Update chrome/nacl.gypi to fix chromeos build (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: For feedback from Evan and Raymes Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/nacl.gypi
diff --git a/chrome/nacl.gypi b/chrome/nacl.gypi
index 000c5dc7f6513561badbd70c31f700893a31cf88..870367a91c139fa101bf6e9ee20b6ee728daad7a 100644
--- a/chrome/nacl.gypi
+++ b/chrome/nacl.gypi
@@ -236,18 +236,14 @@
],
},
{
- 'target_name': 'nacl_helper_bootstrap_raw',
- 'type': 'executable',
+ 'target_name': 'nacl_helper_bootstrap_lib',
Roland McGrath 2011/09/07 17:21:17 This is a library not actually being used for anyt
Brad Chen 2011/09/07 19:05:40 Done.
+ 'type': 'static_library',
+ 'hard_depencency': 1,
'include_dirs': [
'..',
],
'sources': [
'nacl/nacl_helper_bootstrap_linux.c',
Roland McGrath 2011/09/07 17:21:17 Putting the linker script here was on the recommen
Brad Chen 2011/09/07 19:05:40 The linker script is now an input dependency of th
- # We list the linker script here for documentation purposes.
- # But even this doesn't make gyp treat it as a dependency,
- # so incremental builds won't relink when the script changes.
- # TODO(bradnelson): Fix the dependency handling.
- 'nacl/nacl_helper_bootstrap_linux.x',
],
'cflags': [
# The tiny standalone bootstrap program is incompatible with
@@ -263,27 +259,67 @@
'-fno-pic', '-fno-PIC',
'-fno-pie', '-fno-PIE',
],
- 'link_settings': {
- 'ldflags': [
- # TODO(bradchen): Delete the -B argument when Gold is verified
- # to produce good results with our custom linker script.
- # Until then use ld.bfd.
- '-B', '<(PRODUCT_DIR)/../../tools/ld_bfd',
- # This programs is (almost) entirely standalone. It has
- # its own startup code, so no crt1.o for it. It is
- # statically linked, and on x86 it actually does not use
- # libc at all. However, on ARM it needs a few (safe)
- # things from libc, so we don't use '-nostdlib' here.
- '-static', '-nostartfiles',
- # Link with our custom linker script to get out special layout.
- '-Wl,--script=<(PRODUCT_DIR)/../../chrome/nacl/nacl_helper_bootstrap_linux.x',
- # 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.
- '-Wl,-z,max-page-size=0x1000',
- ],
- },
+ },
+ {
+ 'target_name': 'nacl_helper_bootstrap_raw',
+ 'type': 'none',
+ 'dependencies': [
+ 'nacl_helper_bootstrap_lib',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'link_with_ld_bfd',
+ 'variables': {
+ # We list the linker script here for documentation purposes.
+ # But even this doesn't make gyp treat it as a dependency,
+ # so incremental builds won't relink when the script changes.
+ # TODO(bradnelson): Fix the dependency handling.
Roland McGrath 2011/09/07 17:21:17 This comment doesn't make any sense here.
Brad Chen 2011/09/07 19:05:40 Removed On 2011/09/07 17:21:17, Roland McGrath wro
+ 'nacl_bootstrap_linker_script': './nacl/nacl_helper_bootstrap_linux.x',
+ },
+ 'inputs': [
+ '<(PRODUCT_DIR)/obj.target/nacl_helper_bootstrap_lib/chrome/nacl/nacl_helper_bootstrap_linux.o',
Evan Martin 2011/09/07 17:14:00 This is hardcoding a private build path. It may w
Brad Chen 2011/09/07 19:05:40 With help from Brad Nelson I think I figured out h
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/nacl_helper_bootstrap_raw',
+ ],
+ 'message': 'Linking nacl_helper_bootstrap_raw',
+ 'conditions': [
+ ['target_arch=="x64"', {
+ 'variables': {
+ 'linker_emulation': 'elf_x86_64',
+ }
+ }],
+ ['target_arch=="ia32"', {
+ 'variables': {
+ 'linker_emulation': 'elf_i386',
+ }
+ }],
+ ['target_arch=="arm"', {
+ 'variables': {
+ 'linker_emulation': 'arm',
Roland McGrath 2011/09/07 17:21:17 This should be 'armelf_linux_eabi'.
Brad Chen 2011/09/07 19:05:40 Done.
+ }
+ }],
+ ],
+ 'action': ['../tools/ld_bfd/ld',
+ '-m', '<(linker_emulation)',
+ # 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)
Roland McGrath 2011/09/07 17:21:17 This comment doesn't make sense here. There is no
Brad Chen 2011/09/07 19:05:40 I've revised it, removing the -nostdlib', so that
+ # things from libc, so we don't use '-nostdlib' here.
+ '-static',
+ '-o', '<@(_outputs)',
+ # Link with custom linker script for special layout.
+ '--script=<(nacl_bootstrap_linker_script)',
+ # 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',
+ '<@(_inputs)',
Roland McGrath 2011/09/07 17:21:17 For ARM it's necessary to add a '-lc' argument aft
Brad Chen 2011/09/07 19:05:40 Done.
+ ],
+ }
+ ],
},
{
'target_name': 'nacl_helper_bootstrap',
@@ -301,7 +337,7 @@
'message': 'Munging ELF program header',
'action': ['python', '<@(_inputs)', '<@(_outputs)']
}],
- }
+ },
],
}],
],
« no previous file with comments | « chrome/chrome_exe.gypi ('k') | chrome/nacl/nacl_fork_delegate_linux.cc » ('j') | tools/ld_bfd/ld » ('J')

Powered by Google App Engine
This is Rietveld 408576698