blob: 0c95b34502a0a7134ba153e6eed3185ed622295d [file] [log] [blame]
# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/toolchain/variant_tags.gni")
# The list of all valid toolchain tag strings that can appear inside a
# `tags` definition when calling variant_toolchain_suite(). Note that the
# `toolchain_variant.tags` value will contain both the tags from the
# base toolchain, and those from the corresponding variant descriptor, if any.
#
# Tags are used to specify various properties of a toolchain, and allows some
# filtering to happen during variant toolchain selection, or directly inside
# a target's build rules by looking at `toolchain_variant.tags`.
#
all_toolchain_tags = all_variant_tags
all_toolchain_tags += [
# This tag is used for toolchains that are only used to build parts of the
# Zircon kernel. Generally this means there is no C standard library. Some
# Zircon targets affect their build settings based on the presence of this
# tag.
"kernel",
# This indicates the toolchain targets UEFI.
"efi",
# This indicates a toolchain does not provide the Fuchsia Compiler ABI.
"no-compiler-abi",
# This tag is used by Zircon toolchains that generate static PIE executable
# binaries.
"static-pie",
# This tag is used by Zircon toolchains that generate code that assumes that
# unaligned access will crash the system.
"strict-align",
# This tag is used by Zircon toolchain that generate code that doesn't link
# to any system runtime (e.g. the C library).
"standalone",
# This tag is used by Zircon toolchains that enables the 'tiny' code
# generation model (i.e. the program and its statically defined symbols must
# be within 1 GiB).
"tiny",
]