chromium/build/config/aix/BUILD.gn

# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/sanitizers/sanitizers.gni")
import("//build/toolchain/toolchain.gni")

# This is included by reference in the //build/config/compiler config that
# is applied to all targets. It is here to separate out the logic.

config("compiler") {
  # These flags are shared between the C compiler and linker.
  defines = [
    "_LINUX_SOURCE_COMPAT=1",
    "__STDC_FORMAT_MACROS",
    "_ALL_SOURCE=1",
  ]

  cflags = [
    "-Wall",
    "-Wno-unused-parameter",
    "-pthread",
    "-Wmissing-field-initializers",
    "-Wno-uninitialized",
    "-mcpu=power5+",
    "-mfprnd",
    "-mno-popcntb",
    "-maix64",
    "-fdata-sections",
    "-ffunction-sections",
    "-fno-extern-tls-init",
    "-O3",

    # "-Werror"
    # We need to find a way to fix the TOC warnings if we want to enable this.
  ]

  cflags_cc = [
    "-fno-rtti",
    "-fno-exceptions",
    "-Wno-narrowing",
    "-Wno-non-virtual-dtor",
  ]

  ldflags = [
    "-pthread",
    "-maix64",
    "-Wl,-bbigtoc",
  ]

  if (is_component_build) {
    cflags += [ "-fpic" ]
    ldflags += [
      "-Wl,-brtl",

      # -bnoipath so that only names of .so objects are stored in loader
      # section, excluding leading "./"
      "-Wl,-bnoipath",
    ]
  }
}