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

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

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