| Index: build/common.gypi
|
| diff --git a/build/common.gypi b/build/common.gypi
|
| index c5a8facb9e1122e7fce09a5cdfaca06c486d7047..a4062488aeb1a10bd828b3844bb49e5d0722888d 100644
|
| --- a/build/common.gypi
|
| +++ b/build/common.gypi
|
| @@ -173,6 +173,7 @@
|
|
|
| # The system root for cross-compiles. Default: none.
|
| 'sysroot%': '',
|
| + 'use_sysroot%': 0,
|
| 'chroot_cmd%': '',
|
|
|
| # The system libdir used for this ABI.
|
| @@ -416,9 +417,6 @@
|
| # See https://code.google.com/p/sawbuck/wiki/SyzyASanHowTo
|
| 'syzyasan%': 0,
|
|
|
| - # Enable crash reporting via Kasko.
|
| - 'kasko%': 0,
|
| -
|
| # Enable building with LSan (Clang's -fsanitize=leak option).
|
| # -fsanitize=leak only works with clang, but lsan=1 implies clang=1
|
| # See https://sites.google.com/a/chromium.org/dev/developers/testing/leaksanitizer
|
| @@ -941,7 +939,7 @@
|
| 'sysroot%': '<!(cd <(DEPTH) && pwd -P)/chrome/installer/linux/debian_wheezy_arm-sysroot',
|
| }], # OS=="linux" and target_arch=="arm" and chromeos==0
|
|
|
| - ['OS=="linux" and branding=="Chrome" and buildtype=="Official" and chromeos==0', {
|
| + ['OS=="linux" and ((branding=="Chrome" and buildtype=="Official" and chromeos==0) or use_sysroot==1)' , {
|
| 'conditions': [
|
| ['target_arch=="x64"', {
|
| 'sysroot%': '<!(cd <(DEPTH) && pwd -P)/chrome/installer/linux/debian_wheezy_amd64-sysroot',
|
| @@ -1011,6 +1009,15 @@
|
| }, {
|
| 'sas_dll_path%': '<(DEPTH)/third_party/platformsdk_win7/files/redist/x86',
|
| }],
|
| +
|
| + # Enable crash reporting via Kasko.
|
| + ['OS=="win" and target_arch=="ia32"', {
|
| + # TODO(erikwright): This should be disabled after a single ship on Canary channel.
|
| + 'kasko%': 1,
|
| + }, {
|
| + 'kasko%': 0,
|
| + }],
|
| +
|
| ],
|
|
|
| # Setting this to '0' will cause V8's startup snapshot to be
|
| @@ -1688,7 +1695,7 @@
|
| 'android_ndk_absolute_root%': '<(android_ndk_absolute_root)',
|
| 'android_sdk_root%': '<(android_sdk_root)',
|
| 'android_sdk_version%': '<(android_sdk_version)',
|
| - 'android_stlport_root': '<(android_ndk_root)/sources/cxx-stl/stlport',
|
| + 'android_libcpp_root': '<(android_ndk_root)/sources/cxx-stl/llvm-libc++',
|
| 'host_os%': '<(host_os)',
|
|
|
| 'android_sdk%': '<(android_sdk_root)/platforms/android-<(android_sdk_version)',
|
| @@ -1764,9 +1771,9 @@
|
| 'android_sdk%': '<(android_sdk)',
|
| 'android_sdk_jar%': '<(android_sdk)/android.jar',
|
|
|
| - 'android_stlport_root': '<(android_stlport_root)',
|
| - 'android_stlport_include': '<(android_stlport_root)/stlport',
|
| - 'android_stlport_libs_dir': '<(android_stlport_root)/libs/<(android_app_abi)',
|
| + '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)',
|
| 'host_os%': '<(host_os)',
|
|
|
| # Location of the "objcopy" binary, used by both gyp and scripts.
|
| @@ -1929,9 +1936,14 @@
|
| },{
|
| 'winsdk_arch%': '<(target_arch)',
|
| }],
|
| - ['component=="shared_library"', {
|
| + ['component=="shared_library" or MSVS_VERSION == "2015"', {
|
| + # TODO(scottmg): The allocator shimming doesn't work on the 2015 CRT
|
| + # and we are hoping to be able to remove it if an additional feature
|
| + # lands in the 2015 CRT API. For now, don't shim and revisit once
|
| + # VS2015 is RTM: http://crbug.com/481611.
|
| 'win_use_allocator_shim%': 0,
|
| - },{
|
| + }],
|
| + ['component=="static_library"', {
|
| # Turn on multiple dll by default on Windows when in static_library.
|
| 'chrome_multiple_dll%': 1,
|
| }],
|
| @@ -2168,17 +2180,23 @@
|
| ],
|
| },
|
| 'clang_dynlib_flags%': '-Xclang -load -Xclang <(clang_lib_path) ',
|
| + 'clang_plugin_args%': '',
|
| }, { # OS == "win"
|
| # On Windows, the plugin is built directly into clang, so there's
|
| # no need to load it dynamically.
|
| 'clang_dynlib_flags%': '',
|
| +
|
| + # Don't error on plugin warnings on Windows until pre-existing warnings
|
| + # are cleaned up. https://crbug.com/467287
|
| + 'clang_plugin_args%': '-Xclang -plugin-arg-find-bad-constructs -Xclang warn-only',
|
| }]
|
| ],
|
| },
|
| # If you change these, also change build/config/clang/BUILD.gn.
|
| 'clang_chrome_plugins_flags%':
|
| '<(clang_dynlib_flags)'
|
| - '-Xclang -add-plugin -Xclang find-bad-constructs',
|
| + '-Xclang -add-plugin -Xclang find-bad-constructs '
|
| + '<(clang_plugin_args)',
|
| }],
|
| ['asan==1 or msan==1 or lsan==1 or tsan==1', {
|
| 'clang%': 1,
|
| @@ -4085,9 +4103,6 @@
|
| 'cflags!': [
|
| '-fstack-protector', # stack protector is always enabled on arm64.
|
| ],
|
| - 'ldflags': [
|
| - '-fuse-ld=gold',
|
| - ],
|
| }],
|
| ],
|
| }],
|
| @@ -4630,9 +4645,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_stlport_library': 'stlport_shared',
|
| + 'android_libcpp_library': 'c++_shared',
|
| }, {
|
| - 'android_stlport_library': 'stlport_static',
|
| + 'android_libcpp_library': 'c++_static',
|
| }],
|
| ],
|
|
|
| @@ -4712,17 +4727,17 @@
|
| '-finline-limit=64',
|
| '<@(release_extra_cflags)',
|
| '--sysroot=<(android_ndk_sysroot)',
|
| - # NOTE: The stlport header include paths below are specified in
|
| + # NOTE: The libc++ header include paths below are specified in
|
| # cflags rather than include_dirs because they need to come
|
| # after include_dirs.
|
| # The include ordering here is important; change with caution.
|
| - '-isystem<(android_stlport_include)',
|
| + '-isystem<(android_libcpp_include)',
|
| + '-isystem<(android_ndk_root)/sources/cxx-stl/llvm-libc++abi/libcxxabi/include',
|
| + '-isystem<(android_ndk_root)/sources/android/support/include',
|
| ],
|
| 'defines': [
|
| 'ANDROID',
|
| '__GNU_SOURCE=1', # Necessary for clone()
|
| - 'USE_STLPORT=1',
|
| - '_STLP_USE_PTR_SPECIALIZATIONS=1',
|
| 'CHROME_BUILD_ID="<(chrome_build_id)"',
|
| # The NDK has these things, but doesn't define the constants
|
| # to say that it does. Define them here instead.
|
| @@ -4735,11 +4750,11 @@
|
| '-Wl,--no-undefined',
|
| '--sysroot=<(android_ndk_sysroot)',
|
| '-nostdlib',
|
| - '-L<(android_stlport_libs_dir)',
|
| - # Don't allow visible symbols from libgcc or stlport to be
|
| + '-L<(android_libcpp_libs_dir)',
|
| + # Don't allow visible symbols from libgcc or libc++ to be
|
| # re-exported.
|
| '-Wl,--exclude-libs=libgcc.a',
|
| - '-Wl,--exclude-libs=libstlport_static.a',
|
| + '-Wl,--exclude-libs=libc++_static.a',
|
| # Don't allow visible symbols from libraries that contain
|
| # assembly code with symbols that aren't hidden properly.
|
| # http://crbug.com/448386
|
| @@ -4752,7 +4767,8 @@
|
| '-Wl,--exclude-libs=libvpx.a',
|
| ],
|
| 'libraries': [
|
| - '-l<(android_stlport_library)',
|
| + '-l<(android_libcpp_library)',
|
| + '-latomic',
|
| # Manually link the libgcc.a that the cross compiler uses.
|
| '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)',
|
| '-lc',
|
| @@ -4772,6 +4788,11 @@
|
| ],
|
| }],
|
| ['clang==1', {
|
| + 'libraries!': [
|
| + # Clang with libc++ does not require an explicit atomic
|
| + # library reference.
|
| + '-latomic',
|
| + ],
|
| 'cflags': [
|
| # Work around incompatibilities between bionic and clang
|
| # headers.
|
| @@ -5119,6 +5140,22 @@
|
| }],
|
| ],
|
| },
|
| + 'configurations': {
|
| + 'Release_Base': {
|
| + 'conditions': [
|
| + ['branding=="Chrome" and buildtype=="Official"', {
|
| + 'xcode_settings': {
|
| + 'OTHER_CFLAGS': [
|
| + # The Google Chrome Framework dSYM generated by dsymutil has
|
| + # grown larger than 4GB, which dsymutil can't handle. Reduce
|
| + # the amount of debug symbols.
|
| + '-fno-standalone-debug', # See http://crbug.com/479841
|
| + ]
|
| + },
|
| + }],
|
| + ],
|
| + }, # configuration "Release"
|
| + }, # configurations
|
| 'xcode_settings': {
|
| 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic
|
| # (Equivalent to -fPIC)
|
| @@ -5136,16 +5173,6 @@
|
| # specified or not.
|
| '-fno-strict-aliasing', # See http://crbug.com/32204.
|
| ],
|
| - 'conditions': [
|
| - ['branding=="Chrome" and buildtype=="Official"', {
|
| - 'OTHER_CFLAGS': [
|
| - # The Google Chrome Framework dSYM generated by dsymutil has
|
| - # grown larger than 4GB, which dsymutil can't handle. Reduce
|
| - # the amount of debug symbols.
|
| - '-gline-tables-only', # See http://crbug.com/479841
|
| - ]
|
| - }],
|
| - ],
|
| },
|
| 'target_conditions': [
|
| ['_type=="executable"', {
|
| @@ -5769,13 +5796,20 @@
|
| 'AdditionalOptions': [
|
| '-fsanitize-coverage=<(sanitizer_coverage)',
|
| ],
|
| - 'defines': [
|
| - 'SANITIZER_COVERAGE',
|
| - ],
|
| },
|
| }],
|
| ],
|
| },
|
| + 'conditions': [
|
| + ['sanitizer_coverage!=0', {
|
| + # TODO(asan/win): Move this down into the general
|
| + # win-target_defaults section once the 64-bit asan runtime
|
| + # exists. See crbug.com/345874.
|
| + 'defines': [
|
| + 'SANITIZER_COVERAGE',
|
| + ],
|
| + }],
|
| + ],
|
| },
|
| 'x64_Base': {
|
| 'msvs_settings': {
|
|
|