blob: 4f0e6d991cb736bcba4bf0aa116d676badb70bed [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
Philipp Schraderdada1072020-11-24 11:34:46 -08005[
6 cc_toolchain_config(
7 name = "{}_toolchain_config".format(cpu),
8 cpu = cpu,
9 )
10 for cpu in [
11 "armeabi-v7a",
12 "armhf-debian",
13 "cortex-m4f",
14 "cortex-m4f-k22",
15 "k8",
16 "roborio",
17 ]
Austin Schuhda9d0602019-09-15 17:29:38 -070018]
19
Brian Silverman12b3fc52015-10-11 19:38:33 -040020cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080021 name = "empty_main",
22 srcs = ["empty_main.c"],
Philipp Schraderdada1072020-11-24 11:34:46 -080023 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman63889f92015-11-27 01:33:56 -050024)
25
26cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080027 name = "malloc",
28 deps = select({
29 "//tools:has_asan": [],
30 "//tools:has_tsan": [],
31 "//tools:cpu_cortex_m4f": [],
Philipp Schraderdada1072020-11-24 11:34:46 -080032 # TODO(phil): Support this properly.
33 #"//tools:cpu_cortex_m4f_k22": [],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080034 "//conditions:default": ["//third_party/gperftools:tcmalloc"],
35 }),
Brian Silverman12b3fc52015-10-11 19:38:33 -040036)
37
38cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080039 name = "stl",
Philipp Schraderdada1072020-11-24 11:34:46 -080040 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman12b3fc52015-10-11 19:38:33 -040041)
42
43filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080044 name = "empty",
45 srcs = [],
Brian Silverman12b3fc52015-10-11 19:38:33 -040046)
47
Brian Silvermanb466eef2015-11-28 20:33:44 -050048# Compiler inputs given by --copt etc in //tools:bazel.rc.
49filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080050 name = "flags_compiler_inputs",
51 srcs = select({
52 "//tools:has_asan": [
53 "asan-blacklist",
54 ],
55 "//tools:has_ubsan": [
56 "ubsan-blacklist",
57 ],
58 "//conditions:default": [],
59 }),
60)
61
62filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -080063 name = "clang_6p0_all_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080064 srcs = [
65 ":flags_compiler_inputs",
James Kuszmaul3ae42262019-11-08 12:33:41 -080066 "//tools/cpp/clang_6p0:as",
67 "//tools/cpp/clang_6p0:tool-wrappers",
68 "@clang_6p0_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050069 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080070)
71
72filegroup(
Austin Schuhda9d0602019-09-15 17:29:38 -070073 name = "clang_6p0_ar_files",
74 srcs = [
75 "//tools/cpp/clang_6p0:ar",
76 "@clang_6p0_repo//:compiler_pieces",
77 ],
78)
79
80filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -080081 name = "clang_6p0_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080082 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -080083 "//tools/cpp/clang_6p0:ar",
84 "//tools/cpp/clang_6p0:clang",
85 "//tools/cpp/clang_6p0:clang-symlinks",
86 "//tools/cpp/clang_6p0:ld",
87 "@clang_6p0_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050088 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080089)
90
91filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -080092 name = "clang_6p0_strip_files",
Brian Silverman5c00e232018-08-12 02:08:32 -070093 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -080094 "//tools/cpp/clang_6p0:strip",
95 "@clang_6p0_repo//:compiler_pieces",
Brian Silverman5c00e232018-08-12 02:08:32 -070096 ],
97)
98
99filegroup(
James Kuszmaul3ae42262019-11-08 12:33:41 -0800100 name = "clang_6p0_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800101 srcs = [
Brian Silverman7b8899e2018-06-30 19:19:24 -0700102 "flags_compiler_inputs",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800103 "//tools/cpp/clang_6p0:clang",
104 "//tools/cpp/clang_6p0:ld",
105 "@clang_6p0_repo//:compiler_components",
106 "@clang_6p0_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800107 ],
Brian Silverman12b3fc52015-10-11 19:38:33 -0400108)
109
110cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800111 name = "cc-compiler-k8",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800112 all_files = ":clang_6p0_all_files",
Philipp Schraderdada1072020-11-24 11:34:46 -0800113 ar_files = ":clang_6p0_ar_files",
114 as_files = ":clang_6p0_compiler_files",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800115 compiler_files = ":clang_6p0_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800116 dwp_files = ":empty",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800117 linker_files = ":clang_6p0_linker_files",
118 objcopy_files = "//tools/cpp/clang_6p0:objcopy",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800119 strip_files = ":clang_6p0_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800120 supports_param_files = 1,
Austin Schuhda9d0602019-09-15 17:29:38 -0700121 toolchain_config = ":k8_toolchain_config",
Philipp Schraderdada1072020-11-24 11:34:46 -0800122 toolchain_identifier = "k8_linux",
123)
124
125toolchain(
126 name = "cc-toolchain-k8",
127 exec_compatible_with = [
128 "@platforms//os:linux",
129 "@platforms//cpu:x86_64",
130 ],
131 target_compatible_with = [
132 "@platforms//os:linux",
133 "@platforms//cpu:x86_64",
134 ],
135 toolchain = ":cc-compiler-k8",
136 toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
Brian Silverman12b3fc52015-10-11 19:38:33 -0400137)
Austin Schuh23da18b2015-10-11 20:52:49 -0700138
Austin Schuh55139fe2015-10-14 23:55:24 -0700139filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800140 name = "roborio-compiler-files",
141 srcs = [
142 ":flags_compiler_inputs",
143 "//tools/cpp/arm-frc-linux-gnueabi:as",
144 "//tools/cpp/arm-frc-linux-gnueabi:tool-wrappers",
145 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
146 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700147)
148
149filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800150 name = "roborio_linker_files",
151 srcs = [
152 "//tools/cpp/arm-frc-linux-gnueabi:ar",
153 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
154 "//tools/cpp/arm-frc-linux-gnueabi:ld",
155 "//tools/cpp/arm-frc-linux-gnueabi:libs",
156 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
157 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700158)
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800159
Austin Schuh55139fe2015-10-14 23:55:24 -0700160filegroup(
Austin Schuhda9d0602019-09-15 17:29:38 -0700161 name = "roborio_ar_files",
162 srcs = [
163 "//tools/cpp/arm-frc-linux-gnueabi:ar",
164 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
165 ],
166)
167
168filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800169 name = "roborio_compiler_files",
170 srcs = [
171 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
172 "//tools/cpp/arm-frc-linux-gnueabi:ld",
173 "@arm_frc_linux_gnueabi_repo//:compiler_components",
174 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
175 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700176)
177
Brian Silverman50b9ac02018-08-12 13:24:10 -0700178filegroup(
179 name = "roborio_strip_files",
180 srcs = [
181 "//tools/cpp/arm-frc-linux-gnueabi:strip",
182 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
183 ],
184)
185
Austin Schuh23da18b2015-10-11 20:52:49 -0700186cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800187 name = "cc-compiler-roborio",
188 all_files = ":roborio-compiler-files",
Philipp Schraderdada1072020-11-24 11:34:46 -0800189 ar_files = ":roborio_ar_files",
190 as_files = ":roborio_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800191 compiler_files = ":roborio_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800192 dwp_files = ":empty",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800193 linker_files = ":roborio_linker_files",
194 objcopy_files = "//tools/cpp/arm-frc-linux-gnueabi:objcopy",
Brian Silverman50b9ac02018-08-12 13:24:10 -0700195 strip_files = ":roborio_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800196 supports_param_files = 1,
Austin Schuhda9d0602019-09-15 17:29:38 -0700197 toolchain_config = ":roborio_toolchain_config",
Philipp Schraderdada1072020-11-24 11:34:46 -0800198 toolchain_identifier = "roborio_linux",
199)
200
201toolchain(
202 name = "cc-toolchain-roborio",
203 exec_compatible_with = [
204 "@platforms//os:linux",
205 "@platforms//cpu:x86_64",
206 ],
207 target_compatible_with = [
208 "@platforms//os:linux",
209 "//tools/platforms/hardware:roborio",
210 ],
211 toolchain = ":cc-compiler-roborio",
212 toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
Austin Schuh23da18b2015-10-11 20:52:49 -0700213)
Brian Silverman0d57fc82016-01-24 21:02:53 -0500214
215filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800216 name = "linaro-gcc-files",
217 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -0800218 ":clang_6p0_all_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800219 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
220 "//tools/cpp/linaro_linux_gcc:tool-wrappers",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800221 "@linaro_linux_gcc_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800222 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500223)
224
225filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800226 name = "linaro_linux_linker_files",
227 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -0800228 ":clang_6p0_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800229 "//tools/cpp/linaro_linux_gcc:ar",
230 "//tools/cpp/linaro_linux_gcc:clang",
231 "//tools/cpp/linaro_linux_gcc:clang-ld",
232 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
233 "//tools/cpp/linaro_linux_gcc:gcc",
234 "//tools/cpp/linaro_linux_gcc:ld",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800235 "@linaro_linux_gcc_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800236 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500237)
238
239filegroup(
Austin Schuhda9d0602019-09-15 17:29:38 -0700240 name = "linaro_linux_ar_files",
241 srcs = [
242 "//tools/cpp/linaro_linux_gcc:ar",
243 "@linaro_linux_gcc_repo//:compiler_pieces",
244 ],
245)
246
247filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800248 name = "linaro_linux_compiler_files",
249 srcs = [
James Kuszmaul3ae42262019-11-08 12:33:41 -0800250 ":clang_6p0_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800251 "//tools/cpp/linaro_linux_gcc:as",
252 "//tools/cpp/linaro_linux_gcc:clang",
253 "//tools/cpp/linaro_linux_gcc:gcc",
254 "//tools/cpp/linaro_linux_gcc:ld",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800255 "@linaro_linux_gcc_repo//:compiler_pieces",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700256 ],
257)
258
259filegroup(
260 name = "linaro_linux_strip_files",
261 srcs = [
262 "//tools/cpp/linaro_linux_gcc:strip",
James Kuszmaul3ae42262019-11-08 12:33:41 -0800263 "@linaro_linux_gcc_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800264 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500265)
266
267cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800268 name = "cc-compiler-armhf-debian",
269 all_files = ":linaro-gcc-files",
Philipp Schraderdada1072020-11-24 11:34:46 -0800270 ar_files = "linaro_linux_ar_files",
271 as_files = "linaro_linux_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800272 compiler_files = ":linaro_linux_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800273 dwp_files = ":empty",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800274 linker_files = ":linaro_linux_linker_files",
275 objcopy_files = "//tools/cpp/linaro_linux_gcc:objcopy",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700276 strip_files = ":linaro_linux_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800277 supports_param_files = 1,
Austin Schuhda9d0602019-09-15 17:29:38 -0700278 toolchain_config = ":armhf-debian_toolchain_config",
Philipp Schraderdada1072020-11-24 11:34:46 -0800279 toolchain_identifier = "clang_linux_armhf",
280)
281
282toolchain(
283 name = "cc-toolchain-armhf-debian",
284 exec_compatible_with = [
285 "@platforms//os:linux",
286 "@platforms//cpu:x86_64",
287 ],
288 target_compatible_with = [
289 "@platforms//os:linux",
290 "//tools/platforms/hardware:raspberry_pi",
291 ],
292 toolchain = ":cc-compiler-armhf-debian",
293 toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
Brian Silverman0d57fc82016-01-24 21:02:53 -0500294)
Brian Silverman8b638692017-06-26 23:10:26 -0700295
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700296filegroup(
297 name = "gcc_arm_none_eabi_none_files",
298 srcs = [
299 "//tools/cpp/gcc_arm_none_eabi:tool-wrappers",
300 "@gcc_arm_none_eabi//:compiler_pieces",
301 ],
302)
303
304filegroup(
305 name = "gcc_arm_none_eabi_compiler_files",
306 srcs = [
307 "//tools/cpp/gcc_arm_none_eabi:as",
308 "//tools/cpp/gcc_arm_none_eabi:gcc",
309 "//tools/cpp/gcc_arm_none_eabi:ld",
Austin Schuhda9d0602019-09-15 17:29:38 -0700310 "@gcc_arm_none_eabi//:compiler_pieces",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700311 ],
312)
313
314filegroup(
315 name = "gcc_arm_none_eabi_linker_files",
316 srcs = [
317 "//motors/core:linkerscripts",
318 "//tools/cpp/gcc_arm_none_eabi:ar",
319 "//tools/cpp/gcc_arm_none_eabi:gcc",
320 "//tools/cpp/gcc_arm_none_eabi:ld",
321 "@gcc_arm_none_eabi//:compiler_pieces",
322 ],
323)
324
Austin Schuhda9d0602019-09-15 17:29:38 -0700325filegroup(
326 name = "gcc_arm_none_eabi_ar_files",
327 srcs = [
328 "//tools/cpp/gcc_arm_none_eabi:ar",
329 "@gcc_arm_none_eabi//:compiler_pieces",
330 ],
331)
332
Brian Silverman8b638692017-06-26 23:10:26 -0700333cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800334 name = "cc-compiler-cortex-m4f",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700335 all_files = ":gcc_arm_none_eabi_none_files",
Philipp Schraderdada1072020-11-24 11:34:46 -0800336 ar_files = ":gcc_arm_none_eabi_ar_files",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700337 compiler_files = ":gcc_arm_none_eabi_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800338 dwp_files = ":empty",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700339 linker_files = ":gcc_arm_none_eabi_linker_files",
340 objcopy_files = "//tools/cpp/gcc_arm_none_eabi:objcopy",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700341 strip_files = "//tools/cpp/gcc_arm_none_eabi:strip",
342 supports_param_files = 1,
Austin Schuhda9d0602019-09-15 17:29:38 -0700343 toolchain_config = ":cortex-m4f_toolchain_config",
Philipp Schraderdada1072020-11-24 11:34:46 -0800344 toolchain_identifier = "cortex-m4f",
345)
346
347toolchain(
348 name = "cc-toolchain-cortex-m4f",
349 exec_compatible_with = [
350 "@platforms//os:linux",
351 "@platforms//cpu:x86_64",
352 ],
353 target_compatible_with = [
354 "@platforms//os:none",
355 "//tools/platforms/hardware:cortex_m4f",
356 ],
357 toolchain = ":cc-compiler-cortex-m4f",
358 toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700359)
360
361cc_toolchain(
362 name = "cc-compiler-cortex-m4f-k22",
363 all_files = ":gcc_arm_none_eabi_none_files",
364 compiler_files = ":gcc_arm_none_eabi_compiler_files",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700365 dwp_files = ":empty",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700366 linker_files = ":gcc_arm_none_eabi_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800367 objcopy_files = ":empty",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800368 strip_files = ":empty",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700369 supports_param_files = 1,
Austin Schuhda9d0602019-09-15 17:29:38 -0700370 toolchain_config = ":cortex-m4f-k22_toolchain_config",
Philipp Schraderdada1072020-11-24 11:34:46 -0800371 toolchain_identifier = "cortex-m4f-k22",
372)
373
374toolchain(
375 name = "cc-toolchain-cortex-m4f-k22",
376 exec_compatible_with = [
377 "@platforms//os:linux",
378 "@platforms//cpu:x86_64",
379 ],
380 target_compatible_with = [
381 "@platforms//os:none",
382 "//tools/platforms/hardware:cortex_m4f",
383 ],
384 toolchain = ":cc-compiler-cortex-m4f-k22",
385 toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
Brian Silverman7b8899e2018-06-30 19:19:24 -0700386)