TIM-VX/toolchains/gcc-linaro-7.3.1-2018.05-x8.../cc_toolchain_config.bzl

189 lines
7.5 KiB
Python
Raw Normal View History

#
# Vivante Cross Toolchain configuration
#
load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES")
load("@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl",
"tool_path",
"feature",
"with_feature_set",
"flag_group",
"flag_set")
load("//:cc_toolchain_base.bzl",
"build_cc_toolchain_config",
"all_compile_actions",
"all_cpp_compile_actions",
"all_link_actions")
tool_paths = [
tool_path(name = "ar", path = "bin/wrapper-ar",),
tool_path(name = "compat-ld", path = "bin/wrapper-ld",),
tool_path(name = "cpp", path = "bin/wrapper-cpp",),
tool_path(name = "dwp", path = "bin/wrapper-dwp",),
tool_path(name = "gcc", path = "bin/wrapper-gcc",),
tool_path(name = "gcov", path = "bin/wrapper-gcov",),
tool_path(name = "ld", path = "bin/wrapper-ld",),
tool_path(name = "nm", path = "bin/wrapper-nm",),
tool_path(name = "objcopy", path = "bin/wrapper-objcopy",),
tool_path(name = "objdump", path = "bin/wrapper-objdump",),
tool_path(name = "strip", path = "bin/wrapper-strip",),
]
def _impl(ctx):
builtin_sysroot = "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc"
compile_flags_feature = feature(
name = "compile_flags",
enabled = True,
flag_sets = [
flag_set(
actions = all_compile_actions,
flag_groups = [
flag_group(
flags = [
"-idirafter", "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/include",
"-idirafter", "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/7.3.1/include",
"-idirafter", "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/7.3.1/include-fixed",
"-idirafter", "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/7.3.1/install-tools/include",
"-idirafter", "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/7.3.1/plugin/include",
],
),
flag_group(
flags = [
"-D__arm64",
"-Wall", # All warnings are enabled.
"-Wunused-but-set-parameter", # Enable a few more warnings that aren't part of -Wall.
"-Wno-free-nonheap-object", # Disable some that are problematic, has false positives
"-fno-omit-frame-pointer", # Keep stack frames for debugging, even in opt mode.
"-no-canonical-prefixes",
"-fstack-protector",
"-fPIE",
"-fPIC",
],
),
],
),
flag_set(
actions = all_cpp_compile_actions + [ACTION_NAMES.lto_backend],
flag_groups = [
flag_group(
flags = [
"-isystem" , "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/include/c++/7.3.1",
"-isystem" , "external/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/include/c++/7.3.1/aarch64-linux-gnu",
]
),
],
),
flag_set(
actions = all_compile_actions,
flag_groups = [
flag_group(
flags = [
"-g",
],
),
],
with_features = [with_feature_set(features = ["dbg"])],
),
flag_set(
actions = all_compile_actions,
flag_groups = [
flag_group(
flags = [
"-g0",
"-O2",
"-DNDEBUG",
"-ffunction-sections",
"-fdata-sections",
],
),
],
with_features = [with_feature_set(features = ["opt"])],
),
flag_set(
actions = all_link_actions,
flag_groups = [
flag_group(
flags = [
"-lstdc++",
],
),
],
),
flag_set(
actions = all_link_actions,
flag_groups = [
flag_group(
flags = [
"-Wl,--gc-sections",
],
),
],
with_features = [with_feature_set(features = ["opt"])],
),
flag_set(
actions = [
ACTION_NAMES.cpp_link_executable,
],
flag_groups = [
flag_group(
flags = [
"-pie",
],
),
],
),
],
)
cxx_builtin_include_directories = [
"%package(@gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu//aarch64-linux-gnu/libc/usr/include)%",
"%package(@gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu//lib/gcc/aarch64-linux-gnu/7.3.1/include)%",
"%package(@gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu//lib/gcc/aarch64-linux-gnu/7.3.1/include-fixed)%",
"%package(@gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu//lib/gcc/aarch64-linux-gnu/7.3.1/install-tools/include)%",
"%package(@gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu//lib/gcc/aarch64-linux-gnu/7.3.1/plugin/include)%",
"%package(@gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu//aarch64-linux-gnu/include/c++/7.3.1)%",
"%package(@gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu//aarch64-linux-gnu/include/c++/7.3.1/aarch64-linux-gnu)%",
]
objcopy_embed_flags_feature = feature(
name = "objcopy_embed_flags",
enabled = True,
flag_sets = [
flag_set(
actions = ["objcopy_embed_data"],
flag_groups = [
flag_group(
flags = [
"-I",
"binary",
],
),
],
),
]
)
dbg_feature = feature(name = "dbg")
opt_feature = feature(name = "opt")
return cc_common.create_cc_toolchain_config_info(
ctx = ctx,
toolchain_identifier = ctx.attr.toolchain_name,
host_system_name = "",
target_system_name = "linux",
target_cpu = ctx.attr.target_cpu,
target_libc = ctx.attr.target_cpu,
compiler = ctx.attr.compiler,
abi_version = ctx.attr.compiler,
abi_libc_version = ctx.attr.compiler,
tool_paths = tool_paths,
features = [compile_flags_feature, objcopy_embed_flags_feature, dbg_feature, opt_feature],
cxx_builtin_include_directories = cxx_builtin_include_directories,
builtin_sysroot = builtin_sysroot,
)
# DON'T MODIFY
cc_toolchain_config = build_cc_toolchain_config(_impl)
# EOF