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

relocation_packing_supported = (
    (target_arch == "arm") || (target_arch == "arm64"))

if (relocation_packing_supported) {
  relocation_packer_target = "//tools/relocation_packer($host_toolchain)"
  relocation_packer_dir = get_label_info(
      "$relocation_packer_target", "root_out_dir")
  relocation_packer_exe = "${relocation_packer_dir}/relocation_packer"

  if (target_arch == "arm") {
    relocations_have_addends = 0
  } else if (target_arch == "arm64") {
    relocations_have_addends = 1
  }
} else {
  relocations_have_addends = 0
  relocation_packer_exe = ""
}
