import("//build/arch/common.gni")
import("//build/arch/aarch64.gni") # TODO: remove when no dependency on arch_aarch64_pl011_base_address

config("compiler_defaults") {
  cflags = [
    "-g",
    "-O2",
    "-Wall",
    #"-Wextra",
    "-Wpedantic",
    "-Werror",
  ]

  cflags_c = [
    "-std=c11",
    "-Wdeclaration-after-statement",
  ]

  cflags_cc = [
    "-std=c++14",
  ]

  if (is_debug) {
    defines = [
      "DEBUG=1",
    ]
  } else {
    defines = [
      "DEBUG=0",
    ]
  }

  # Configuration specific for the bare metal images
  if (current_toolchain == arch_toolchain) {
    include_dirs = [
      "//inc",
      "//src/arch/${arch}/inc",
      "${root_gen_dir}/inc",
    ]

    cflags += [
      "-mcpu=${arch_cpu}",
      "-fno-stack-protector",
      "-fno-builtin",
      "-ffreestanding",
      "-fpic",
      "-ffunction-sections",
    ]

    if (!use_gcc) {
      cflags += [
        "-Wno-extended-offsetof", # have clang give us some slack
      ]
    }

    defines += [
      # TODO: move these build args for the platforms
      "MAX_CPUS=8",
      "MAX_VMS=16",
      "STACK_SIZE=4096",
    ]

    # TODO: this should be arch specific but it is currenly used by the
    # platform generic code to map the memory
    if (arch_aarch64_use_pl011) {
      defines += [
        "PL011_BASE=${arch_aarch64_pl011_base_address}",
      ]
    }
  }
}

config("executable_ldconfig") {
  if (current_toolchain == arch_toolchain) {
    ldflags = [
      "--gc-sections"
    ]
  }
}
