Index: build/config/compiler/BUILD.gn |
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn |
index 183654cfd4e92aeeeca0f21255cb589b45f777a5..f129035e796bb80e037ce33e88c7ace0495fe2cc 100644 |
--- a/build/config/compiler/BUILD.gn |
+++ b/build/config/compiler/BUILD.gn |
@@ -172,6 +172,8 @@ config("compiler") { |
configs += [ "//build/config/mac:compiler" ] |
} else if (is_ios) { |
configs += [ "//build/config/ios:compiler" ] |
+ } else if (current_os == "aix") { |
+ configs += [ "//build/config/aix:compiler" ] |
} |
# See the definitions below. |
@@ -186,12 +188,16 @@ config("compiler") { |
# Common GCC compiler flags setup. |
# -------------------------------- |
cflags += [ "-fno-strict-aliasing" ] # See http://crbug.com/32204 |
- cflags_cc += [ |
- # Not exporting C++ inline functions can generally be applied anywhere |
- # so we do so here. Normal function visibility is controlled by |
- # //build/config/gcc:symbol_visibility_hidden. |
- "-fvisibility-inlines-hidden", |
- ] |
+ |
+ # Visibility attribute is not supported on AIX. |
+ if (current_os != "aix") { |
+ cflags_cc += [ |
+ # Not exporting C++ inline functions can generally be applied anywhere |
+ # so we do so here. Normal function visibility is controlled by |
+ # //build/config/gcc:symbol_visibility_hidden. |
+ "-fvisibility-inlines-hidden", |
+ ] |
+ } |
# Stack protection. |
if (is_mac) { |
@@ -210,14 +216,16 @@ config("compiler") { |
# The x86 toolchain currently has problems with stack-protector. |
if (is_android && current_cpu == "x86") { |
cflags += [ "-fno-stack-protector" ] |
- } else { |
+ } else if (current_os != "aix") { |
+ # Not available on aix. |
cflags += [ "-fstack-protector" ] |
} |
} |
# Linker warnings. |
if (fatal_linker_warnings && !(is_chromeos && current_cpu == "arm") && |
- !(is_android && use_order_profiling) && !is_mac && !is_ios) { |
+ !(is_android && use_order_profiling) && !is_mac && !is_ios && |
+ current_os != "aix") { |
# TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580 |
# TODO(lizeb,pasko): Fix link errors when linking with order_profiling=1 |
# crbug.com/485542 |
@@ -446,7 +454,7 @@ config("compiler") { |
# C++11 compiler flags setup. |
# --------------------------- |
- if (is_linux || is_android || (is_nacl && is_clang)) { |
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") { |
# gnu++11 instead of c++11 is needed because some code uses typeof() (a |
# GNU extension). |
# TODO(thakis): Eventually switch this to c++11 instead, |
@@ -1169,7 +1177,9 @@ config("chromium_code") { |
] |
if (!is_debug && !using_sanitizer && |
- (!is_linux || !is_clang || is_official_build)) { |
+ (!is_linux || !is_clang || is_official_build) && |
+ current_cpu != "s390x" && current_cpu != "s390" && |
+ current_cpu != "ppc64" && current_cpu != "ppc64") { |
# _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 |
@@ -1389,8 +1399,9 @@ if (is_win) { |
# Mac dead code stripping requires symbols. |
common_optimize_on_ldflags += [ "-Wl,-dead_strip" ] |
} |
- } else { |
+ } else if (current_os != "aix") { |
# Non-Mac Posix flags. |
+ # Aix does not support these. |
common_optimize_on_cflags += [ |
# Don't emit the GCC version ident directives, they just end up in the |