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 = "ar", path = "/usr/bin/s390x-linux-gnu-ar", ), tool_path( name = "cpp", path = "/usr/bin/s390x-linux-gnu-cpp", ), tool_path( name = "gcc", path = "/usr/bin/s390x-linux-gnu-gcc", ), tool_path( name = "gcov", path = "/usr/bin/s390x-linux-gnu-gcov", ), tool_path( name = "ld", path = "/usr/bin/s390x-linux-gnu-ld", ), tool_path( name = "nm", path = "/usr/bin/s390x-linux-gnu-nm", ), tool_path( name = "objdump", path = "/usr/bin/s390x-linux-gnu-objdump", ), tool_path( name = "strip", path = "/usr/bin/s390x-linux-gnu-strip", ), ] # Update the value of __TOOLCHAIN_SYSROOT__ every time the list # of cxx_builtin_include_directories has been modified. # # This is needed to make bazel realize that the updated toolchain # is different from the previous one and handle caching correctly. # # https://github.com/kubevirt/kubevirt/pull/8404#issuecomment-1275096374 default_compiler_flags = feature( name = "default_compiler_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-no-canonical-prefixes", "-fno-canonical-system-headers", "-Wno-builtin-macro-redefined", "-D__DATE__=\"redacted\"", "-D__TIMESTAMP__=\"redacted\"", "-D__TIME__=\"redacted\"", "-D__TOOLCHAIN_SYSROOT__=\"centos-stream-9\"", "-nostdinc", "-I/usr/s390x-linux-gnu/sys-root/usr/include", "-I/usr/lib/gcc/s390x-linux-gnu/12/include", "-I/usr/lib/gcc/s390x-linux-gnu/12/include-fixed", ], ), ], ), ], ) default_linker_flags = feature( name = "default_linker_flags", enabled = True, flag_sets = [ flag_set( actions = all_link_actions, flag_groups = ([ flag_group( flags = [ "", ], ), ]), ), ], ) features = [ default_compiler_flags, default_linker_flags, ] return cc_common.create_cc_toolchain_config_info( ctx = ctx, cxx_builtin_include_directories = [ "/usr/s390x-linux-gnu/sys-root/usr/include", "/usr/lib/gcc/s390x-linux-gnu/12/include", "/usr/lib/gcc/s390x-linux-gnu/12/include-fixed", ], features = features, toolchain_identifier = "s390x-toolchain", host_system_name = "local", target_system_name = "unknown", target_cpu = "unknown", target_libc = "unknown", compiler = "unknown", abi_version = "unknown", abi_libc_version = "unknown", tool_paths = tool_paths, ) cc_toolchain_config = rule( implementation = _impl, attrs = {}, provides = [CcToolchainConfigInfo], )