blob: d37075013b344109d6b36a098bfaa5a51bcce42a [file] [log] [blame]
Austin Schuhda9d0602019-09-15 17:29:38 -07001load(":toolchain_config.bzl", "cc_toolchain_config")
2
Philipp Schrader9b1790e2018-03-10 20:21:30 -08003package(default_visibility = ["//visibility:public"])
Brian Silverman12b3fc52015-10-11 19:38:33 -04004
Austin Schuhda9d0602019-09-15 17:29:38 -07005[cc_toolchain_config(
6 name = "{}_toolchain_config".format(cpu),
7 cpu = cpu,
8) for cpu in
9 ["armeabi-v7a", "armhf-debian", "cortex-m4f", "cortex-m4f-k22", "k8", "roborio"]
10]
11
Brian Silverman12b3fc52015-10-11 19:38:33 -040012cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080013 name = "empty_main",
14 srcs = ["empty_main.c"],
Brian Silverman63889f92015-11-27 01:33:56 -050015)
16
17cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080018 name = "malloc",
19 deps = select({
20 "//tools:has_asan": [],
21 "//tools:has_tsan": [],
22 "//tools:cpu_cortex_m4f": [],
Brian Silverman6c8b88b2018-09-03 18:17:02 -070023 "//tools:cpu_cortex_m4f_k22": [],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080024 "//conditions:default": ["//third_party/gperftools:tcmalloc"],
25 }),
Brian Silverman12b3fc52015-10-11 19:38:33 -040026)
27
28cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080029 name = "stl",
Brian Silverman12b3fc52015-10-11 19:38:33 -040030)
31
32filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080033 name = "empty",
34 srcs = [],
Brian Silverman12b3fc52015-10-11 19:38:33 -040035)
36
Brian Silvermanb200c172017-01-02 17:35:35 -080037# This is the entry point for --crosstool_top.
38cc_toolchain_suite(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080039 name = "toolchain",
40 toolchains = {
Austin Schuhda9d0602019-09-15 17:29:38 -070041 "k8": ":cc-compiler-k8",
42 "roborio": ":cc-compiler-roborio",
43 "armhf-debian": "cc-compiler-armhf-debian",
44 "cortex-m4f": "cc-compiler-cortex-m4f",
45 "cortex-m4f-k22": "cc-compiler-cortex-m4f-k22",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080046 },
Brian Silvermanb466eef2015-11-28 20:33:44 -050047)
48
49# Compiler inputs given by --copt etc in //tools:bazel.rc.
50filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080051 name = "flags_compiler_inputs",
52 srcs = select({
53 "//tools:has_asan": [
54 "asan-blacklist",
55 ],
56 "//tools:has_ubsan": [
57 "ubsan-blacklist",
58 ],
59 "//conditions:default": [],
60 }),
61)
62
63filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -080064 name = "clang_6p0_all_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080065 srcs = [
66 ":flags_compiler_inputs",
James Kuszmaul3ae42262019-11-08 12:33:41 -080067 "//tools/cpp/clang_6p0:as",
68 "//tools/cpp/clang_6p0:tool-wrappers",
69 "@clang_6p0_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050070 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080071)
72
73filegroup(
Austin Schuhda9d0602019-09-15 17:29:38 -070074 name = "clang_6p0_ar_files",
75 srcs = [
76 "//tools/cpp/clang_6p0:ar",
77 "@clang_6p0_repo//:compiler_pieces",
78 ],
79)
80
81filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -080082 name = "clang_6p0_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080083 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -080084 "//tools/cpp/clang_6p0:ar",
85 "//tools/cpp/clang_6p0:clang",
86 "//tools/cpp/clang_6p0:clang-symlinks",
87 "//tools/cpp/clang_6p0:ld",
88 "@clang_6p0_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050089 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080090)
91
92filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -080093 name = "clang_6p0_strip_files",
Brian Silverman5c00e232018-08-12 02:08:32 -070094 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -080095 "//tools/cpp/clang_6p0:strip",
96 "@clang_6p0_repo//:compiler_pieces",
Brian Silverman5c00e232018-08-12 02:08:32 -070097 ],
98)
99
100filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -0800101 name = "clang_6p0_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800102 srcs = [
Brian Silverman7b8899e2018-06-30 19:19:24 -0700103 "flags_compiler_inputs",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800104 "//tools/cpp/clang_6p0:clang",
105 "//tools/cpp/clang_6p0:ld",
106 "@clang_6p0_repo//:compiler_components",
107 "@clang_6p0_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800108 ],
Brian Silverman12b3fc52015-10-11 19:38:33 -0400109)
110
111cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800112 name = "cc-compiler-k8",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800113 all_files = ":clang_6p0_all_files",
114 compiler_files = ":clang_6p0_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800115 dwp_files = ":empty",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800116 linker_files = ":clang_6p0_linker_files",
Austin Schuhda9d0602019-09-15 17:29:38 -0700117 ar_files = ":clang_6p0_ar_files",
118 as_files = ":clang_6p0_compiler_files",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800119 objcopy_files = "//tools/cpp/clang_6p0:objcopy",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800120 strip_files = ":clang_6p0_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800121 supports_param_files = 1,
Austin Schuhe18baff2018-10-20 17:40:42 -0700122 toolchain_identifier = "k8_linux",
Austin Schuhda9d0602019-09-15 17:29:38 -0700123 toolchain_config = ":k8_toolchain_config",
Brian Silverman12b3fc52015-10-11 19:38:33 -0400124)
Austin Schuh23da18b2015-10-11 20:52:49 -0700125
Austin Schuh55139fe2015-10-14 23:55:24 -0700126filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800127 name = "roborio-compiler-files",
128 srcs = [
129 ":flags_compiler_inputs",
130 "//tools/cpp/arm-frc-linux-gnueabi:as",
131 "//tools/cpp/arm-frc-linux-gnueabi:tool-wrappers",
132 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
133 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700134)
135
136filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800137 name = "roborio_linker_files",
138 srcs = [
139 "//tools/cpp/arm-frc-linux-gnueabi:ar",
140 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
141 "//tools/cpp/arm-frc-linux-gnueabi:ld",
142 "//tools/cpp/arm-frc-linux-gnueabi:libs",
143 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
144 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700145)
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800146
Austin Schuh55139fe2015-10-14 23:55:24 -0700147filegroup(
Austin Schuhda9d0602019-09-15 17:29:38 -0700148 name = "roborio_ar_files",
149 srcs = [
150 "//tools/cpp/arm-frc-linux-gnueabi:ar",
151 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
152 ],
153)
154
155filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800156 name = "roborio_compiler_files",
157 srcs = [
158 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
159 "//tools/cpp/arm-frc-linux-gnueabi:ld",
160 "@arm_frc_linux_gnueabi_repo//:compiler_components",
161 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
162 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700163)
164
Brian Silverman50b9ac02018-08-12 13:24:10 -0700165filegroup(
166 name = "roborio_strip_files",
167 srcs = [
168 "//tools/cpp/arm-frc-linux-gnueabi:strip",
169 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
170 ],
171)
172
Austin Schuh23da18b2015-10-11 20:52:49 -0700173cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800174 name = "cc-compiler-roborio",
175 all_files = ":roborio-compiler-files",
176 compiler_files = ":roborio_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800177 dwp_files = ":empty",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800178 linker_files = ":roborio_linker_files",
Austin Schuhda9d0602019-09-15 17:29:38 -0700179 ar_files = ":roborio_ar_files",
180 as_files = ":roborio_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800181 objcopy_files = "//tools/cpp/arm-frc-linux-gnueabi:objcopy",
Brian Silverman50b9ac02018-08-12 13:24:10 -0700182 strip_files = ":roborio_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800183 supports_param_files = 1,
Austin Schuhe18baff2018-10-20 17:40:42 -0700184 toolchain_identifier = "roborio_linux",
Austin Schuhda9d0602019-09-15 17:29:38 -0700185 toolchain_config = ":roborio_toolchain_config",
Austin Schuh23da18b2015-10-11 20:52:49 -0700186)
Brian Silverman0d57fc82016-01-24 21:02:53 -0500187
188filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800189 name = "linaro-gcc-files",
190 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -0800191 ":clang_6p0_all_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800192 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
193 "//tools/cpp/linaro_linux_gcc:tool-wrappers",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800194 "@linaro_linux_gcc_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800195 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500196)
197
198filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800199 name = "linaro_linux_linker_files",
200 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -0800201 ":clang_6p0_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800202 "//tools/cpp/linaro_linux_gcc:ar",
203 "//tools/cpp/linaro_linux_gcc:clang",
204 "//tools/cpp/linaro_linux_gcc:clang-ld",
205 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
206 "//tools/cpp/linaro_linux_gcc:gcc",
207 "//tools/cpp/linaro_linux_gcc:ld",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800208 "@linaro_linux_gcc_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800209 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500210)
211
212filegroup(
Austin Schuhda9d0602019-09-15 17:29:38 -0700213 name = "linaro_linux_ar_files",
214 srcs = [
215 "//tools/cpp/linaro_linux_gcc:ar",
216 "@linaro_linux_gcc_repo//:compiler_pieces",
217 ],
218)
219
220filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800221 name = "linaro_linux_compiler_files",
222 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -0800223 ":clang_6p0_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800224 "//tools/cpp/linaro_linux_gcc:as",
225 "//tools/cpp/linaro_linux_gcc:clang",
226 "//tools/cpp/linaro_linux_gcc:gcc",
227 "//tools/cpp/linaro_linux_gcc:ld",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800228 "@linaro_linux_gcc_repo//:compiler_pieces",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700229 ],
230)
231
232filegroup(
233 name = "linaro_linux_strip_files",
234 srcs = [
235 "//tools/cpp/linaro_linux_gcc:strip",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800236 "@linaro_linux_gcc_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800237 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500238)
239
240cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800241 name = "cc-compiler-armhf-debian",
242 all_files = ":linaro-gcc-files",
243 compiler_files = ":linaro_linux_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800244 dwp_files = ":empty",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800245 linker_files = ":linaro_linux_linker_files",
Austin Schuhda9d0602019-09-15 17:29:38 -0700246 ar_files = "linaro_linux_ar_files",
247 as_files = "linaro_linux_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800248 objcopy_files = "//tools/cpp/linaro_linux_gcc:objcopy",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700249 strip_files = ":linaro_linux_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800250 supports_param_files = 1,
Austin Schuhe18baff2018-10-20 17:40:42 -0700251 toolchain_identifier = "clang_linux_armhf",
Austin Schuhda9d0602019-09-15 17:29:38 -0700252 toolchain_config = ":armhf-debian_toolchain_config",
Brian Silverman0d57fc82016-01-24 21:02:53 -0500253)
Brian Silverman8b638692017-06-26 23:10:26 -0700254
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700255filegroup(
256 name = "gcc_arm_none_eabi_none_files",
257 srcs = [
258 "//tools/cpp/gcc_arm_none_eabi:tool-wrappers",
259 "@gcc_arm_none_eabi//:compiler_pieces",
260 ],
261)
262
263filegroup(
264 name = "gcc_arm_none_eabi_compiler_files",
265 srcs = [
266 "//tools/cpp/gcc_arm_none_eabi:as",
267 "//tools/cpp/gcc_arm_none_eabi:gcc",
268 "//tools/cpp/gcc_arm_none_eabi:ld",
Austin Schuhda9d0602019-09-15 17:29:38 -0700269 "@gcc_arm_none_eabi//:compiler_pieces",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700270 ],
271)
272
273filegroup(
274 name = "gcc_arm_none_eabi_linker_files",
275 srcs = [
276 "//motors/core:linkerscripts",
277 "//tools/cpp/gcc_arm_none_eabi:ar",
278 "//tools/cpp/gcc_arm_none_eabi:gcc",
279 "//tools/cpp/gcc_arm_none_eabi:ld",
280 "@gcc_arm_none_eabi//:compiler_pieces",
281 ],
282)
283
Austin Schuhda9d0602019-09-15 17:29:38 -0700284filegroup(
285 name = "gcc_arm_none_eabi_ar_files",
286 srcs = [
287 "//tools/cpp/gcc_arm_none_eabi:ar",
288 "@gcc_arm_none_eabi//:compiler_pieces",
289 ],
290)
291
Brian Silverman8b638692017-06-26 23:10:26 -0700292cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800293 name = "cc-compiler-cortex-m4f",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700294 all_files = ":gcc_arm_none_eabi_none_files",
295 compiler_files = ":gcc_arm_none_eabi_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800296 dwp_files = ":empty",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700297 linker_files = ":gcc_arm_none_eabi_linker_files",
Austin Schuhda9d0602019-09-15 17:29:38 -0700298 ar_files = ":gcc_arm_none_eabi_ar_files",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700299 objcopy_files = "//tools/cpp/gcc_arm_none_eabi:objcopy",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700300 strip_files = "//tools/cpp/gcc_arm_none_eabi:strip",
301 supports_param_files = 1,
Austin Schuhe18baff2018-10-20 17:40:42 -0700302 toolchain_identifier = "cortex-m4f",
Austin Schuhda9d0602019-09-15 17:29:38 -0700303 toolchain_config = ":cortex-m4f_toolchain_config",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700304)
305
306cc_toolchain(
307 name = "cc-compiler-cortex-m4f-k22",
308 all_files = ":gcc_arm_none_eabi_none_files",
309 compiler_files = ":gcc_arm_none_eabi_compiler_files",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700310 dwp_files = ":empty",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700311 linker_files = ":gcc_arm_none_eabi_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800312 objcopy_files = ":empty",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800313 strip_files = ":empty",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700314 supports_param_files = 1,
Austin Schuhe18baff2018-10-20 17:40:42 -0700315 toolchain_identifier = "cortex-m4f-k22",
Austin Schuhda9d0602019-09-15 17:29:38 -0700316 toolchain_config = ":cortex-m4f-k22_toolchain_config",
Brian Silverman7b8899e2018-06-30 19:19:24 -0700317)