load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") load( "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "feature", "flag_group", "flag_set", "tool_path", ) all_link_actions = [ ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_nodeps_dynamic_library, ] all_compile_actions = [ ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.clif_match, ACTION_NAMES.cpp_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.lto_backend, ACTION_NAMES.preprocess_assemble, ] def _impl(ctx): tool_paths = [ tool_path( name = "gcc", path = "/usr/bin/i686-elf-gcc", ), tool_path( name = "ld", path = "/usr/bin/i686-elf-ld", ), tool_path( name = "ar", path = "/usr/bin/i686-elf-ar", ), tool_path( name = "cpp", path = "/usr/bin/i686-elf-cpp", ), tool_path( name = "gcov", path = "/bin/false", ), tool_path( name = "nm", path = "/usr/bin/i686-elf-nm", ), tool_path( name = "objdump", path = "/usr/bin/i686-elf-objdump", ), tool_path( name = "strip", path = "/usr/bin/i686-elf-strip", ), ] features = [ feature( name = "default_compiler_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-fanalyzer", "-ffreestanding", "-mgeneral-regs-only", ], ), ], ), ], ), feature( name = "default_linker_flags", enabled = True, flag_sets = [ flag_set( actions = all_link_actions, flag_groups = ([ flag_group( flags = [ "-nostdlib", ], ), ]), ), ], ), ] return cc_common.create_cc_toolchain_config_info( ctx = ctx, features = features, cxx_builtin_include_directories = [ "/usr/lib/gcc/i686-elf", ], toolchain_identifier = "local", host_system_name = "local", target_system_name = "local", target_cpu = "i686", target_libc = "unknown", compiler = "gcc", abi_version = "unknown", abi_libc_version = "unknown", tool_paths = tool_paths, ) cc_toolchain_config = rule( implementation = _impl, attrs = {}, provides = [CcToolchainConfigInfo], )