Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index 153a5003db78b2dbba5a99040bfff86c4acae650..3a071c8b760483be3aadd8302aa235efcd6d1f25 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -391,9 +391,12 @@ |
# See https://sites.google.com/a/chromium.org/dev/developers/testing/addresssanitizer |
'asan%': 0, |
'asan_blacklist%': '<(PRODUCT_DIR)/../../tools/memory/asan/blacklist.txt', |
- # Enable coverage gathering instrumentation in ASan. This flag also |
- # controls coverage granularity (1 for function-level coverage, 2 for |
- # block-level coverage). |
+ # Enable coverage gathering instrumentation in sanitizer tools. This flag |
+ # also controls coverage granularity (1 for function-level coverage, 2 |
+ # for block-level coverage). |
+ 'sanitizer_coverage%': 0, |
+ # Deprecated, only works if |sanitizer_coverage| isn't set. |
+ # TODO(glider): remove this flag. |
'asan_coverage%': 0, |
# Enable intra-object-overflow detection in ASan (experimental). |
'asan_field_padding%': 0, |
@@ -1119,6 +1122,7 @@ |
'asan%': '<(asan)', |
'asan_blacklist%': '<(asan_blacklist)', |
'asan_coverage%': '<(asan_coverage)', |
+ 'sanitizer_coverage%': '<(sanitizer_coverage)', |
'asan_field_padding%': '<(asan_field_padding)', |
'use_sanitizer_options%': '<(use_sanitizer_options)', |
'syzyasan%': '<(syzyasan)', |
@@ -1668,7 +1672,7 @@ |
'android_ndk_root%': '<(android_ndk_root)', |
'android_sdk_root%': '<(android_sdk_root)', |
'android_sdk_version%': '<(android_sdk_version)', |
- 'android_libcpp_root': '<(android_ndk_root)/sources/cxx-stl/llvm-libc++', |
+ 'android_stlport_root': '<(android_ndk_root)/sources/cxx-stl/stlport', |
'host_os%': '<(host_os)', |
'android_sdk%': '<(android_sdk_root)/platforms/android-<(android_sdk_version)', |
@@ -1745,10 +1749,9 @@ |
'android_sdk%': '<(android_sdk)', |
'android_sdk_jar%': '<(android_sdk)/android.jar', |
- 'android_libcpp_root': '<(android_libcpp_root)', |
- 'android_libcpp_include': '<(android_libcpp_root)/libcxx/include', |
- 'android_libcpp_libs_dir': '<(android_libcpp_root)/libs/<(android_app_abi)', |
- |
+ 'android_stlport_root': '<(android_stlport_root)', |
+ 'android_stlport_include': '<(android_stlport_root)/stlport', |
+ 'android_stlport_libs_dir': '<(android_stlport_root)/libs/<(android_app_abi)', |
'host_os%': '<(host_os)', |
# Location of the "objcopy" binary, used by both gyp and scripts. |
@@ -2066,10 +2069,10 @@ |
}, |
'grit_defines': [ |
'-t', 'ios', |
- # iOS uses a whitelist to filter resources. |
- '-w', '<(DEPTH)/build/ios/grit_whitelist.txt', |
'--no-output-all-resource-defines', |
], |
+ # iOS uses a whitelist to filter resources. |
+ 'grit_whitelist%': '<(DEPTH)/build/ios/grit_whitelist.txt', |
# Enable host builds when generating with ninja-ios. |
'conditions': [ |
@@ -2077,12 +2080,10 @@ |
'host_os%': "mac", |
}], |
- # TODO(sdefresne): Remove the target_subarch check once Apple has |
- # upstreamed the support for "arm64". http://crbug.com/341453 |
# TODO(eugenebut): Remove enable_coverage check once |
# libclang_rt.profile_ios.a is bundled with Chromium's clang. |
# http://crbug.com/450379 |
- ['target_subarch!="arm32" or enable_coverage or "<(GENERATOR)"=="xcode"', { |
+ ['enable_coverage or "<(GENERATOR)"=="xcode"', { |
'clang_xcode%': 1, |
}], |
], |
@@ -2688,74 +2689,47 @@ |
'GCC_GENERATE_DEBUGGING_SYMBOLS': 'NO', |
}, |
'conditions': [ |
- ['clang==1 and asan==0 and msan==0 and tsan==0 and ubsan_vptr==0', { |
- # Clang creates chubby debug information, which makes linking very |
- # slow. For now, don't create debug information with clang. See |
- # http://crbug.com/70000 |
- 'conditions': [ |
- ['OS=="linux"', { |
- 'variables': { |
- 'debug_extra_cflags': '-g0', |
- }, |
- }], |
- # Android builds symbols on release by default, disable them. |
- ['OS=="android"', { |
- 'variables': { |
- 'debug_extra_cflags': '-g0', |
- 'release_extra_cflags': '-g0', |
- }, |
- }], |
- ], |
- }, { # else clang!=1 |
- 'conditions': [ |
- ['OS=="win" and fastbuild==2', { |
- # Completely disable debug information. |
- 'msvs_settings': { |
- 'VCLinkerTool': { |
- 'GenerateDebugInformation': 'false', |
- }, |
- 'VCCLCompilerTool': { |
- 'DebugInformationFormat': '0', |
- }, |
- }, |
- }], |
- ['OS=="win" and fastbuild==1', { |
- 'msvs_settings': { |
- 'VCLinkerTool': { |
- # This tells the linker to generate .pdbs, so that |
- # we can get meaningful stack traces. |
- 'GenerateDebugInformation': 'true', |
- }, |
- 'VCCLCompilerTool': { |
- # No debug info to be generated by compiler. |
- 'DebugInformationFormat': '0', |
- }, |
- }, |
- }], |
- ['OS=="linux" and fastbuild==2', { |
- 'variables': { |
- 'debug_extra_cflags': '-g0', |
- }, |
- }], |
- ['OS=="linux" and fastbuild==1', { |
- 'variables': { |
- 'debug_extra_cflags': '-g1', |
- }, |
- }], |
- ['OS=="android" and fastbuild==2', { |
- 'variables': { |
- 'debug_extra_cflags': '-g0', |
- 'release_extra_cflags': '-g0', |
- }, |
- }], |
- ['OS=="android" and fastbuild==1', { |
- 'variables': { |
- 'debug_extra_cflags': '-g1', |
- 'release_extra_cflags': '-g1', |
- }, |
- }], |
- ], |
- }], # clang!=1 |
+ ['OS=="win" and fastbuild==2', { |
+ # Completely disable debug information. |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ 'GenerateDebugInformation': 'false', |
+ }, |
+ 'VCCLCompilerTool': { |
+ 'DebugInformationFormat': '0', |
+ }, |
+ }, |
+ }], |
+ ['OS=="win" and fastbuild==1', { |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ # This tells the linker to generate .pdbs, so that |
+ # we can get meaningful stack traces. |
+ 'GenerateDebugInformation': 'true', |
+ }, |
+ 'VCCLCompilerTool': { |
+ # No debug info to be generated by compiler. |
+ 'DebugInformationFormat': '0', |
+ }, |
+ }, |
+ }], |
+ ['(OS=="android" or OS=="linux") and fastbuild==2', { |
+ 'variables': { 'debug_extra_cflags': '-g0', }, |
+ }], |
+ ['(OS=="android" or OS=="linux") and fastbuild==1', { |
+ # TODO(thakis): Change this to -g1 once http://crbug.com/456947 is |
+ # fixed. |
+ 'variables': { 'debug_extra_cflags': '-g0', }, |
+ }], |
+ # Android builds symbols on release by default, disable them. |
+ ['OS=="android" and fastbuild==2', { |
+ 'variables': { 'release_extra_cflags': '-g0', }, |
+ }], |
+ ['OS=="android" and fastbuild==1', { |
+ # TODO(thakis): Change this to -g1 once http://crbug.com/456947 is |
+ # fixed. |
+ 'variables': { 'release_extra_cflags': '-g0', }, |
+ }], |
], |
}], # fastbuild!=0 |
['dont_embed_build_metadata==1', { |
@@ -3544,7 +3518,7 @@ |
}, |
}], |
# TODO(thakis): Enable this everywhere. http://crbug.com/371125 |
- ['(OS=="linux" or OS=="android") and asan==0 and msan==0 and tsan==0 and ubsan==0 and ubsan_vptr==0 and use_ozone!=1', { |
+ ['(OS=="linux" or OS=="android") and asan==0 and msan==0 and tsan==0 and ubsan==0 and ubsan_vptr==0', { |
'target_defaults': { |
'ldflags': [ |
'-Wl,-z,defs', |
@@ -4047,6 +4021,13 @@ |
'-fstack-protector', # stack protector is always enabled on arm64. |
], |
}], |
+ # TODO: Remove webview test once webview fully compiles from |
+ # Chromium. crbug.com/440793 |
+ ['OS=="android" and android_webview_build==0', { |
+ 'ldflags': [ |
+ '-fuse-ld=gold', |
+ ], |
+ }], |
], |
}], |
], |
@@ -4272,12 +4253,27 @@ |
}], |
], |
}], |
- ['asan_coverage!=0', { |
+ ['asan_coverage!=0 and sanitizer_coverage==0', { |
'target_conditions': [ |
['_toolset=="target"', { |
'cflags': [ |
'-fsanitize-coverage=<(asan_coverage)', |
], |
+ 'defines': [ |
+ 'SANITIZER_COVERAGE', |
+ ], |
+ }], |
+ ], |
+ }], |
+ ['sanitizer_coverage!=0', { |
+ 'target_conditions': [ |
+ ['_toolset=="target"', { |
+ 'cflags': [ |
+ '-fsanitize-coverage=<(sanitizer_coverage)', |
+ ], |
+ 'defines': [ |
+ 'SANITIZER_COVERAGE', |
+ ], |
}], |
], |
}], |
@@ -4406,8 +4402,10 @@ |
# https://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/281527606915bb36 |
# Only apply this to the target linker, since the host |
# linker might not be gold, but isn't used much anyway. |
- '-Wl,--threads', |
- '-Wl,--thread-count=4', |
+ # TODO(raymes): Disable threading because gold is frequently |
+ # crashing on the bots: crbug.com/161942. |
+ # '-Wl,--threads', |
+ # '-Wl,--thread-count=4', |
], |
}], |
], |
@@ -4499,9 +4497,9 @@ |
# Figure this out early since it needs symbols from libgcc.a, so it |
# has to be before that in the set of libraries. |
['component=="shared_library"', { |
- 'android_libcpp_library': 'c++_shared', |
+ 'android_stlport_library': 'stlport_shared', |
}, { |
- 'android_libcpp_library': 'c++_static', |
+ 'android_stlport_library': 'stlport_static', |
}], |
], |
@@ -4585,6 +4583,8 @@ |
'defines': [ |
'ANDROID', |
'__GNU_SOURCE=1', # Necessary for clone() |
+ 'USE_STLPORT=1', |
+ '_STLP_USE_PTR_SPECIALIZATIONS=1', |
'CHROME_BUILD_ID="<(chrome_build_id)"', |
], |
'ldflags!': [ |
@@ -4658,13 +4658,12 @@ |
'-nostdlib', |
], |
'libraries': [ |
- '-l<(android_libcpp_library)', |
- '-latomic', |
+ '-l<(android_stlport_library)', |
# Manually link the libgcc.a that the cross compiler uses. |
'<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)', |
- '-lm', |
'-lc', |
'-ldl', |
+ '-lm', |
], |
}], |
['android_webview_build==1', { |
@@ -4716,20 +4715,20 @@ |
'-Wl,--icf=safe', |
], |
}], |
+ # NOTE: The stlport header include paths below are specified in |
+ # cflags rather than include_dirs because they need to come |
+ # after include_dirs. Think of them like system headers, but |
+ # don't use '-isystem' because the arm-linux-androideabi-4.4.3 |
+ # toolchain (circa Gingerbread) will exhibit strange errors. |
+ # The include ordering here is important; change with caution. |
['android_webview_build==0', { |
'cflags': [ |
- '-isystem<(android_libcpp_include)', |
- '-isystem<(android_ndk_root)/sources/cxx-stl/llvm-libc++abi/libcxxabi/include', |
- '-isystem<(android_ndk_root)/sources/android/support/include', |
+ '-isystem<(android_stlport_include)', |
], |
'ldflags': [ |
- '-L<(android_libcpp_libs_dir)', |
+ '-L<(android_stlport_libs_dir)', |
], |
}, { # else: android_webview_build!=0 |
- 'defines': [ |
- 'USE_STLPORT=1', |
- '_STLP_USE_PTR_SPECIALIZATIONS=1', |
- ], |
'aosp_build_settings': { |
# Specify that we want to statically link stlport from the |
# NDK. This will provide all the include and library paths |
@@ -4933,12 +4932,27 @@ |
], |
}, |
}], |
- ['asan_coverage!=0', { |
+ ['asan_coverage!=0 and sanitizer_coverage==0', { |
'target_conditions': [ |
['_toolset=="target"', { |
'cflags': [ |
'-fsanitize-coverage=<(asan_coverage)', |
], |
+ 'defines': [ |
+ 'SANITIZER_COVERAGE', |
+ ], |
+ }], |
+ ], |
+ }], |
+ ['sanitizer_coverage!=0', { |
+ 'target_conditions': [ |
+ ['_toolset=="target"', { |
+ 'cflags': [ |
+ '-fsanitize-coverage=<(sanitizer_coverage)', |
+ ], |
+ 'defines': [ |
+ 'SANITIZER_COVERAGE', |
+ ], |
}], |
], |
}], |
@@ -5498,15 +5512,12 @@ |
}], |
], |
'conditions': [ |
+ # Building with Clang on Windows is a work in progress and very |
+ # experimental. See crbug.com/82385. |
['clang==1', { |
- # Building with Clang on Windows is a work in progress and very |
- # experimental. See crbug.com/82385. |
'VCCLCompilerTool': { |
- 'WarnAsError': 'false', |
- 'RuntimeTypeInfo': 'false', |
'AdditionalOptions': [ |
'-fmsc-version=1800', |
- '/fallback', |
# Many files use intrinsics without including this header. |
# TODO(hans): Fix those files, or move this to sub-GYPs. |
@@ -5549,6 +5560,14 @@ |
], |
}, |
}], |
+ ['clang==1 and target_arch=="ia32"', { |
+ 'VCCLCompilerTool': { |
+ 'WarnAsError': 'false', |
+ 'AdditionalOptions': [ |
+ '/fallback', |
+ ], |
+ }, |
+ }], |
], |
}, |
}, |