2019-06-06 09:18:26 +00:00
|
|
|
# Standard cpu name constraint_setting and constraint_values
|
|
|
|
licenses(["notice"])
|
|
|
|
|
|
|
|
package(
|
|
|
|
default_visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
filegroup(
|
|
|
|
name = "srcs",
|
|
|
|
srcs = glob(["**"]),
|
|
|
|
)
|
|
|
|
|
2019-06-18 18:15:05 +00:00
|
|
|
# To add a new constraint_value see https://github.com/bazelbuild/platforms.
|
2019-06-06 09:18:26 +00:00
|
|
|
constraint_setting(name = "cpu")
|
|
|
|
|
2022-11-09 04:48:32 +00:00
|
|
|
# New cpu values should refer to specific, highly available CPU implementations,
|
|
|
|
# not broad architectures. It should be possible to select the right compiler
|
|
|
|
# options by just by knowing the cpu. This can be a difficult evaluation for
|
|
|
|
# ARM variations, where there are many possibilities for customization within
|
|
|
|
# an architecture.
|
|
|
|
#
|
|
|
|
# 1. No private names are be allowed. If you build your own custom ARM chips,
|
|
|
|
# then define them locally within your organization.
|
|
|
|
# 2. All CPU values must be clear that they are for a 32 or a 64 bit
|
|
|
|
# implementation. For example, cortex-r52 is a 32 bit processor, and
|
|
|
|
# cortex-r82 is a 64 bit processor, but both are armv8-r architecture.
|
|
|
|
# We use the specific processor names because armv8-r is insufficient to
|
|
|
|
# select proper compiler options.
|
|
|
|
#
|
|
|
|
# Many of the name here are legacy values and probably violate these conditions.
|
|
|
|
# We'll try to clean those up over time.
|
|
|
|
|
Bazel Platforms: Add `//cpu:any` constraint value for arch-indep builds (#75)
* Bazel Platforms: Add `//cpu:any` constraint value for arch-indep builds
Some builds are expected to only produce architecture-independent data files,
such as configuration files, database seed data, composited images, or even
some kinds of interpreted scripts (Shell, Python, Perl, etc).
When such a build is being performed, this constraint value may be used to
ensure that architecture-dependent builds cannot be performed (except by way
of another transition).
As a final example, consider building a package of NIC firmware images for
many different NIC models. The package overall is architecture-independent,
and should be built with `//cpu:any`, then each individual image rule has a
transition to the suitable architecture for that specific NIC model.
* Update BUILD
Changed "any" to "all"
* Update BUILD
Fix comment
---------
Co-authored-by: aiuto <aiuto@google.com>
2023-09-26 14:43:45 +00:00
|
|
|
# Special case: Architecture-independent outputs only
|
|
|
|
#
|
|
|
|
# Some builds are expected to only produce architecture-independent data files,
|
|
|
|
# such as configuration files, database seed data, composited images, or even
|
|
|
|
# some kinds of interpreted scripts (Shell, Python, Perl, etc).
|
|
|
|
#
|
|
|
|
# When such a build is being performed, this constraint value may be used to
|
|
|
|
# ensure that architecture-dependent builds cannot be performed (except by way
|
|
|
|
# of another transition).
|
|
|
|
#
|
|
|
|
# As a final example, consider building a package of NIC firmware images for
|
|
|
|
# many different NIC models. The package overall is architecture-independent,
|
|
|
|
# and should be built with `//cpu:all`, then each individual image rule has a
|
|
|
|
# transition to the suitable architecture for that specific NIC model.
|
|
|
|
constraint_value(
|
|
|
|
name = "all",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2023-05-08 18:15:04 +00:00
|
|
|
constraint_value(
|
|
|
|
name = "aarch32",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
2022-11-09 04:48:32 +00:00
|
|
|
|
2023-05-08 18:15:04 +00:00
|
|
|
constraint_value(
|
2019-08-05 16:40:46 +00:00
|
|
|
name = "aarch64",
|
2023-05-08 18:15:04 +00:00
|
|
|
constraint_setting = ":cpu",
|
2019-07-30 19:29:49 +00:00
|
|
|
)
|
|
|
|
|
2023-05-08 18:15:04 +00:00
|
|
|
alias(
|
2019-08-05 16:40:46 +00:00
|
|
|
name = "arm",
|
2023-05-08 18:15:04 +00:00
|
|
|
actual = ":aarch32",
|
2019-07-30 19:29:49 +00:00
|
|
|
)
|
|
|
|
|
2021-01-08 08:46:23 +00:00
|
|
|
# Cortex-M0, Cortex-M0+, Cortex-M1
|
2020-09-16 03:33:02 +00:00
|
|
|
constraint_value(
|
2020-09-18 17:51:37 +00:00
|
|
|
name = "armv6-m", # Commonly known as thumbv6
|
2020-09-16 03:33:02 +00:00
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2021-01-08 08:46:23 +00:00
|
|
|
# Cortex-M3
|
|
|
|
constraint_value(
|
|
|
|
name = "armv7-m",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
# Cortex-M4, Cortex-M7
|
|
|
|
constraint_value(
|
|
|
|
name = "armv7e-m",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
# Cortex-M4, Cortex-M7 with fpu
|
|
|
|
constraint_value(
|
|
|
|
name = "armv7e-mf", # armv7e-m with fpu
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
# Cortex-M23, Cortex-M33, Cortex-M35P
|
|
|
|
constraint_value(
|
|
|
|
name = "armv8-m",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2023-05-08 18:15:04 +00:00
|
|
|
alias(
|
|
|
|
name = "arm64",
|
|
|
|
actual = ":aarch64",
|
2019-06-06 09:18:26 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
constraint_value(
|
2023-05-08 18:15:04 +00:00
|
|
|
name = "arm64_32",
|
2019-06-06 09:18:26 +00:00
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
2019-07-30 19:29:49 +00:00
|
|
|
|
|
|
|
constraint_value(
|
2019-08-05 16:40:46 +00:00
|
|
|
name = "arm64e",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "armv7",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "armv7k",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2022-11-09 04:33:58 +00:00
|
|
|
constraint_value(
|
|
|
|
name = "cortex-r52",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "cortex-r82",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2019-08-05 16:40:46 +00:00
|
|
|
constraint_value(
|
|
|
|
name = "i386",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "ppc",
|
2019-07-30 19:29:49 +00:00
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2022-11-02 16:29:06 +00:00
|
|
|
constraint_value(
|
|
|
|
name = "ppc32",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2023-10-05 15:39:32 +00:00
|
|
|
constraint_value(
|
|
|
|
name = "ppc64le",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2019-07-30 19:29:49 +00:00
|
|
|
constraint_value(
|
2019-07-30 21:51:37 +00:00
|
|
|
name = "s390x",
|
2019-07-30 19:29:49 +00:00
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
2019-08-05 16:40:46 +00:00
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "x86_32",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "x86_64",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
2020-05-01 21:56:52 +00:00
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "wasm32",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "wasm64",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
2021-01-20 02:54:21 +00:00
|
|
|
|
|
|
|
constraint_value(
|
|
|
|
name = "mips64",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
2021-02-17 16:51:20 +00:00
|
|
|
|
2021-07-26 17:47:38 +00:00
|
|
|
constraint_value(
|
|
|
|
name = "riscv32",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|
|
|
|
|
2021-02-17 16:51:20 +00:00
|
|
|
constraint_value(
|
|
|
|
name = "riscv64",
|
|
|
|
constraint_setting = ":cpu",
|
|
|
|
)
|