1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61

build / config / aix / BUILD.gn [blame]

# 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",
    ]
  }
}