Chromium Code Reviews| Index: build/config/compiler/BUILD.gn |
| diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn |
| index 560e8ee6b0cc4554389fab1a71b7e4fe26a7e2e5..d4a10c8899988225d8854c0c0d38affd6e74157c 100644 |
| --- a/build/config/compiler/BUILD.gn |
| +++ b/build/config/compiler/BUILD.gn |
| @@ -535,17 +535,20 @@ config("compiler") { |
| "-funwind-tables", |
| "-fno-short-enums", |
| ] |
| + if (!is_clang) { |
| + # Clang doesn't support these flags. |
| + cflags += [ "-finline-limit=64" ] |
| + } |
| if (is_clang) { |
| rebased_android_toolchain_root = |
| rebase_path(android_toolchain_root, root_build_dir) |
| - cflags += [ |
| - # TODO(hans) Enable integrated-as (crbug.com/124610). |
| - "-no-integrated-as", |
| - "-B${rebased_android_toolchain_root}/bin", # Else /usr/bin/as gets picked up. |
| - ] |
| - } else { |
| - # Clang doesn't support these flags. |
| - cflags += [ "-finline-limit=64" ] |
| + if (current_cpu == "arm") { |
| + cflags += [ |
| + # TODO(hans) Enable integrated-as (crbug.com/124610). |
| + "-no-integrated-as", |
| + "-B${rebased_android_toolchain_root}/bin", # Else /usr/bin/as gets picked up. |
| + ] |
| + } |
| } |
| if (is_asan) { |
| # Android build relies on -Wl,--gc-sections removing unreachable code. |
| @@ -556,6 +559,10 @@ config("compiler") { |
| } |
| defines += [ "ANDROID" ] |
| + if (is_clang) { |
| + # GCC provides this as a built-in macro, but clang does not. |
|
Nico
2015/08/11 21:06:14
Under which circumstances? Based on the triple? Is
|
| + defines += [ "__ANDROID__" ] |
| + } |
| # The NDK has these things, but doesn't define the constants |
| # to say that it does. Define them here instead. |
| @@ -592,24 +599,33 @@ config("compiler") { |
| if (is_clang) { |
| if (current_cpu == "arm") { |
| - cflags += [ |
| - "-target", |
| - "arm-linux-androideabi", |
| - ] |
| - ldflags += [ |
| - "-target", |
| - "arm-linux-androideabi", |
| - ] |
| + _abi_target = "arm-linux-androideabi" |
| } else if (current_cpu == "x86") { |
| - cflags += [ |
| - "-target", |
| - "i686-linux-androideabi", |
| - ] |
| - ldflags += [ |
| - "-target", |
| - "i686-linux-androideabi", |
| - ] |
| + _abi_target = "i686-linux-androideabi" |
| + } else if (current_cpu == "arm64") { |
| + # Place holder for arm64 support, not tested. |
| + _abi_target = "aarch64-linux-androideabi" |
| + } else if (current_cpu == "x64") { |
| + # Place holder for x64 support, not tested. |
| + # TODO: Enable clang support for Android x64. http://crbug.com/346626 |
| + _abi_target = "x86_64-linux-androideabi" |
| + } else if (current_cpu == "mipsel") { |
| + # Place holder for mips support, not tested. |
| + _abi_target = "mipsel-linux-androideabi" |
| + } else if (current_cpu == "mips64el") { |
| + # Place holder for mips64 support, not tested. |
| + _abi_target = "mips64el-linux-androideabi" |
| + } else { |
| + assert(false, "Architecture not supported") |
| } |
| + cflags += [ |
| + "-target", |
| + _abi_target, |
| + ] |
| + ldflags += [ |
| + "-target", |
| + _abi_target, |
| + ] |
| } |
| } |
| @@ -994,7 +1010,8 @@ config("chromium_code") { |
| "__STDC_FORMAT_MACROS", |
| ] |
| - if (!using_sanitizer && (!is_linux || !is_clang || is_official_build)) { |
| + if (!is_debug && !using_sanitizer && |
| + (!is_linux || !is_clang || is_official_build)) { |
| # _FORTIFY_SOURCE isn't really supported by Clang now, see |
| # http://llvm.org/bugs/show_bug.cgi?id=16821. |
| # It seems to work fine with Ubuntu 12 headers though, so use it in |