@@ -269,6 +269,9 @@ cc_toolchain_config_k8_aarch64_linux(
269269
270270toolchain (
271271 name = "cc_toolchain_for_k8_aarch64_linux" ,
272+ exec_compatible_with = [
273+ "@platforms//os:linux" ,
274+ ],
272275 target_compatible_with = [
273276 "@platforms//cpu:aarch64" ,
274277 "@platforms//os:linux" ,
@@ -278,6 +281,77 @@ toolchain(
278281 toolchain_type = "@bazel_tools//tools/cpp:toolchain_type" ,
279282)
280283
284+ # NOTE: the Cellar path is version-pinned; a repository rule should derive it
285+ # (e.g. from `brew --prefix`) once this is productionized.
286+ MACOS_ROBOT_TC = "/opt/homebrew/Cellar/aarch64-unknown-linux-gnu/15.2.0/toolchain"
287+
288+ cc_toolchain_config_k8_aarch64_linux (
289+ name = "gcc_macos_robot" ,
290+ builtin_include_directories = [
291+ MACOS_ROBOT_TC + "/aarch64-unknown-linux-gnu/include/c++/15.2.0" ,
292+ MACOS_ROBOT_TC + "/aarch64-unknown-linux-gnu/include/c++/15.2.0/aarch64-unknown-linux-gnu" ,
293+ MACOS_ROBOT_TC + "/aarch64-unknown-linux-gnu/include/c++/15.2.0/backward" ,
294+ MACOS_ROBOT_TC + "/lib/gcc/aarch64-unknown-linux-gnu/15.2.0/include" ,
295+ MACOS_ROBOT_TC + "/lib/gcc/aarch64-unknown-linux-gnu/15.2.0/include-fixed" ,
296+ MACOS_ROBOT_TC + "/aarch64-unknown-linux-gnu/include" ,
297+ MACOS_ROBOT_TC + "/aarch64-unknown-linux-gnu/sysroot/usr/include" ,
298+ ] + make_builtin_include_directories (),
299+ tool_paths = {
300+ "ar" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-ar" ,
301+ "cpp" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-cpp" ,
302+ # messense ships no dwp; point at gcc (unused without fission).
303+ "dwp" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-gcc" ,
304+ # wrapper forces -fuse-ld=bfd (messense has no gold linker).
305+ "gcc" : "wrapper/macos_robot_gcc" ,
306+ "gcov" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-gcov" ,
307+ "ld" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-ld" ,
308+ "nm" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-nm" ,
309+ "objcopy" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-objcopy" ,
310+ "objdump" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-objdump" ,
311+ "strip" : MACOS_ROBOT_TC + "/bin/aarch64-unknown-linux-gnu-strip" ,
312+ },
313+ toolchain_identifier = "gcc-macos-robot" ,
314+ )
315+
316+ filegroup (
317+ name = "macos_robot_everything" ,
318+ srcs = [
319+ "wrapper/macos_robot_gcc" ,
320+ "@macos_robot_gcc//:everything" ,
321+ ],
322+ )
323+
324+ cc_toolchain (
325+ name = "cc_toolchain_macos_robot" ,
326+ all_files = ":macos_robot_everything" ,
327+ ar_files = ":macos_robot_everything" ,
328+ as_files = ":macos_robot_everything" ,
329+ compiler_files = ":macos_robot_everything" ,
330+ dwp_files = ":macos_robot_everything" ,
331+ linker_files = ":macos_robot_everything" ,
332+ objcopy_files = ":macos_robot_everything" ,
333+ strip_files = ":macos_robot_everything" ,
334+ supports_param_files = 0 ,
335+ tags = ["no-ide" ],
336+ toolchain_config = ":gcc_macos_robot" ,
337+ toolchain_identifier = "gcc-macos-robot" ,
338+ )
339+
340+ toolchain (
341+ name = "cc_toolchain_for_macos_robot" ,
342+ exec_compatible_with = [
343+ "@platforms//os:osx" ,
344+ "@platforms//cpu:aarch64" ,
345+ ],
346+ target_compatible_with = [
347+ "@platforms//cpu:aarch64" ,
348+ "@platforms//os:linux" ,
349+ ":glibc_2_27" ,
350+ ],
351+ toolchain = ":cc_toolchain_macos_robot" ,
352+ toolchain_type = "@bazel_tools//tools/cpp:toolchain_type" ,
353+ )
354+
281355toolchain (
282356 name = "cc_toolchain_for_k8" ,
283357 exec_compatible_with = [
0 commit comments