Generate our CROSSTOOL
I want to add a second cortex-m4f one, which is mostly the same, and not
have to maintain two of them. Actually doing that is coming in a
separate change.
Change-Id: I6e985de31b7741a7aa27a1d221d28623192f0a08
diff --git a/WORKSPACE b/WORKSPACE
index 3921318..24b9051 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -162,13 +162,6 @@
actual = "//third_party/googletest:googlemock_main",
)
-new_http_archive(
- name = "python_import_helpers",
- build_file = "third_party/python_import_helpers.BUILD",
- sha256 = "71939a7d75585a57d2e99a33d39f391764d8f930f9a16acf32e00c5d3f432aa0",
- url = "http://frc971.org/Build-Dependencies/empty.tar.gz",
-)
-
# Recompressed from libusb-1.0.21.7z.
http_file(
name = "libusb_1_0_windows",
diff --git a/third_party/bazel/BUILD b/third_party/bazel/BUILD
index 4b56a08..4aecbea 100644
--- a/third_party/bazel/BUILD
+++ b/third_party/bazel/BUILD
@@ -1,11 +1,22 @@
-licenses(['notice'])
+licenses(["notice"])
# Generated from Bazel's
# 30df02a567cbd8a307b96037f0960fca66a5deaf://src/main/protobuf/extra_actions_base.proto.
py_library(
- name = 'extra_actions_proto_py',
- visibility = ['//visibility:public'],
- srcs = [
- 'protos/extra_actions_base_pb2.py',
- ],
+ name = "extra_actions_proto_py",
+ srcs = [
+ "protos/extra_actions_base_pb2.py",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+# Generated from Bazel's
+# aa7e972dbc96aa94f86522d452089dc30f6dbbcd://src/main/protobuf/crosstool_config.proto.
+py_library(
+ name = "crosstool_config_proto_py",
+ srcs = [
+ "protos/crosstool_config_pb2.py",
+ ],
+ visibility = ["//visibility:public"],
+ deps = ["//third_party/protobuf:protobuf_python"],
)
diff --git a/third_party/bazel/protos/crosstool_config_pb2.py b/third_party/bazel/protos/crosstool_config_pb2.py
new file mode 100644
index 0000000..1c10fb8
--- /dev/null
+++ b/third_party/bazel/protos/crosstool_config_pb2.py
@@ -0,0 +1,1564 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/main/protobuf/crosstool_config.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='src/main/protobuf/crosstool_config.proto',
+ package='com.google.devtools.build.lib.view.config.crosstool',
+ syntax='proto2',
+ serialized_pb=_b('\n(src/main/protobuf/crosstool_config.proto\x12\x33\x63om.google.devtools.build.lib.view.config.crosstool\"\x8c \n\nCToolchain\x12X\n\x07\x66\x65\x61ture\x18\x32 \x03(\x0b\x32G.com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature\x12\x63\n\raction_config\x18\x35 \x03(\x0b\x32L.com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig\x12r\n\x15\x61rtifact_name_pattern\x18\x36 \x03(\x0b\x32S.com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern\x12\x1c\n\x14toolchain_identifier\x18\x01 \x02(\t\x12\x18\n\x10host_system_name\x18\x02 \x02(\t\x12\x1a\n\x12target_system_name\x18\x03 \x02(\t\x12\x12\n\ntarget_cpu\x18\x04 \x02(\t\x12\x13\n\x0btarget_libc\x18\x05 \x02(\t\x12\x10\n\x08\x63ompiler\x18\x06 \x02(\t\x12\x13\n\x0b\x61\x62i_version\x18\x07 \x02(\t\x12\x18\n\x10\x61\x62i_libc_version\x18\x08 \x02(\t\x12P\n\ttool_path\x18\t \x03(\x0b\x32=.com.google.devtools.build.lib.view.config.crosstool.ToolPath\x12#\n\x14supports_gold_linker\x18\n \x01(\x08:\x05\x66\x61lse\x12%\n\x16supports_thin_archives\x18\x0b \x01(\x08:\x05\x66\x61lse\x12%\n\x16supports_start_end_lib\x18\x1c \x01(\x08:\x05\x66\x61lse\x12\x30\n!supports_interface_shared_objects\x18 \x01(\x08:\x05\x66\x61lse\x12)\n\x1asupports_embedded_runtimes\x18( \x01(\x08:\x05\x66\x61lse\x12!\n\x19static_runtimes_filegroup\x18- \x01(\t\x12\"\n\x1a\x64ynamic_runtimes_filegroup\x18. \x01(\t\x12*\n\x1bsupports_incremental_linker\x18) \x01(\x08:\x05\x66\x61lse\x12&\n\x17supports_normalizing_ar\x18\x1a \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10supports_fission\x18+ \x01(\x08:\x05\x66\x61lse\x12\x1c\n\rsupports_dsym\x18\x33 \x01(\x08:\x05\x66\x61lse\x12\x17\n\x08needsPic\x18\x0c \x01(\x08:\x05\x66\x61lse\x12\x15\n\rcompiler_flag\x18\r \x03(\t\x12\x10\n\x08\x63xx_flag\x18\x0e \x03(\t\x12\x1b\n\x13unfiltered_cxx_flag\x18\x19 \x03(\t\x12\x13\n\x0blinker_flag\x18\x0f \x03(\t\x12#\n\x1b\x64ynamic_library_linker_flag\x18\x1b \x03(\t\x12\x1d\n\x15test_only_linker_flag\x18\x31 \x03(\t\x12\x1a\n\x12objcopy_embed_flag\x18\x10 \x03(\t\x12\x15\n\rld_embed_flag\x18\x17 \x03(\t\x12\x0f\n\x07\x61r_flag\x18/ \x03(\t\x12\x1d\n\x15\x61r_thin_archives_flag\x18\x30 \x03(\t\x12 \n\x18gcc_plugin_compiler_flag\x18\" \x03(\t\x12i\n\x16\x63ompilation_mode_flags\x18\x11 \x03(\x0b\x32I.com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags\x12[\n\x0flipo_mode_flags\x18, \x03(\x0b\x32\x42.com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags\x12\x61\n\x12linking_mode_flags\x18\x12 \x03(\x0b\x32\x45.com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags\x12#\n\x1bgcc_plugin_header_directory\x18\x13 \x03(\t\x12#\n\x1bmao_plugin_header_directory\x18\x14 \x03(\t\x12X\n\rmake_variable\x18\x15 \x03(\x0b\x32\x41.com.google.devtools.build.lib.view.config.crosstool.MakeVariable\x12%\n\x1d\x63xx_builtin_include_directory\x18\x16 \x03(\t\x12\x17\n\x0f\x62uiltin_sysroot\x18\x18 \x01(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_python_top\x18\x1d \x01(\t\x12\x1e\n\x16\x64\x65\x66\x61ult_python_version\x18\x1e \x01(\t\x12\x1f\n\x17python_preload_swigdeps\x18* \x01(\x08\x12\x18\n\x10\x64\x65\x66\x61ult_grte_top\x18\x1f \x01(\t\x12\x1d\n\x15\x64\x65\x62ian_extra_requires\x18! \x03(\t\x12\x14\n\x0c\x63\x63_target_os\x18\x37 \x01(\t\x1a\xee\x02\n\tFlagGroup\x12\x0c\n\x04\x66lag\x18\x01 \x03(\t\x12]\n\nflag_group\x18\x02 \x03(\x0b\x32I.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup\x12\x14\n\x0citerate_over\x18\x03 \x01(\t\x12\x1f\n\x17\x65xpand_if_all_available\x18\x04 \x03(\t\x12 \n\x18\x65xpand_if_none_available\x18\x05 \x03(\t\x12\x16\n\x0e\x65xpand_if_true\x18\x06 \x01(\t\x12\x17\n\x0f\x65xpand_if_false\x18\x07 \x01(\t\x12j\n\x0f\x65xpand_if_equal\x18\x08 \x01(\x0b\x32Q.com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue\x1a\x34\n\x11VariableWithValue\x12\x10\n\x08variable\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1a&\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1a\x1d\n\nFeatureSet\x12\x0f\n\x07\x66\x65\x61ture\x18\x01 \x03(\t\x1a\x36\n\x0eWithFeatureSet\x12\x0f\n\x07\x66\x65\x61ture\x18\x01 \x03(\t\x12\x13\n\x0bnot_feature\x18\x02 \x03(\t\x1a\xff\x01\n\x07\x46lagSet\x12\x0e\n\x06\x61\x63tion\x18\x01 \x03(\t\x12]\n\nflag_group\x18\x02 \x03(\x0b\x32I.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup\x12\x64\n\x0cwith_feature\x18\x03 \x03(\x0b\x32N.com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet\x12\x1f\n\x17\x65xpand_if_all_available\x18\x04 \x03(\t\x1a\xdb\x01\n\x06\x45nvSet\x12\x0e\n\x06\x61\x63tion\x18\x01 \x03(\t\x12[\n\tenv_entry\x18\x02 \x03(\x0b\x32H.com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry\x12\x64\n\x0cwith_feature\x18\x03 \x03(\x0b\x32N.com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet\x1a\xdd\x02\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x07 \x01(\x08\x12Y\n\x08\x66lag_set\x18\x02 \x03(\x0b\x32G.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet\x12W\n\x07\x65nv_set\x18\x06 \x03(\x0b\x32\x46.com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet\x12\\\n\x08requires\x18\x03 \x03(\x0b\x32J.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet\x12\x0f\n\x07implies\x18\x04 \x03(\t\x12\x10\n\x08provides\x18\x05 \x03(\t\x1a\x9e\x01\n\x04Tool\x12\x11\n\ttool_path\x18\x01 \x02(\t\x12\x64\n\x0cwith_feature\x18\x02 \x03(\x0b\x32N.com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet\x12\x1d\n\x15\x65xecution_requirement\x18\x03 \x03(\t\x1aO\n\x13\x41rtifactNamePattern\x12\x15\n\rcategory_name\x18\x01 \x02(\t\x12\x0e\n\x06prefix\x18\x02 \x02(\t\x12\x11\n\textension\x18\x03 \x02(\t\x1a\xc0\x03\n\x0c\x41\x63tionConfig\x12\x13\n\x0b\x63onfig_name\x18\x01 \x02(\t\x12\x13\n\x0b\x61\x63tion_name\x18\x02 \x02(\t\x12\x0f\n\x07\x65nabled\x18\x08 \x01(\x08\x12R\n\x04tool\x18\x03 \x03(\x0b\x32\x44.com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool\x12Y\n\x08\x66lag_set\x18\x04 \x03(\x0b\x32G.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet\x12W\n\x07\x65nv_set\x18\x05 \x03(\x0b\x32\x46.com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet\x12\\\n\x08requires\x18\x06 \x03(\x0b\x32J.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet\x12\x0f\n\x07implies\x18\x07 \x03(\t\"&\n\x08ToolPath\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x0c\n\x04path\x18\x02 \x02(\t\"\xa8\x01\n\x14\x43ompilationModeFlags\x12R\n\x04mode\x18\x01 \x02(\x0e\x32\x44.com.google.devtools.build.lib.view.config.crosstool.CompilationMode\x12\x15\n\rcompiler_flag\x18\x02 \x03(\t\x12\x10\n\x08\x63xx_flag\x18\x03 \x03(\t\x12\x13\n\x0blinker_flag\x18\x04 \x03(\t\"w\n\x10LinkingModeFlags\x12N\n\x04mode\x18\x01 \x02(\x0e\x32@.com.google.devtools.build.lib.view.config.crosstool.LinkingMode\x12\x13\n\x0blinker_flag\x18\x02 \x03(\t\"\x9a\x01\n\rLipoModeFlags\x12K\n\x04mode\x18\x01 \x02(\x0e\x32=.com.google.devtools.build.lib.view.config.crosstool.LipoMode\x12\x15\n\rcompiler_flag\x18\x02 \x03(\t\x12\x10\n\x08\x63xx_flag\x18\x03 \x03(\t\x12\x13\n\x0blinker_flag\x18\x04 \x03(\t\"+\n\x0cMakeVariable\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\"]\n\x13\x44\x65\x66\x61ultCpuToolchain\x12\x0b\n\x03\x63pu\x18\x01 \x02(\t\x12\x1c\n\x14toolchain_identifier\x18\x02 \x02(\t\x12\x1b\n\rsupports_lipo\x18\x03 \x01(\x08:\x04true\"\x95\x02\n\x10\x43rosstoolRelease\x12\x15\n\rmajor_version\x18\x01 \x02(\t\x12\x15\n\rminor_version\x18\x02 \x02(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_target_cpu\x18\x03 \x02(\t\x12\x63\n\x11\x64\x65\x66\x61ult_toolchain\x18\x04 \x03(\x0b\x32H.com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain\x12R\n\ttoolchain\x18\x05 \x03(\x0b\x32?.com.google.devtools.build.lib.view.config.crosstool.CToolchain*@\n\x0f\x43ompilationMode\x12\r\n\tFASTBUILD\x10\x01\x12\x07\n\x03\x44\x42G\x10\x02\x12\x07\n\x03OPT\x10\x03\x12\x0c\n\x08\x43OVERAGE\x10\x04*\\\n\x0bLinkingMode\x12\x10\n\x0c\x46ULLY_STATIC\x10\x01\x12\x11\n\rMOSTLY_STATIC\x10\x02\x12\x0b\n\x07\x44YNAMIC\x10\x03\x12\x1b\n\x17MOSTLY_STATIC_LIBRARIES\x10\x04*\x1f\n\x08LipoMode\x12\x07\n\x03OFF\x10\x01\x12\n\n\x06\x42INARY\x10\x02\x42\x35\n3com.google.devtools.build.lib.view.config.crosstool')
+)
+
+_COMPILATIONMODE = _descriptor.EnumDescriptor(
+ name='CompilationMode',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationMode',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='FASTBUILD', index=0, number=1,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='DBG', index=1, number=2,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='OPT', index=2, number=3,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='COVERAGE', index=3, number=4,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=5117,
+ serialized_end=5181,
+)
+_sym_db.RegisterEnumDescriptor(_COMPILATIONMODE)
+
+CompilationMode = enum_type_wrapper.EnumTypeWrapper(_COMPILATIONMODE)
+_LINKINGMODE = _descriptor.EnumDescriptor(
+ name='LinkingMode',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingMode',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='FULLY_STATIC', index=0, number=1,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='MOSTLY_STATIC', index=1, number=2,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='DYNAMIC', index=2, number=3,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='MOSTLY_STATIC_LIBRARIES', index=3, number=4,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=5183,
+ serialized_end=5275,
+)
+_sym_db.RegisterEnumDescriptor(_LINKINGMODE)
+
+LinkingMode = enum_type_wrapper.EnumTypeWrapper(_LINKINGMODE)
+_LIPOMODE = _descriptor.EnumDescriptor(
+ name='LipoMode',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.LipoMode',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='OFF', index=0, number=1,
+ options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='BINARY', index=1, number=2,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=5277,
+ serialized_end=5308,
+)
+_sym_db.RegisterEnumDescriptor(_LIPOMODE)
+
+LipoMode = enum_type_wrapper.EnumTypeWrapper(_LIPOMODE)
+FASTBUILD = 1
+DBG = 2
+OPT = 3
+COVERAGE = 4
+FULLY_STATIC = 1
+MOSTLY_STATIC = 2
+DYNAMIC = 3
+MOSTLY_STATIC_LIBRARIES = 4
+OFF = 1
+BINARY = 2
+
+
+
+_CTOOLCHAIN_FLAGGROUP = _descriptor.Descriptor(
+ name='FlagGroup',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.flag', index=0,
+ number=1, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='flag_group', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.flag_group', index=1,
+ number=2, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='iterate_over', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.iterate_over', index=2,
+ number=3, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='expand_if_all_available', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_all_available', index=3,
+ number=4, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='expand_if_none_available', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_none_available', index=4,
+ number=5, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='expand_if_true', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_true', index=5,
+ number=6, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='expand_if_false', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_false', index=6,
+ number=7, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='expand_if_equal', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_equal', index=7,
+ number=8, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=2134,
+ serialized_end=2500,
+)
+
+_CTOOLCHAIN_VARIABLEWITHVALUE = _descriptor.Descriptor(
+ name='VariableWithValue',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='variable', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue.variable', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='value', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue.value', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=2502,
+ serialized_end=2554,
+)
+
+_CTOOLCHAIN_ENVENTRY = _descriptor.Descriptor(
+ name='EnvEntry',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='key', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry.key', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='value', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry.value', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=2556,
+ serialized_end=2594,
+)
+
+_CTOOLCHAIN_FEATURESET = _descriptor.Descriptor(
+ name='FeatureSet',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet.feature', index=0,
+ number=1, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=2596,
+ serialized_end=2625,
+)
+
+_CTOOLCHAIN_WITHFEATURESET = _descriptor.Descriptor(
+ name='WithFeatureSet',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet.feature', index=0,
+ number=1, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='not_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet.not_feature', index=1,
+ number=2, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=2627,
+ serialized_end=2681,
+)
+
+_CTOOLCHAIN_FLAGSET = _descriptor.Descriptor(
+ name='FlagSet',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='action', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.action', index=0,
+ number=1, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='flag_group', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.flag_group', index=1,
+ number=2, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='with_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.with_feature', index=2,
+ number=3, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='expand_if_all_available', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.expand_if_all_available', index=3,
+ number=4, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=2684,
+ serialized_end=2939,
+)
+
+_CTOOLCHAIN_ENVSET = _descriptor.Descriptor(
+ name='EnvSet',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='action', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet.action', index=0,
+ number=1, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='env_entry', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet.env_entry', index=1,
+ number=2, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='with_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet.with_feature', index=2,
+ number=3, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=2942,
+ serialized_end=3161,
+)
+
+_CTOOLCHAIN_FEATURE = _descriptor.Descriptor(
+ name='Feature',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='enabled', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.enabled', index=1,
+ number=7, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='flag_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.flag_set', index=2,
+ number=2, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='env_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.env_set', index=3,
+ number=6, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='requires', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.requires', index=4,
+ number=3, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='implies', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.implies', index=5,
+ number=4, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='provides', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.provides', index=6,
+ number=5, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=3164,
+ serialized_end=3513,
+)
+
+_CTOOLCHAIN_TOOL = _descriptor.Descriptor(
+ name='Tool',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='tool_path', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool.tool_path', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='with_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool.with_feature', index=1,
+ number=2, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='execution_requirement', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool.execution_requirement', index=2,
+ number=3, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=3516,
+ serialized_end=3674,
+)
+
+_CTOOLCHAIN_ARTIFACTNAMEPATTERN = _descriptor.Descriptor(
+ name='ArtifactNamePattern',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='category_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern.category_name', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='prefix', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern.prefix', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='extension', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern.extension', index=2,
+ number=3, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=3676,
+ serialized_end=3755,
+)
+
+_CTOOLCHAIN_ACTIONCONFIG = _descriptor.Descriptor(
+ name='ActionConfig',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='config_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.config_name', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='action_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.action_name', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='enabled', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.enabled', index=2,
+ number=8, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='tool', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.tool', index=3,
+ number=3, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='flag_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.flag_set', index=4,
+ number=4, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='env_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.env_set', index=5,
+ number=5, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='requires', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.requires', index=6,
+ number=6, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='implies', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.implies', index=7,
+ number=7, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=3758,
+ serialized_end=4206,
+)
+
+_CTOOLCHAIN = _descriptor.Descriptor(
+ name='CToolchain',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.feature', index=0,
+ number=50, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='action_config', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.action_config', index=1,
+ number=53, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='artifact_name_pattern', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.artifact_name_pattern', index=2,
+ number=54, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='toolchain_identifier', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.toolchain_identifier', index=3,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='host_system_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.host_system_name', index=4,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='target_system_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.target_system_name', index=5,
+ number=3, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='target_cpu', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.target_cpu', index=6,
+ number=4, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='target_libc', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.target_libc', index=7,
+ number=5, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='compiler', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.compiler', index=8,
+ number=6, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='abi_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.abi_version', index=9,
+ number=7, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='abi_libc_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.abi_libc_version', index=10,
+ number=8, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='tool_path', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.tool_path', index=11,
+ number=9, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_gold_linker', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_gold_linker', index=12,
+ number=10, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_thin_archives', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_thin_archives', index=13,
+ number=11, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_start_end_lib', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_start_end_lib', index=14,
+ number=28, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_interface_shared_objects', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_interface_shared_objects', index=15,
+ number=32, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_embedded_runtimes', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_embedded_runtimes', index=16,
+ number=40, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='static_runtimes_filegroup', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.static_runtimes_filegroup', index=17,
+ number=45, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='dynamic_runtimes_filegroup', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.dynamic_runtimes_filegroup', index=18,
+ number=46, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_incremental_linker', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_incremental_linker', index=19,
+ number=41, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_normalizing_ar', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_normalizing_ar', index=20,
+ number=26, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_fission', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_fission', index=21,
+ number=43, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_dsym', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_dsym', index=22,
+ number=51, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='needsPic', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.needsPic', index=23,
+ number=12, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.compiler_flag', index=24,
+ number=13, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.cxx_flag', index=25,
+ number=14, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='unfiltered_cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.unfiltered_cxx_flag', index=26,
+ number=25, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.linker_flag', index=27,
+ number=15, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='dynamic_library_linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.dynamic_library_linker_flag', index=28,
+ number=27, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='test_only_linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.test_only_linker_flag', index=29,
+ number=49, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='objcopy_embed_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.objcopy_embed_flag', index=30,
+ number=16, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='ld_embed_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ld_embed_flag', index=31,
+ number=23, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='ar_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ar_flag', index=32,
+ number=47, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='ar_thin_archives_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ar_thin_archives_flag', index=33,
+ number=48, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='gcc_plugin_compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.gcc_plugin_compiler_flag', index=34,
+ number=34, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='compilation_mode_flags', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.compilation_mode_flags', index=35,
+ number=17, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='lipo_mode_flags', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.lipo_mode_flags', index=36,
+ number=44, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='linking_mode_flags', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.linking_mode_flags', index=37,
+ number=18, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='gcc_plugin_header_directory', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.gcc_plugin_header_directory', index=38,
+ number=19, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='mao_plugin_header_directory', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.mao_plugin_header_directory', index=39,
+ number=20, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='make_variable', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.make_variable', index=40,
+ number=21, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cxx_builtin_include_directory', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.cxx_builtin_include_directory', index=41,
+ number=22, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='builtin_sysroot', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.builtin_sysroot', index=42,
+ number=24, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='default_python_top', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.default_python_top', index=43,
+ number=29, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='default_python_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.default_python_version', index=44,
+ number=30, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='python_preload_swigdeps', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.python_preload_swigdeps', index=45,
+ number=42, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='default_grte_top', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.default_grte_top', index=46,
+ number=31, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='debian_extra_requires', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.debian_extra_requires', index=47,
+ number=33, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cc_target_os', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.cc_target_os', index=48,
+ number=55, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[_CTOOLCHAIN_FLAGGROUP, _CTOOLCHAIN_VARIABLEWITHVALUE, _CTOOLCHAIN_ENVENTRY, _CTOOLCHAIN_FEATURESET, _CTOOLCHAIN_WITHFEATURESET, _CTOOLCHAIN_FLAGSET, _CTOOLCHAIN_ENVSET, _CTOOLCHAIN_FEATURE, _CTOOLCHAIN_TOOL, _CTOOLCHAIN_ARTIFACTNAMEPATTERN, _CTOOLCHAIN_ACTIONCONFIG, ],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=98,
+ serialized_end=4206,
+)
+
+
+_TOOLPATH = _descriptor.Descriptor(
+ name='ToolPath',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.ToolPath',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='name', full_name='com.google.devtools.build.lib.view.config.crosstool.ToolPath.name', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='path', full_name='com.google.devtools.build.lib.view.config.crosstool.ToolPath.path', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4208,
+ serialized_end=4246,
+)
+
+
+_COMPILATIONMODEFLAGS = _descriptor.Descriptor(
+ name='CompilationModeFlags',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='mode', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.mode', index=0,
+ number=1, type=14, cpp_type=8, label=2,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.compiler_flag', index=1,
+ number=2, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.cxx_flag', index=2,
+ number=3, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.linker_flag', index=3,
+ number=4, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4249,
+ serialized_end=4417,
+)
+
+
+_LINKINGMODEFLAGS = _descriptor.Descriptor(
+ name='LinkingModeFlags',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='mode', full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags.mode', index=0,
+ number=1, type=14, cpp_type=8, label=2,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags.linker_flag', index=1,
+ number=2, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4419,
+ serialized_end=4538,
+)
+
+
+_LIPOMODEFLAGS = _descriptor.Descriptor(
+ name='LipoModeFlags',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='mode', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.mode', index=0,
+ number=1, type=14, cpp_type=8, label=2,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.compiler_flag', index=1,
+ number=2, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.cxx_flag', index=2,
+ number=3, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.linker_flag', index=3,
+ number=4, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4541,
+ serialized_end=4695,
+)
+
+
+_MAKEVARIABLE = _descriptor.Descriptor(
+ name='MakeVariable',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.MakeVariable',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='name', full_name='com.google.devtools.build.lib.view.config.crosstool.MakeVariable.name', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='value', full_name='com.google.devtools.build.lib.view.config.crosstool.MakeVariable.value', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4697,
+ serialized_end=4740,
+)
+
+
+_DEFAULTCPUTOOLCHAIN = _descriptor.Descriptor(
+ name='DefaultCpuToolchain',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='cpu', full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain.cpu', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='toolchain_identifier', full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain.toolchain_identifier', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='supports_lipo', full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain.supports_lipo', index=2,
+ number=3, type=8, cpp_type=7, label=1,
+ has_default_value=True, default_value=True,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4742,
+ serialized_end=4835,
+)
+
+
+_CROSSTOOLRELEASE = _descriptor.Descriptor(
+ name='CrosstoolRelease',
+ full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='major_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.major_version', index=0,
+ number=1, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='minor_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.minor_version', index=1,
+ number=2, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='default_target_cpu', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.default_target_cpu', index=2,
+ number=3, type=9, cpp_type=9, label=2,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='default_toolchain', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.default_toolchain', index=3,
+ number=4, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ _descriptor.FieldDescriptor(
+ name='toolchain', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.toolchain', index=4,
+ number=5, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto2',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4838,
+ serialized_end=5115,
+)
+
+_CTOOLCHAIN_FLAGGROUP.fields_by_name['flag_group'].message_type = _CTOOLCHAIN_FLAGGROUP
+_CTOOLCHAIN_FLAGGROUP.fields_by_name['expand_if_equal'].message_type = _CTOOLCHAIN_VARIABLEWITHVALUE
+_CTOOLCHAIN_FLAGGROUP.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_VARIABLEWITHVALUE.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_ENVENTRY.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_FEATURESET.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_WITHFEATURESET.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_FLAGSET.fields_by_name['flag_group'].message_type = _CTOOLCHAIN_FLAGGROUP
+_CTOOLCHAIN_FLAGSET.fields_by_name['with_feature'].message_type = _CTOOLCHAIN_WITHFEATURESET
+_CTOOLCHAIN_FLAGSET.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_ENVSET.fields_by_name['env_entry'].message_type = _CTOOLCHAIN_ENVENTRY
+_CTOOLCHAIN_ENVSET.fields_by_name['with_feature'].message_type = _CTOOLCHAIN_WITHFEATURESET
+_CTOOLCHAIN_ENVSET.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_FEATURE.fields_by_name['flag_set'].message_type = _CTOOLCHAIN_FLAGSET
+_CTOOLCHAIN_FEATURE.fields_by_name['env_set'].message_type = _CTOOLCHAIN_ENVSET
+_CTOOLCHAIN_FEATURE.fields_by_name['requires'].message_type = _CTOOLCHAIN_FEATURESET
+_CTOOLCHAIN_FEATURE.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_TOOL.fields_by_name['with_feature'].message_type = _CTOOLCHAIN_WITHFEATURESET
+_CTOOLCHAIN_TOOL.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_ARTIFACTNAMEPATTERN.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['tool'].message_type = _CTOOLCHAIN_TOOL
+_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['flag_set'].message_type = _CTOOLCHAIN_FLAGSET
+_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['env_set'].message_type = _CTOOLCHAIN_ENVSET
+_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['requires'].message_type = _CTOOLCHAIN_FEATURESET
+_CTOOLCHAIN_ACTIONCONFIG.containing_type = _CTOOLCHAIN
+_CTOOLCHAIN.fields_by_name['feature'].message_type = _CTOOLCHAIN_FEATURE
+_CTOOLCHAIN.fields_by_name['action_config'].message_type = _CTOOLCHAIN_ACTIONCONFIG
+_CTOOLCHAIN.fields_by_name['artifact_name_pattern'].message_type = _CTOOLCHAIN_ARTIFACTNAMEPATTERN
+_CTOOLCHAIN.fields_by_name['tool_path'].message_type = _TOOLPATH
+_CTOOLCHAIN.fields_by_name['compilation_mode_flags'].message_type = _COMPILATIONMODEFLAGS
+_CTOOLCHAIN.fields_by_name['lipo_mode_flags'].message_type = _LIPOMODEFLAGS
+_CTOOLCHAIN.fields_by_name['linking_mode_flags'].message_type = _LINKINGMODEFLAGS
+_CTOOLCHAIN.fields_by_name['make_variable'].message_type = _MAKEVARIABLE
+_COMPILATIONMODEFLAGS.fields_by_name['mode'].enum_type = _COMPILATIONMODE
+_LINKINGMODEFLAGS.fields_by_name['mode'].enum_type = _LINKINGMODE
+_LIPOMODEFLAGS.fields_by_name['mode'].enum_type = _LIPOMODE
+_CROSSTOOLRELEASE.fields_by_name['default_toolchain'].message_type = _DEFAULTCPUTOOLCHAIN
+_CROSSTOOLRELEASE.fields_by_name['toolchain'].message_type = _CTOOLCHAIN
+DESCRIPTOR.message_types_by_name['CToolchain'] = _CTOOLCHAIN
+DESCRIPTOR.message_types_by_name['ToolPath'] = _TOOLPATH
+DESCRIPTOR.message_types_by_name['CompilationModeFlags'] = _COMPILATIONMODEFLAGS
+DESCRIPTOR.message_types_by_name['LinkingModeFlags'] = _LINKINGMODEFLAGS
+DESCRIPTOR.message_types_by_name['LipoModeFlags'] = _LIPOMODEFLAGS
+DESCRIPTOR.message_types_by_name['MakeVariable'] = _MAKEVARIABLE
+DESCRIPTOR.message_types_by_name['DefaultCpuToolchain'] = _DEFAULTCPUTOOLCHAIN
+DESCRIPTOR.message_types_by_name['CrosstoolRelease'] = _CROSSTOOLRELEASE
+DESCRIPTOR.enum_types_by_name['CompilationMode'] = _COMPILATIONMODE
+DESCRIPTOR.enum_types_by_name['LinkingMode'] = _LINKINGMODE
+DESCRIPTOR.enum_types_by_name['LipoMode'] = _LIPOMODE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+CToolchain = _reflection.GeneratedProtocolMessageType('CToolchain', (_message.Message,), dict(
+
+ FlagGroup = _reflection.GeneratedProtocolMessageType('FlagGroup', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_FLAGGROUP,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup)
+ ))
+ ,
+
+ VariableWithValue = _reflection.GeneratedProtocolMessageType('VariableWithValue', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_VARIABLEWITHVALUE,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue)
+ ))
+ ,
+
+ EnvEntry = _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_ENVENTRY,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry)
+ ))
+ ,
+
+ FeatureSet = _reflection.GeneratedProtocolMessageType('FeatureSet', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_FEATURESET,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet)
+ ))
+ ,
+
+ WithFeatureSet = _reflection.GeneratedProtocolMessageType('WithFeatureSet', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_WITHFEATURESET,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet)
+ ))
+ ,
+
+ FlagSet = _reflection.GeneratedProtocolMessageType('FlagSet', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_FLAGSET,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet)
+ ))
+ ,
+
+ EnvSet = _reflection.GeneratedProtocolMessageType('EnvSet', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_ENVSET,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet)
+ ))
+ ,
+
+ Feature = _reflection.GeneratedProtocolMessageType('Feature', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_FEATURE,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature)
+ ))
+ ,
+
+ Tool = _reflection.GeneratedProtocolMessageType('Tool', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_TOOL,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool)
+ ))
+ ,
+
+ ArtifactNamePattern = _reflection.GeneratedProtocolMessageType('ArtifactNamePattern', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_ARTIFACTNAMEPATTERN,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern)
+ ))
+ ,
+
+ ActionConfig = _reflection.GeneratedProtocolMessageType('ActionConfig', (_message.Message,), dict(
+ DESCRIPTOR = _CTOOLCHAIN_ACTIONCONFIG,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig)
+ ))
+ ,
+ DESCRIPTOR = _CTOOLCHAIN,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain)
+ ))
+_sym_db.RegisterMessage(CToolchain)
+_sym_db.RegisterMessage(CToolchain.FlagGroup)
+_sym_db.RegisterMessage(CToolchain.VariableWithValue)
+_sym_db.RegisterMessage(CToolchain.EnvEntry)
+_sym_db.RegisterMessage(CToolchain.FeatureSet)
+_sym_db.RegisterMessage(CToolchain.WithFeatureSet)
+_sym_db.RegisterMessage(CToolchain.FlagSet)
+_sym_db.RegisterMessage(CToolchain.EnvSet)
+_sym_db.RegisterMessage(CToolchain.Feature)
+_sym_db.RegisterMessage(CToolchain.Tool)
+_sym_db.RegisterMessage(CToolchain.ArtifactNamePattern)
+_sym_db.RegisterMessage(CToolchain.ActionConfig)
+
+ToolPath = _reflection.GeneratedProtocolMessageType('ToolPath', (_message.Message,), dict(
+ DESCRIPTOR = _TOOLPATH,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.ToolPath)
+ ))
+_sym_db.RegisterMessage(ToolPath)
+
+CompilationModeFlags = _reflection.GeneratedProtocolMessageType('CompilationModeFlags', (_message.Message,), dict(
+ DESCRIPTOR = _COMPILATIONMODEFLAGS,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags)
+ ))
+_sym_db.RegisterMessage(CompilationModeFlags)
+
+LinkingModeFlags = _reflection.GeneratedProtocolMessageType('LinkingModeFlags', (_message.Message,), dict(
+ DESCRIPTOR = _LINKINGMODEFLAGS,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags)
+ ))
+_sym_db.RegisterMessage(LinkingModeFlags)
+
+LipoModeFlags = _reflection.GeneratedProtocolMessageType('LipoModeFlags', (_message.Message,), dict(
+ DESCRIPTOR = _LIPOMODEFLAGS,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags)
+ ))
+_sym_db.RegisterMessage(LipoModeFlags)
+
+MakeVariable = _reflection.GeneratedProtocolMessageType('MakeVariable', (_message.Message,), dict(
+ DESCRIPTOR = _MAKEVARIABLE,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.MakeVariable)
+ ))
+_sym_db.RegisterMessage(MakeVariable)
+
+DefaultCpuToolchain = _reflection.GeneratedProtocolMessageType('DefaultCpuToolchain', (_message.Message,), dict(
+ DESCRIPTOR = _DEFAULTCPUTOOLCHAIN,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain)
+ ))
+_sym_db.RegisterMessage(DefaultCpuToolchain)
+
+CrosstoolRelease = _reflection.GeneratedProtocolMessageType('CrosstoolRelease', (_message.Message,), dict(
+ DESCRIPTOR = _CROSSTOOLRELEASE,
+ __module__ = 'src.main.protobuf.crosstool_config_pb2'
+ # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease)
+ ))
+_sym_db.RegisterMessage(CrosstoolRelease)
+
+
+DESCRIPTOR.has_options = True
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n3com.google.devtools.build.lib.view.config.crosstool'))
+# @@protoc_insertion_point(module_scope)
diff --git a/third_party/protobuf/BUILD b/third_party/protobuf/BUILD
index ddeeb77..b6f988a 100644
--- a/third_party/protobuf/BUILD
+++ b/third_party/protobuf/BUILD
@@ -143,7 +143,7 @@
deps = [":protobuf_lite"],
)
-'''
+"""
objc_library(
name = "protobuf_objc",
hdrs = ["objectivec/GPBProtocolBuffers.h"],
@@ -151,7 +151,7 @@
non_arc_srcs = ["objectivec/GPBProtocolBuffers.m"],
visibility = ["//visibility:public"],
)
-'''
+"""
RELATIVE_WELL_KNOWN_PROTOS = [
# AUTOGEN(well_known_protos)
@@ -363,10 +363,10 @@
name = "cc_test_protos",
srcs = LITE_TEST_PROTOS + TEST_PROTOS,
include = "src",
+ copts = COPTS,
default_runtime = ":protobuf",
protoc = ":protoc",
deps = [":cc_wkt_protos"],
- copts = COPTS,
)
COMMON_TEST_SRCS = [
@@ -386,12 +386,12 @@
"src/google/protobuf/compiler/test_plugin.cc",
"src/google/protobuf/testing/file.cc",
],
+ copts = COPTS,
deps = [
":protobuf",
":protoc_lib",
"//external:gtest",
],
- copts = COPTS,
)
cc_test(
@@ -488,11 +488,11 @@
name = "gen_well_known_protos_java",
srcs = WELL_KNOWN_PROTOS,
outs = [
- "wellknown.srcjar"
+ "wellknown.srcjar",
],
cmd = "$(location :protoc) --java_out=$(@D)/wellknown.jar" +
- " -Ithird_party/protobuf/src $(SRCS) " +
- " && mv $(@D)/wellknown.jar $(@D)/wellknown.srcjar",
+ " -Ithird_party/protobuf/src $(SRCS) " +
+ " && mv $(@D)/wellknown.jar $(@D)/wellknown.srcjar",
tools = [":protoc"],
)
@@ -543,7 +543,7 @@
include = "python",
)
-'''
+"""
cc_binary(
name = "internal/_api_implementation.so",
srcs = ["python/google/protobuf/internal/api_implementation.cc"],
@@ -580,7 +580,7 @@
":use_fast_cpp_protos": ["//third_party/protobuf/util/python:python_headers"],
}),
)
-'''
+"""
config_setting(
name = "use_fast_cpp_protos",
@@ -603,6 +603,7 @@
default_runtime = "",
protoc = ":protoc",
py_extra_srcs = [":python_srcs"],
+ py_imports = ["."],
py_libs = ["//external:six"],
srcs_version = "PY2AND3",
visibility = ["//visibility:public"],
diff --git a/third_party/protobuf/protobuf.bzl b/third_party/protobuf/protobuf.bzl
index 29fdad6..842785c 100644
--- a/third_party/protobuf/protobuf.bzl
+++ b/third_party/protobuf/protobuf.bzl
@@ -90,7 +90,7 @@
"deps": attr.label_list(providers = ["proto"]),
"includes": attr.string_list(),
"protoc": attr.label(
- cfg = 'host',
+ cfg = "host",
executable = True,
single_file = True,
mandatory = True,
@@ -180,7 +180,6 @@
includes=includes,
**kargs)
-
def internal_copied_filegroup(
name,
srcs,
@@ -210,13 +209,13 @@
srcs=outs,
**kargs)
-
def py_proto_library(
name,
srcs=[],
deps=[],
py_libs=[],
py_extra_srcs=[],
+ py_imports=[],
include=None,
default_runtime="//google/protobuf:protobuf_python",
protoc="//google/protobuf:protoc",
@@ -270,12 +269,13 @@
if default_runtime and not default_runtime in py_libs + deps:
py_libs = py_libs + [default_runtime]
- py_libs = py_libs + ['@python_import_helpers//:google_protobuf_importer']
+ py_libs = py_libs
native.py_library(
name=name,
srcs=outs+py_extra_srcs,
deps=py_libs+deps,
+ imports=py_imports,
**kargs)
def internal_protobuf_py_tests(
diff --git a/third_party/python_import_helpers.BUILD b/third_party/python_import_helpers.BUILD
deleted file mode 100644
index 38a68ec..0000000
--- a/third_party/python_import_helpers.BUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# This repository is used to create helper __init__.py files which import things
-# under third_party at the root of the Python import namespace instead of
-# requiring third_party.xyz. in front of them.
-
-genrule(
- name = 'google_protobuf_importer_init',
- outs = ['google/__init__.py'],
- cmd = 'echo "%s" > $@' % '\n'.join([
- 'import sys',
- 'import third_party.protobuf.google.protobuf',
- 'sys.modules[\'google.protobuf\'] = third_party.protobuf.google.protobuf',
- ]),
-)
-
-py_library(
- name = 'google_protobuf_importer',
- visibility = ['//visibility:public'],
- srcs = [':google_protobuf_importer_init'],
-)
diff --git a/tools/cpp/BUILD b/tools/cpp/BUILD
index 3bee68e..9f6bb19 100644
--- a/tools/cpp/BUILD
+++ b/tools/cpp/BUILD
@@ -81,6 +81,7 @@
filegroup(
name = "clang_3p6_compiler_files",
srcs = [
+ "flags_compiler_inputs",
"//tools/cpp/clang_3p6:clang",
"//tools/cpp/clang_3p6:ld",
"@clang_3p6_repo//:compiler_components",
@@ -197,7 +198,7 @@
name = "cc-compiler-cortex-m4f",
all_files = ":empty",
compiler_files = ":empty",
- cpu = "cortex-m4",
+ cpu = "cortex-m4f",
dwp_files = ":empty",
dynamic_runtime_libs = [":empty"],
linker_files = "//motors/core:linkerscript",
@@ -206,3 +207,12 @@
strip_files = ":empty",
supports_param_files = 0,
)
+
+py_binary(
+ name = "gen_crosstool",
+ srcs = ["gen_crosstool.py"],
+ main = "gen_crosstool.py",
+ deps = [
+ "//third_party/bazel:crosstool_config_proto_py",
+ ],
+)
diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL
index b29c5ad..9306652 100644
--- a/tools/cpp/CROSSTOOL
+++ b/tools/cpp/CROSSTOOL
@@ -1,131 +1,187 @@
+# GENERATED FILE. DO NOT EDIT
+# Generated by tools/cpp/gen_crosstool.py
major_version: "local"
minor_version: ""
default_target_cpu: "same_as_host"
-
default_toolchain {
cpu: "roborio"
toolchain_identifier: "roborio_linux"
}
-
default_toolchain {
cpu: "k8"
toolchain_identifier: "k8_linux"
}
-
default_toolchain {
cpu: "armeabi-v7a"
toolchain_identifier: "stub_armeabi-v7a"
}
-
default_toolchain {
cpu: "armhf-debian"
toolchain_identifier: "clang_linux_armhf"
}
-
default_toolchain {
cpu: "cortex-m4f"
toolchain_identifier: "cortex-m4f"
}
-
toolchain {
+ toolchain_identifier: "stub_armeabi-v7a"
+ host_system_name: "armeabi-v7a"
+ target_system_name: "armeabi-v7a"
+ target_cpu: "armeabi-v7a"
+ target_libc: "armeabi-v7a"
+ compiler: "compiler"
abi_version: "armeabi-v7a"
abi_libc_version: "armeabi-v7a"
- builtin_sysroot: ""
- compiler: "compiler"
- host_system_name: "armeabi-v7a"
- needsPic: true
+ tool_path {
+ name: "ar"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "ld"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "nm"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "strip"
+ path: "/bin/false"
+ }
supports_gold_linker: false
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
+ supports_thin_archives: false
+ needsPic: true
+ builtin_sysroot: ""
supports_normalizing_ar: false
supports_start_end_lib: false
- supports_thin_archives: false
- target_libc: "armeabi-v7a"
- target_cpu: "armeabi-v7a"
- target_system_name: "armeabi-v7a"
- toolchain_identifier: "stub_armeabi-v7a"
-
- tool_path { name: "ar" path: "/bin/false" }
- tool_path { name: "compat-ld" path: "/bin/false" }
- tool_path { name: "cpp" path: "/bin/false" }
- tool_path { name: "dwp" path: "/bin/false" }
- tool_path { name: "gcc" path: "/bin/false" }
- tool_path { name: "gcov" path: "/bin/false" }
- tool_path { name: "ld" path: "/bin/false" }
-
- tool_path { name: "nm" path: "/bin/false" }
- tool_path { name: "objcopy" path: "/bin/false" }
- tool_path { name: "objdump" path: "/bin/false" }
- tool_path { name: "strip" path: "/bin/false" }
+ supports_interface_shared_objects: false
+ supports_incremental_linker: false
+ supports_fission: false
}
-
toolchain {
+ toolchain_identifier: "k8_linux"
+ host_system_name: "local"
+ target_system_name: "k8"
+ target_cpu: "k8"
+ target_libc: "local"
+ compiler: "clang"
abi_version: "local"
abi_libc_version: "local"
- builtin_sysroot: ""
- compiler: "clang"
- host_system_name: "local"
- needsPic: true
+ tool_path {
+ name: "ar"
+ path: "clang_3p6/x86_64-linux-gnu-ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "clang_3p6/x86_64-linux-gnu-ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "clang_3p6/x86_64-linux-gnu-cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "clang_3p6/x86_64-linux-gnu-dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "clang_3p6/x86_64-linux-gnu-clang-3.6"
+ }
+ tool_path {
+ name: "gcov"
+ path: "clang_3p6/x86_64-linux-gnu-gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "clang_3p6/x86_64-linux-gnu-ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "clang_3p6/x86_64-linux-gnu-nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "clang_3p6/x86_64-linux-gnu-objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "clang_3p6/x86_64-linux-gnu-objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "clang_3p6/x86_64-linux-gnu-strip"
+ }
supports_gold_linker: false
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: false
- supports_start_end_lib: false
supports_thin_archives: false
- target_libc: "local"
- target_cpu: "k8"
- target_system_name: "k8"
- toolchain_identifier: "k8_linux"
-
- # These paths are relative to //tools/cpp.
- tool_path { name: "ar" path: "clang_3p6/x86_64-linux-gnu-ar" }
- tool_path { name: "compat-ld" path: "clang_3p6/x86_64-linux-gnu-ld" }
- tool_path { name: "cpp" path: "clang_3p6/x86_64-linux-gnu-cpp" }
- tool_path { name: "dwp" path: "clang_3p6/x86_64-linux-gnu-dwp" }
- tool_path { name: "gcc" path: "clang_3p6/x86_64-linux-gnu-clang-3.6" }
- tool_path { name: "gcov" path: "clang_3p6/x86_64-linux-gnu-gcov" }
- # C(++) compiles invoke the compiler (as that is the one knowing where
- # to find libraries), but we provide LD so other rules can invoke the linker.
- tool_path { name: "ld" path: "clang_3p6/x86_64-linux-gnu-ld" }
- tool_path { name: "nm" path: "clang_3p6/x86_64-linux-gnu-nm" }
- tool_path { name: "objcopy" path: "clang_3p6/x86_64-linux-gnu-objcopy" }
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "clang_3p6/x86_64-linux-gnu-objdump" }
- tool_path { name: "strip" path: "clang_3p6/x86_64-linux-gnu-strip" }
- linking_mode_flags { mode: DYNAMIC }
-
+ needsPic: true
compiler_flag: "--sysroot=external/clang_3p6_repo/"
compiler_flag: "-nostdinc"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_3p6_repo/usr/include",
+ compiler_flag: "external/clang_3p6_repo/usr/include"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_3p6_repo/usr/include/x86_64-linux-gnu",
+ compiler_flag: "external/clang_3p6_repo/usr/include/x86_64-linux-gnu"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_3p6_repo/usr/lib/llvm-3.6/lib/clang/3.6.2/include",
-
+ compiler_flag: "external/clang_3p6_repo/usr/lib/llvm-3.6/lib/clang/3.6.2/include"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ compiler_flag: "-D__STDC_CONSTANT_MACROS"
+ compiler_flag: "-D__STDC_LIMIT_MACROS"
+ compiler_flag: "-D_FILE_OFFSET_BITS=64"
+ compiler_flag: "-DAOS_ARCHITECTURE_arm_frc"
+ compiler_flag: "-U_FORTIFY_SOURCE"
+ compiler_flag: "-D_FORTIFY_SOURCE=1"
+ compiler_flag: "-fstack-protector"
+ compiler_flag: "-fPIE"
+ compiler_flag: "-fcolor-diagnostics"
+ compiler_flag: "-fmessage-length=80"
+ compiler_flag: "-fmacro-backtrace-limit=0"
+ compiler_flag: "-Wall"
+ compiler_flag: "-Wextra"
+ compiler_flag: "-Wpointer-arith"
+ compiler_flag: "-Wstrict-aliasing"
+ compiler_flag: "-Wcast-qual"
+ compiler_flag: "-Wcast-align"
+ compiler_flag: "-Wwrite-strings"
+ compiler_flag: "-Wtype-limits"
+ compiler_flag: "-Wsign-compare"
+ compiler_flag: "-Wformat=2"
+ compiler_flag: "-Werror"
+ compiler_flag: "-fno-omit-frame-pointer"
+ compiler_flag: "-pipe"
+ compiler_flag: "-ggdb3"
cxx_flag: "-isystem"
cxx_flag: "external/clang_3p6_repo/usr/include/c++/4.9"
cxx_flag: "-isystem"
cxx_flag: "external/clang_3p6_repo/usr/include/x86_64-linux-gnu/c++/4.9"
cxx_flag: "-isystem"
cxx_flag: "external/clang_3p6_repo/usr/include/c++/4.9/backward"
-
- # TODO(bazel-team): In theory, the path here ought to exactly match the path
- # used by gcc. That works because bazel currently doesn't track files at
- # absolute locations and has no remote execution, yet. However, this will need
- # to be fixed, maybe with auto-detection?
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/c++/4.9'
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/x86_64-linux-gnu/c++/4.9'
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/c++/4.9/backward'
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/local/include'
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/lib/llvm-3.6/lib/clang/3.6.2/include'
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/x86_64-linux-gnu'
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include'
- cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/lib/clang/3.6.2/include'
-
linker_flag: "-nodefaultlibs"
linker_flag: "--sysroot=external/clang_3p6_repo/"
linker_flag: "-lstdc++"
@@ -137,10 +193,48 @@
linker_flag: "-Lexternal/clang_3p6/lib/x86_64-linux-gnu"
linker_flag: "-Lexternal/clang_3p6/usr/lib/x86_64-linux-gnu"
linker_flag: "-Lexternal/clang_3p6/usr/lib/gcc/x86_64-linux-gnu"
-
+ linker_flag: "-no-canonical-prefixes"
+ linker_flag: "-fuse-ld=gold"
+ linker_flag: "-Wl,-z,relro,-z,now"
+ linker_flag: "-lm"
+ linker_flag: "-Wl,--build-id=md5"
+ linker_flag: "-Wl,--hash-style=gnu"
+ linker_flag: "-Wl,--warn-execstack"
+ linker_flag: "-Wl,--detect-odr-violations"
+ objcopy_embed_flag: "-I"
+ objcopy_embed_flag: "binary"
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-O2"
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-ffunction-sections"
+ compiler_flag: "-fdata-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/include/c++/4.9"
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/include/x86_64-linux-gnu/c++/4.9"
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/include/c++/4.9/backward"
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/local/include"
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/lib/llvm-3.6/lib/clang/3.6.2/include"
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/include/x86_64-linux-gnu"
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/include"
+ cxx_builtin_include_directory: "%package(@clang_3p6_repo//usr)%/lib/clang/3.6.2/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ supports_normalizing_ar: false
+ supports_start_end_lib: false
+ supports_interface_shared_objects: false
+ supports_incremental_linker: false
+ supports_fission: false
feature {
name: "opt"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -152,11 +246,10 @@
flag: "-DAOS_DEBUG=0"
}
}
+ implies: "all_modes"
}
-
feature {
name: "dbg"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -171,11 +264,10 @@
flag: "-fno-omit-frame-pointer"
}
}
+ implies: "all_modes"
}
-
feature {
name: "fastbuild"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -187,8 +279,8 @@
flag: "-DAOS_DEBUG=0"
}
}
+ implies: "all_modes"
}
-
feature {
name: "all_modes"
flag_set {
@@ -218,53 +310,95 @@
action: "c++-module-compile"
action: "c-compile"
flag_group {
- # We always want to compile with -pthread semantics.
flag: "-pthread"
}
}
}
-
- # Anticipated future default.
- # This makes GCC and Clang do what we want when called through symlinks.
- unfiltered_cxx_flag: "-no-canonical-prefixes"
- linker_flag: "-no-canonical-prefixes"
-
- # Things that the code wants defined.
+ feature {
+ name: "pie_for_linking"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ }
+ enabled: true
+ }
+}
+toolchain {
+ toolchain_identifier: "roborio_linux"
+ host_system_name: "roborio"
+ target_system_name: "roborio"
+ target_cpu: "roborio"
+ target_libc: "roborio"
+ compiler: "gcc"
+ abi_version: "roborio"
+ abi_libc_version: "roborio"
+ tool_path {
+ name: "ar"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/bin/false"
+ }
+ tool_path {
+ name: "gcc"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov-4.9"
+ }
+ tool_path {
+ name: "ld"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip"
+ }
+ supports_gold_linker: false
+ supports_thin_archives: false
+ needsPic: true
+ compiler_flag: "--sysroot=external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi"
+ compiler_flag: "-nostdinc"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include-fixed"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/usr/include"
+ compiler_flag: "-mfpu=neon"
compiler_flag: "-D__STDC_FORMAT_MACROS"
compiler_flag: "-D__STDC_CONSTANT_MACROS"
compiler_flag: "-D__STDC_LIMIT_MACROS"
compiler_flag: "-D_FILE_OFFSET_BITS=64"
- # TODO(Brian): Rename this or something.
compiler_flag: "-DAOS_ARCHITECTURE_arm_frc"
-
- linker_flag: "-fuse-ld=gold"
-
- # Make C++ compilation deterministic. Use linkstamping instead of these
- # compiler symbols.
- unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
- unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
-
- # Security hardening on by default.
- # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
- # We need to undef it before redefining it as some distributions now have
- # it enabled by default.
compiler_flag: "-U_FORTIFY_SOURCE"
- compiler_flag: "-D_FORTIFY_SOURCE=1"
compiler_flag: "-fstack-protector"
compiler_flag: "-fPIE"
- linker_flag: "-Wl,-z,relro,-z,now"
-
- # Pretty much everything needs this, including parts of the glibc STL...
- linker_flag: "-lm"
-
- # Enable coloring even if there's no attached terminal. Bazel removes the
- # escape sequences if --nocolor is specified.
- compiler_flag: "-fcolor-diagnostics"
- compiler_flag: "-fmessage-length=80"
- compiler_flag: "-fmacro-backtrace-limit=0"
-
+ compiler_flag: "-fdiagnostics-color=always"
compiler_flag: "-Wall"
compiler_flag: "-Wextra"
compiler_flag: "-Wpointer-arith"
@@ -276,92 +410,11 @@
compiler_flag: "-Wsign-compare"
compiler_flag: "-Wformat=2"
compiler_flag: "-Werror"
-
- # Keep stack frames for debugging, even in opt mode.
+ compiler_flag: "-Wunused-local-typedefs"
compiler_flag: "-fno-omit-frame-pointer"
-
- # Don't use temp files while compiling.
+ compiler_flag: "-D__has_feature(x)=0"
compiler_flag: "-pipe"
-
- # Stamp the binary with a unique identifier.
- linker_flag: "-Wl,--build-id=md5"
- linker_flag: "-Wl,--hash-style=gnu"
- linker_flag: "-Wl,--warn-execstack"
- linker_flag: "-Wl,--detect-odr-violations"
-
- # Enable debug symbols.
compiler_flag: "-ggdb3"
-
- compilation_mode_flags {
- mode: OPT
-
- compiler_flag: "-O2"
-
- # Disable assertions
- compiler_flag: "-DNDEBUG"
-
- # Removal of unused code and data at link time (can this increase binary size in some cases?).
- compiler_flag: "-ffunction-sections"
- compiler_flag: "-fdata-sections"
- linker_flag: "-Wl,--gc-sections"
- }
- feature {
- name: "pie_for_linking"
- enabled: true
- flag_set {
- action: "c++-link-executable"
- flag_group {
- flag: "-pie"
- }
- }
- }
-}
-
-toolchain {
- abi_version: "roborio"
- abi_libc_version: "roborio"
- builtin_sysroot: ""
- compiler: "gcc"
- host_system_name: "roborio"
- needsPic: true
- supports_gold_linker: false
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: false
- supports_start_end_lib: false
- supports_thin_archives: false
- target_libc: "roborio"
- target_cpu: "roborio"
- target_system_name: "roborio"
- toolchain_identifier: "roborio_linux"
-
- tool_path { name: "ar" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ar" }
- tool_path { name: "compat-ld" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld" }
- tool_path { name: "cpp" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-cpp" }
- tool_path { name: "dwp" path: "/bin/false" }
- tool_path { name: "gcc" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcc" }
- tool_path { name: "gcov" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov-4.9" }
- # C(++) compiles invoke the compiler (as that is the one knowing where
- # to find libraries), but we provide LD so other rules can invoke the linker.
- tool_path { name: "ld" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld" }
- tool_path { name: "nm" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-nm" }
- tool_path { name: "objcopy" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objcopy" }
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump" }
- tool_path { name: "strip" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip" }
- linking_mode_flags { mode: DYNAMIC }
-
- compiler_flag: "--sysroot=external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi"
- compiler_flag: "-nostdinc"
- compiler_flag: "-isystem"
- compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include",
- compiler_flag: "-isystem"
- compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include-fixed"
- compiler_flag: "-isystem"
- compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/usr/include"
-
cxx_flag: "-isystem"
cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/include/c++/5.4.0"
cxx_flag: "-isystem"
@@ -376,11 +429,28 @@
cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/include"
cxx_flag: "-isystem"
cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/usr/include"
-
- # TODO(bazel-team): In theory, the path here ought to exactly match the path
- # used by gcc. That works because bazel currently doesn't track files at
- # absolute locations and has no remote execution, yet. However, this will need
- # to be fixed, maybe with auto-detection?
+ linker_flag: "-lstdc++"
+ linker_flag: "-Ltools/cpp/arm-frc-linux-gnueabi/libs"
+ linker_flag: "-no-canonical-prefixes"
+ linker_flag: "-Wl,-z,relro,-z,now"
+ linker_flag: "-lm"
+ linker_flag: "-pass-exit-codes"
+ linker_flag: "-Wl,--build-id=md5"
+ linker_flag: "-Wl,--hash-style=gnu"
+ objcopy_embed_flag: "-I"
+ objcopy_embed_flag: "binary"
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-O2"
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-D_FORTIFY_SOURCE=1"
+ compiler_flag: "-ffunction-sections"
+ compiler_flag: "-fdata-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%/c++/5.4.0"
cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%/c++/5.4.0/arm-frc-linux-gnueabi"
cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%/c++/5.4.0/backward"
@@ -388,13 +458,19 @@
cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include-fixed)%"
cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%"
cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/usr/include)%"
-
- linker_flag: "-lstdc++"
- linker_flag: "-Ltools/cpp/arm-frc-linux-gnueabi/libs"
-
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ supports_normalizing_ar: false
+ supports_start_end_lib: false
+ supports_interface_shared_objects: false
+ supports_incremental_linker: false
+ supports_fission: false
feature {
name: "opt"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -406,11 +482,10 @@
flag: "-DAOS_DEBUG=0"
}
}
+ implies: "all_modes"
}
-
feature {
name: "dbg"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -425,11 +500,10 @@
flag: "-fno-omit-frame-pointer"
}
}
+ implies: "all_modes"
}
-
feature {
name: "fastbuild"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -441,8 +515,8 @@
flag: "-DAOS_DEBUG=0"
}
}
+ implies: "all_modes"
}
-
feature {
name: "all_modes"
flag_set {
@@ -472,54 +546,100 @@
action: "c++-module-compile"
action: "c-compile"
flag_group {
- # We always want to compile with -pthread semantics.
flag: "-pthread"
}
}
}
-
- compiler_flag: "-mfpu=neon"
- # TODO(brians): See if it will run with this enabled.
- #compiler_flag: "-mhwdiv=arm,thumb"
-
- # Anticipated future default.
- # This makes GCC and Clang do what we want when called through symlinks.
- unfiltered_cxx_flag: "-no-canonical-prefixes"
- linker_flag: "-no-canonical-prefixes"
-
- # Things that the code wants defined.
+ feature {
+ name: "pie_for_linking"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ }
+ enabled: true
+ }
+}
+toolchain {
+ toolchain_identifier: "clang_linux_armhf"
+ host_system_name: "linux"
+ target_system_name: "arm_a15"
+ target_cpu: "armhf-debian"
+ target_libc: "glibc_2.19"
+ compiler: "clang"
+ abi_version: "clang_3.6"
+ abi_libc_version: "glibc_2.19"
+ tool_path {
+ name: "ar"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "linaro_linux_gcc/clang_bin/clang"
+ }
+ tool_path {
+ name: "dwp"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "linaro_linux_gcc/clang_bin/clang"
+ }
+ tool_path {
+ name: "gcov"
+ path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov-4.9"
+ }
+ tool_path {
+ name: "ld"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-strip"
+ }
+ supports_gold_linker: false
+ supports_thin_archives: true
+ needsPic: true
+ compiler_flag: "-target"
+ compiler_flag: "armv7a-arm-linux-gnueabif"
+ compiler_flag: "--sysroot=external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc"
+ compiler_flag: "-mfloat-abi=hard"
+ compiler_flag: "-mfpu=vfpv3-d16"
+ compiler_flag: "-nostdinc"
+ compiler_flag: "-isystem"
+ compiler_flag: "/usr/lib/clang/3.6/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/linaro_linux_gcc_4_9_repo/lib/gcc/arm-linux-gnueabihf/4.9.3/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc/usr/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/linaro_linux_gcc_4_9_repo/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed"
compiler_flag: "-D__STDC_FORMAT_MACROS"
compiler_flag: "-D__STDC_CONSTANT_MACROS"
compiler_flag: "-D__STDC_LIMIT_MACROS"
compiler_flag: "-D_FILE_OFFSET_BITS=64"
- # TODO(Brian): Rename this or something.
- compiler_flag: "-DAOS_ARCHITECTURE_arm_frc"
-
- #linker_flag: "-fuse-ld=gold"
-
- # Make C++ compilation deterministic. Use linkstamping instead of these
- # compiler symbols.
- unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
- unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
-
- # Security hardening on by default.
- # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
- # We need to undef it before redefining it as some distributions now have
- # it enabled by default.
+ compiler_flag: "-DAOS_ARCHITECTURE_armhf"
compiler_flag: "-U_FORTIFY_SOURCE"
compiler_flag: "-fstack-protector"
compiler_flag: "-fPIE"
- linker_flag: "-Wl,-z,relro,-z,now"
-
- # Pretty much everything needs this, including parts of the glibc STL...
- linker_flag: "-lm"
-
- # Enable coloring even if there's no attached terminal. Bazel removes the
- # escape sequences if --nocolor is specified.
compiler_flag: "-fdiagnostics-color=always"
-
compiler_flag: "-Wall"
compiler_flag: "-Wextra"
compiler_flag: "-Wpointer-arith"
@@ -532,103 +652,9 @@
compiler_flag: "-Wformat=2"
compiler_flag: "-Werror"
compiler_flag: "-Wunused-local-typedefs"
-
- # Keep stack frames for debugging, even in opt mode.
compiler_flag: "-fno-omit-frame-pointer"
- compiler_flag: "-D__has_feature(x)=0"
-
- # Don't use temp files while compiling.
compiler_flag: "-pipe"
-
- # Have GCC return the exit code from ld.
- linker_flag: "-pass-exit-codes"
-
- # Stamp the binary with a unique identifier.
- linker_flag: "-Wl,--build-id=md5"
- linker_flag: "-Wl,--hash-style=gnu"
- #linker_flag: "-Wl,--warn-execstack"
- #linker_flag: "-Wl,--detect-odr-violations"
-
- # Enable debug symbols.
compiler_flag: "-ggdb3"
-
- compilation_mode_flags {
- mode: OPT
-
- compiler_flag: "-O2"
-
- # Disable assertions
- compiler_flag: "-DNDEBUG"
- compiler_flag: "-D_FORTIFY_SOURCE=1"
-
- # Removal of unused code and data at link time (can this increase binary size in some cases?).
- compiler_flag: "-ffunction-sections"
- compiler_flag: "-fdata-sections"
- linker_flag: "-Wl,--gc-sections"
- }
- feature {
- name: "pie_for_linking"
- enabled: true
- flag_set {
- action: "c++-link-executable"
- flag_group {
- flag: "-pie"
- }
- }
- }
-}
-
-toolchain {
- abi_version: "clang_3.6"
- abi_libc_version: "glibc_2.19"
- builtin_sysroot: ""
- compiler: "clang"
- host_system_name: "linux"
- needsPic: true
- supports_gold_linker: false
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: true
- supports_start_end_lib: false
- supports_thin_archives: true
- target_libc: "glibc_2.19"
- target_cpu: "armhf-debian"
- target_system_name: "arm_a15"
- toolchain_identifier: "clang_linux_armhf"
-
- tool_path { name: "ar" path: "linaro_linux_gcc/arm-linux-gnueabihf-ar" }
- tool_path { name: "compat-ld" path: "linaro_linux_gcc/arm-linux-gnueabihf-ld" }
- tool_path { name: "cpp" path: "linaro_linux_gcc/clang_bin/clang" }
- tool_path { name: "dwp" path: "linaro_linux_gcc/arm-linux-gnueabihf-dwp" }
- tool_path { name: "gcc" path: "linaro_linux_gcc/clang_bin/clang" }
- tool_path { name: "gcov" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov-4.9" }
- # C(++) compiles invoke the compiler (as that is the one knowing where
- # to find libraries), but we provide LD so other rules can invoke the linker.
- tool_path { name: "ld" path: "linaro_linux_gcc/arm-linux-gnueabihf-ld" }
- tool_path { name: "nm" path: "linaro_linux_gcc/arm-linux-gnueabihf-nm" }
- tool_path { name: "objcopy" path: "linaro_linux_gcc/arm-linux-gnueabihf-objcopy" }
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "linaro_linux_gcc/arm-linux-gnueabihf-objdump" }
- tool_path { name: "strip" path: "linaro_linux_gcc/arm-linux-gnueabihf-strip" }
- linking_mode_flags { mode: DYNAMIC }
-
- compiler_flag: "-target"
- compiler_flag: "armv7a-arm-linux-gnueabif"
- compiler_flag: "--sysroot=external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc"
- compiler_flag: "-mfloat-abi=hard"
- compiler_flag: "-mfpu=vfpv3-d16"
-
- compiler_flag: "-nostdinc"
- compiler_flag: "-isystem"
- compiler_flag: "/usr/lib/clang/3.6/include"
- compiler_flag: "-isystem"
- compiler_flag: "external/linaro_linux_gcc_4_9_repo/lib/gcc/arm-linux-gnueabihf/4.9.3/include"
- compiler_flag: "-isystem"
- compiler_flag: "external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc/usr/include"
- compiler_flag: "-isystem"
- compiler_flag: "external/linaro_linux_gcc_4_9_repo/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed"
cxx_flag: "-isystem"
cxx_flag: "external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/include/c++/4.9.3/arm-linux-gnueabihf"
cxx_flag: "-isystem"
@@ -637,19 +663,6 @@
cxx_flag: "external/linaro_linux_gcc_4_9_repo/include/c++/4.9.3/arm-linux-gnueabihf"
cxx_flag: "-isystem"
cxx_flag: "external/linaro_linux_gcc_4_9_repo/include/c++/4.9.3"
-
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//include)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/usr/include)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/usr/lib/include)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//include)%/c++/4.9.3"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//lib/gcc/arm-linux-gnueabihf/4.9.3/include)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
- cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/include)%/c++/4.9.3"
- cxx_builtin_include_directory: '/usr/lib/clang/3.6/include'
-
linker_flag: "-target"
linker_flag: "armv7a-arm-linux-gnueabif"
linker_flag: "--sysroot=external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc"
@@ -660,10 +673,49 @@
linker_flag: "-Lexternal/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc/usr/lib"
linker_flag: "-Bexternal/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/bin"
linker_flag: "-Wl,--dynamic-linker=/lib/ld-linux-armhf.so.3"
-
+ linker_flag: "-no-canonical-prefixes"
+ linker_flag: "-Wl,-z,relro,-z,now"
+ linker_flag: "-lm"
+ linker_flag: "-Wl,--build-id=md5"
+ linker_flag: "-Wl,--hash-style=gnu"
+ objcopy_embed_flag: "-I"
+ objcopy_embed_flag: "binary"
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-O2"
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-D_FORTIFY_SOURCE=1"
+ compiler_flag: "-ffunction-sections"
+ compiler_flag: "-fdata-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/usr/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/usr/lib/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//include)%/c++/4.9.3"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//lib/gcc/arm-linux-gnueabihf/4.9.3/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/include)%/c++/4.9.3"
+ cxx_builtin_include_directory: "/usr/lib/clang/3.6/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ supports_normalizing_ar: true
+ supports_start_end_lib: false
+ supports_interface_shared_objects: false
+ supports_incremental_linker: false
+ supports_fission: false
feature {
name: "opt"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -675,11 +727,10 @@
flag: "-DAOS_DEBUG=0"
}
}
+ implies: "all_modes"
}
-
feature {
name: "dbg"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -694,11 +745,10 @@
flag: "-fno-omit-frame-pointer"
}
}
+ implies: "all_modes"
}
-
feature {
name: "fastbuild"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -710,8 +760,8 @@
flag: "-DAOS_DEBUG=0"
}
}
+ implies: "all_modes"
}
-
feature {
name: "all_modes"
flag_set {
@@ -741,150 +791,152 @@
action: "c++-module-compile"
action: "c-compile"
flag_group {
- # We always want to compile with -pthread semantics.
flag: "-pthread"
}
}
}
-
- # Anticipated future default.
- # This makes GCC and Clang do what we want when called through symlinks.
- unfiltered_cxx_flag: "-no-canonical-prefixes"
- linker_flag: "-no-canonical-prefixes"
-
- # Things that the code wants defined.
- compiler_flag: "-D__STDC_FORMAT_MACROS"
- compiler_flag: "-D__STDC_CONSTANT_MACROS"
- compiler_flag: "-D__STDC_LIMIT_MACROS"
- compiler_flag: "-D_FILE_OFFSET_BITS=64"
- # TODO(Brian): Rename this or something.
- compiler_flag: "-DAOS_ARCHITECTURE_armhf"
-
- # Make C++ compilation deterministic. Use linkstamping instead of these
- # compiler symbols.
- unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
- unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
-
- # Security hardening on by default.
- # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
- # We need to undef it before redefining it as some distributions now have
- # it enabled by default.
- compiler_flag: "-U_FORTIFY_SOURCE"
- compiler_flag: "-fstack-protector"
- compiler_flag: "-fPIE"
- linker_flag: "-Wl,-z,relro,-z,now"
-
- # Pretty much everything needs this, including parts of the glibc STL...
- linker_flag: "-lm"
-
- # Enable coloring even if there's no attached terminal. Bazel removes the
- # escape sequences if --nocolor is specified.
- compiler_flag: "-fdiagnostics-color=always"
-
- compiler_flag: "-Wall"
- compiler_flag: "-Wextra"
- compiler_flag: "-Wpointer-arith"
- compiler_flag: "-Wstrict-aliasing"
- compiler_flag: "-Wcast-qual"
- compiler_flag: "-Wcast-align"
- compiler_flag: "-Wwrite-strings"
- compiler_flag: "-Wtype-limits"
- compiler_flag: "-Wsign-compare"
- compiler_flag: "-Wformat=2"
- compiler_flag: "-Werror"
- compiler_flag: "-Wunused-local-typedefs"
-
- # Keep stack frames for debugging, even in opt mode.
- compiler_flag: "-fno-omit-frame-pointer"
-
- # Don't use temp files while compiling.
- compiler_flag: "-pipe"
-
- # Stamp the binary with a unique identifier.
- linker_flag: "-Wl,--build-id=md5"
- linker_flag: "-Wl,--hash-style=gnu"
- #linker_flag: "-Wl,--warn-execstack"
- #linker_flag: "-Wl,--detect-odr-violations"
-
- # Enable debug symbols.
- compiler_flag: "-ggdb3"
-
- compilation_mode_flags {
- mode: OPT
-
- compiler_flag: "-O2"
-
- # Disable assertions
- compiler_flag: "-DNDEBUG"
- compiler_flag: "-D_FORTIFY_SOURCE=1"
-
- # Removal of unused code and data at link time (can this increase binary size in some cases?).
- compiler_flag: "-ffunction-sections"
- compiler_flag: "-fdata-sections"
- linker_flag: "-Wl,--gc-sections"
- }
feature {
name: "pie_for_linking"
- enabled: true
flag_set {
action: "c++-link-executable"
flag_group {
flag: "-pie"
}
}
+ enabled: true
}
}
-
toolchain {
+ toolchain_identifier: "cortex-m4f"
+ host_system_name: "local"
+ target_system_name: "cortex-m4f"
+ target_cpu: "cortex-m4f"
+ target_libc: "cortex-m4f"
+ compiler: "gcc"
abi_version: "cortex-m4f"
abi_libc_version: "cortex-m4f"
- builtin_sysroot: ""
- compiler: "gcc"
- host_system_name: "local"
- needsPic: false
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/arm-none-eabi-ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/arm-none-eabi-ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/arm-none-eabi-cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/arm-none-eabi-dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/arm-none-eabi-gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/arm-none-eabi-gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/arm-none-eabi-ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/arm-none-eabi-nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/arm-none-eabi-objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/arm-none-eabi-objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/arm-none-eabi-strip"
+ }
supports_gold_linker: false
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: false
- supports_start_end_lib: false
supports_thin_archives: false
- target_libc: "cortex-m4f"
- target_cpu: "cortex-m4f"
- target_system_name: "cortex-m4f"
- toolchain_identifier: "cortex-m4f"
-
- tool_path { name: "ar" path: "/usr/bin/arm-none-eabi-ar" }
- tool_path { name: "compat-ld" path: "/usr/bin/arm-none-eabi-ld" }
- tool_path { name: "cpp" path: "/usr/bin/arm-none-eabi-cpp" }
- tool_path { name: "dwp" path: "/usr/bin/arm-none-eabi-dwp" }
- tool_path { name: "gcc" path: "/usr/bin/arm-none-eabi-gcc" }
- tool_path { name: "gcov" path: "/usr/bin/arm-none-eabi-gcov" }
- # C(++) compiles invoke the compiler (as that is the one knowing where
- # to find libraries), but we provide LD so other rules can invoke the linker.
- tool_path { name: "ld" path: "/usr/bin/arm-none-eabi-ld" }
- tool_path { name: "nm" path: "/usr/bin/arm-none-eabi-nm" }
- tool_path { name: "objcopy" path: "/usr/bin/arm-none-eabi-objcopy" }
+ needsPic: false
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ compiler_flag: "-D__STDC_CONSTANT_MACROS"
+ compiler_flag: "-D__STDC_LIMIT_MACROS"
+ compiler_flag: "-D__MK64FX512__"
+ compiler_flag: "-DF_CPU=120000000"
+ compiler_flag: "-Wl,--gc-sections"
+ compiler_flag: "-D__have_long32"
+ compiler_flag: "-fstack-protector"
+ compiler_flag: "-mcpu=cortex-m4"
+ compiler_flag: "-mfpu=fpv4-sp-d16"
+ compiler_flag: "-mthumb"
+ compiler_flag: "-mfloat-abi=hard"
+ compiler_flag: "-fno-strict-aliasing"
+ compiler_flag: "-fmessage-length=80"
+ compiler_flag: "-fmax-errors=20"
+ compiler_flag: "-Wall"
+ compiler_flag: "-Wextra"
+ compiler_flag: "-Wpointer-arith"
+ compiler_flag: "-Wcast-qual"
+ compiler_flag: "-Wwrite-strings"
+ compiler_flag: "-Wtype-limits"
+ compiler_flag: "-Wsign-compare"
+ compiler_flag: "-Wformat=2"
+ compiler_flag: "-Werror"
+ compiler_flag: "-Wstrict-aliasing=2"
+ compiler_flag: "-Wdouble-promotion"
+ compiler_flag: "-pipe"
+ compiler_flag: "-g"
+ compiler_flag: "-fno-common"
+ compiler_flag: "-ffreestanding"
+ compiler_flag: "-fbuiltin"
+ linker_flag: "-no-canonical-prefixes"
+ linker_flag: "-mcpu=cortex-m4"
+ linker_flag: "-mfpu=fpv4-sp-d16"
+ linker_flag: "-mthumb"
+ linker_flag: "-mfloat-abi=hard"
+ linker_flag: "-fno-strict-aliasing"
+ linker_flag: "--specs=nano.specs"
+ linker_flag: "-lgcc"
+ linker_flag: "-lstdc++"
+ linker_flag: "-lm"
+ linker_flag: "-lc"
+ linker_flag: "-Tmotors/core/mk64fx512.ld"
objcopy_embed_flag: "-I"
objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "/usr/bin/arm-none-eabi-objdump" }
- tool_path { name: "strip" path: "/usr/bin/arm-none-eabi-strip" }
- linking_mode_flags { mode: FULLY_STATIC }
-
- # TODO(bazel-team): In theory, the path here ought to exactly match the path
- # used by gcc. That works because bazel currently doesn't track files at
- # absolute locations and has no remote execution, yet. However, this will need
- # to be fixed, maybe with auto-detection?
- cxx_builtin_include_directory: '/usr/lib/gcc/arm-none-eabi/4.8/include'
- cxx_builtin_include_directory: '/usr/lib/gcc/arm-none-eabi/4.8/include-fixed'
- cxx_builtin_include_directory: '/usr/lib/arm-none-eabi/include'
- cxx_builtin_include_directory: '/usr/include/newlib',
-
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-O2"
+ compiler_flag: "-finline-functions"
+ compiler_flag: "-ffast-math"
+ compiler_flag: "-funroll-loops"
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-ffunction-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+ linking_mode_flags {
+ mode: FULLY_STATIC
+ }
+ cxx_builtin_include_directory: "/usr/lib/gcc/arm-none-eabi/4.8/include"
+ cxx_builtin_include_directory: "/usr/lib/gcc/arm-none-eabi/4.8/include-fixed"
+ cxx_builtin_include_directory: "/usr/lib/arm-none-eabi/include"
+ cxx_builtin_include_directory: "/usr/include/newlib"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ supports_normalizing_ar: false
+ supports_start_end_lib: false
+ supports_interface_shared_objects: false
+ supports_incremental_linker: false
+ supports_fission: false
feature {
name: "dbg"
- implies: "all_modes"
flag_set {
action: "preprocess-assemble"
action: "c-compile"
@@ -896,8 +948,8 @@
flag: "-fno-omit-frame-pointer"
}
}
+ implies: "all_modes"
}
-
feature {
name: "opt"
implies: "all_modes"
@@ -906,7 +958,6 @@
name: "fastbuild"
implies: "all_modes"
}
-
feature {
name: "all_modes"
flag_set {
@@ -929,145 +980,28 @@
}
}
}
-
- # Anticipated future default.
- # This makes GCC and Clang do what we want when called through symlinks.
- unfiltered_cxx_flag: "-no-canonical-prefixes"
- linker_flag: "-no-canonical-prefixes"
-
- # Things that the code wants defined.
- compiler_flag: "-D__STDC_FORMAT_MACROS"
- compiler_flag: "-D__STDC_CONSTANT_MACROS"
- compiler_flag: "-D__STDC_LIMIT_MACROS"
-
- # Some identifiers for what MCU we're using.
- compiler_flag: "-D__MK64FX512__"
- compiler_flag: "-DF_CPU=120000000"
-
- compiler_flag: "-Wl,--gc-sections"
-
- # Newlib's stdint.h does this, but GCC's freestanding stdint.h doesn't use
- # newlib's so we have to do it manually...
- compiler_flag: "-D__have_long32"
-
- # Make C++ compilation deterministic. Use linkstamping instead of these
- # compiler symbols.
- unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
- unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
- unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
-
- # Security hardening on by default.
- # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
- # We need to undef it before redefining it as some distributions now have
- # it enabled by default.
- compiler_flag: "-fstack-protector"
- compiler_flag: "-mcpu=cortex-m4"
- compiler_flag: "-mfpu=fpv4-sp-d16"
- compiler_flag: "-mthumb"
- compiler_flag: "-mfloat-abi=hard"
- compiler_flag: "-fno-strict-aliasing"
- linker_flag: "-mcpu=cortex-m4"
- linker_flag: "-mfpu=fpv4-sp-d16"
- linker_flag: "-mthumb"
- linker_flag: "-mfloat-abi=hard"
- linker_flag: "-fno-strict-aliasing"
- linker_flag: "--specs=nano.specs"
-
- # Pretty much everything needs this, including parts of the glibc STL...
- linker_flag: "-lgcc"
- linker_flag: "-lstdc++"
- linker_flag: "-lm"
- linker_flag: "-lc"
- linker_flag: "-Tmotors/core/mk64fx512.ld"
-
- compiler_flag: "-fmessage-length=80"
- compiler_flag: "-fmax-errors=20"
-
- compiler_flag: "-Wall"
- compiler_flag: "-Wextra"
- compiler_flag: "-Wpointer-arith"
- compiler_flag: "-Wcast-qual"
- compiler_flag: "-Wwrite-strings"
- compiler_flag: "-Wtype-limits"
- compiler_flag: "-Wsign-compare"
- compiler_flag: "-Wformat=2"
- compiler_flag: "-Werror"
- compiler_flag: "-Wstrict-aliasing=2"
-
- # Be annoying about using doubles places we probably didn't mean to, because
- # the FPU only does single-precision.
- compiler_flag: "-Wdouble-promotion"
-
- # Don't use temp files while compiling.
- compiler_flag: "-pipe"
-
- # Stamp the binary with a unique identifier.
- # TODO(austin): Put these back in.
- #linker_flag: "-Wl,--build-id=md5"
- #linker_flag: "-Wl,--hash-style=gnu"
-
- # Enable debug symbols.
- compiler_flag: "-g"
-
- # Common symbols are weird and not what we want, so just give multiple
- # declaration errors instead.
- compiler_flag: "-fno-common"
-
- # We're not a hosted environment (no file IO, main is called from our code,
- # etc).
- compiler_flag: "-ffreestanding"
- # However, we still want to optimize things like memcpy.
- compiler_flag: "-fbuiltin"
-
- compilation_mode_flags {
- mode: OPT
-
- # Freescale recommends this combination for reducing cycle count.
- # http://www.nxp.com/assets/documents/data/en/application-notes/AN4808.pdf
- compiler_flag: "-O2"
- compiler_flag: "-finline-functions"
-
- # This is definitely worth it for us. It makes the FPU a lot more useful,
- # especially with complex arithmetic, which matters a lot.
- compiler_flag: "-ffast-math"
-
- # It seems like this is a good idea, at least for the number crunching code.
- # Might want to look into moving it to copts on specific rules if the code
- # size increase becomes a problem.
- compiler_flag: "-funroll-loops"
-
- # Disable assertions
- compiler_flag: "-DNDEBUG"
-
- # Removal of unused code and data at link time (can this increase binary size in some cases?).
- compiler_flag: "-ffunction-sections"
- #compiler_flag: "-fdata-sections"
- linker_flag: "-Wl,--gc-sections"
- }
-
feature {
- name: 'include_paths'
+ name: "include_paths"
flag_set {
- action: 'preprocess-assemble'
- action: 'c-compile'
- action: 'c++-compile'
- action: 'c++-header-parsing'
- action: 'c++-header-preprocessing'
- action: 'c++-module-compile'
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
flag_group {
- iterate_over: 'quote_include_paths'
- flag: '-iquote'
- flag: '%{quote_include_paths}'
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
}
flag_group {
- iterate_over: 'include_paths'
- flag: '-I%{include_paths}'
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
}
flag_group {
- iterate_over: 'system_include_paths'
- flag: '-I'
- flag: '%{system_include_paths}'
+ flag: "-I"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
}
}
}
diff --git a/tools/cpp/cortex_m4f_crosstool.pb b/tools/cpp/cortex_m4f_crosstool.pb
new file mode 100644
index 0000000..ec02440
--- /dev/null
+++ b/tools/cpp/cortex_m4f_crosstool.pb
@@ -0,0 +1,235 @@
+toolchain {
+ abi_version: "%NAME%"
+ abi_libc_version: "%NAME%"
+ builtin_sysroot: ""
+ compiler: "gcc"
+ host_system_name: "local"
+ needsPic: false
+ supports_gold_linker: false
+ supports_incremental_linker: false
+ supports_fission: false
+ supports_interface_shared_objects: false
+ supports_normalizing_ar: false
+ supports_start_end_lib: false
+ supports_thin_archives: false
+ target_libc: "%NAME%"
+ target_cpu: "%NAME%"
+ target_system_name: "%NAME%"
+ toolchain_identifier: "%NAME%"
+
+ tool_path { name: "ar" path: "/usr/bin/arm-none-eabi-ar" }
+ tool_path { name: "compat-ld" path: "/usr/bin/arm-none-eabi-ld" }
+ tool_path { name: "cpp" path: "/usr/bin/arm-none-eabi-cpp" }
+ tool_path { name: "dwp" path: "/usr/bin/arm-none-eabi-dwp" }
+ tool_path { name: "gcc" path: "/usr/bin/arm-none-eabi-gcc" }
+ tool_path { name: "gcov" path: "/usr/bin/arm-none-eabi-gcov" }
+ # C(++) compiles invoke the compiler (as that is the one knowing where
+ # to find libraries), but we provide LD so other rules can invoke the linker.
+ tool_path { name: "ld" path: "/usr/bin/arm-none-eabi-ld" }
+ tool_path { name: "nm" path: "/usr/bin/arm-none-eabi-nm" }
+ tool_path { name: "objcopy" path: "/usr/bin/arm-none-eabi-objcopy" }
+ objcopy_embed_flag: "-I"
+ objcopy_embed_flag: "binary"
+ tool_path { name: "objdump" path: "/usr/bin/arm-none-eabi-objdump" }
+ tool_path { name: "strip" path: "/usr/bin/arm-none-eabi-strip" }
+ linking_mode_flags { mode: FULLY_STATIC }
+
+ # TODO(bazel-team): In theory, the path here ought to exactly match the path
+ # used by gcc. That works because bazel currently doesn't track files at
+ # absolute locations and has no remote execution, yet. However, this will need
+ # to be fixed, maybe with auto-detection?
+ cxx_builtin_include_directory: '/usr/lib/gcc/arm-none-eabi/4.8/include'
+ cxx_builtin_include_directory: '/usr/lib/gcc/arm-none-eabi/4.8/include-fixed'
+ cxx_builtin_include_directory: '/usr/lib/arm-none-eabi/include'
+ cxx_builtin_include_directory: '/usr/include/newlib',
+
+ feature {
+ name: "dbg"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ }
+
+ feature {
+ name: "opt"
+ implies: "all_modes"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "all_modes"
+ }
+
+ feature {
+ name: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "assemble"
+ action: "c-compile"
+ flag_group {
+ flag: "--std=gnu99"
+ }
+ }
+ flag_set {
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "--std=gnu++11"
+ flag: "-fno-exceptions"
+ flag: "-fno-rtti"
+ }
+ }
+ }
+
+ # Anticipated future default.
+ # This makes GCC and Clang do what we want when called through symlinks.
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ linker_flag: "-no-canonical-prefixes"
+
+ # Things that the code wants defined.
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ compiler_flag: "-D__STDC_CONSTANT_MACROS"
+ compiler_flag: "-D__STDC_LIMIT_MACROS"
+
+ # Some identifiers for what MCU we're using.
+ compiler_flag: "-D%CPU%"
+ compiler_flag: "-DF_CPU=%F_CPU%"
+
+ compiler_flag: "-Wl,--gc-sections"
+
+ # Newlib's stdint.h does this, but GCC's freestanding stdint.h doesn't use
+ # newlib's so we have to do it manually...
+ compiler_flag: "-D__have_long32"
+
+ # Make C++ compilation deterministic. Use linkstamping instead of these
+ # compiler symbols.
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+
+ # Security hardening on by default.
+ # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+ # We need to undef it before redefining it as some distributions now have
+ # it enabled by default.
+ compiler_flag: "-fstack-protector"
+ compiler_flag: "-mcpu=cortex-m4"
+ compiler_flag: "-mfpu=fpv4-sp-d16"
+ compiler_flag: "-mthumb"
+ compiler_flag: "-mfloat-abi=hard"
+ compiler_flag: "-fno-strict-aliasing"
+ linker_flag: "-mcpu=cortex-m4"
+ linker_flag: "-mfpu=fpv4-sp-d16"
+ linker_flag: "-mthumb"
+ linker_flag: "-mfloat-abi=hard"
+ linker_flag: "-fno-strict-aliasing"
+ linker_flag: "--specs=nano.specs"
+
+ # Pretty much everything needs this, including parts of the glibc STL...
+ linker_flag: "-lgcc"
+ linker_flag: "-lstdc++"
+ linker_flag: "-lm"
+ linker_flag: "-lc"
+ linker_flag: "-Tmotors/core/mk64fx512.ld"
+
+ compiler_flag: "-fmessage-length=80"
+ compiler_flag: "-fmax-errors=20"
+
+ compiler_flag: "-Wall"
+ compiler_flag: "-Wextra"
+ compiler_flag: "-Wpointer-arith"
+ compiler_flag: "-Wcast-qual"
+ compiler_flag: "-Wwrite-strings"
+ compiler_flag: "-Wtype-limits"
+ compiler_flag: "-Wsign-compare"
+ compiler_flag: "-Wformat=2"
+ compiler_flag: "-Werror"
+ compiler_flag: "-Wstrict-aliasing=2"
+
+ # Be annoying about using doubles places we probably didn't mean to, because
+ # the FPU only does single-precision.
+ compiler_flag: "-Wdouble-promotion"
+
+ # Don't use temp files while compiling.
+ compiler_flag: "-pipe"
+
+ # Stamp the binary with a unique identifier.
+ # TODO(austin): Put these back in.
+ #linker_flag: "-Wl,--build-id=md5"
+ #linker_flag: "-Wl,--hash-style=gnu"
+
+ # Enable debug symbols.
+ compiler_flag: "-g"
+
+ # Common symbols are weird and not what we want, so just give multiple
+ # declaration errors instead.
+ compiler_flag: "-fno-common"
+
+ # We're not a hosted environment (no file IO, main is called from our code,
+ # etc).
+ compiler_flag: "-ffreestanding"
+ # However, we still want to optimize things like memcpy.
+ compiler_flag: "-fbuiltin"
+
+ compilation_mode_flags {
+ mode: OPT
+
+ # Freescale recommends this combination for reducing cycle count.
+ # http://www.nxp.com/assets/documents/data/en/application-notes/AN4808.pdf
+ compiler_flag: "-O2"
+ compiler_flag: "-finline-functions"
+
+ # This is definitely worth it for us. It makes the FPU a lot more useful,
+ # especially with complex arithmetic, which matters a lot.
+ compiler_flag: "-ffast-math"
+
+ # It seems like this is a good idea, at least for the number crunching code.
+ # Might want to look into moving it to copts on specific rules if the code
+ # size increase becomes a problem.
+ compiler_flag: "-funroll-loops"
+
+ # Disable assertions
+ compiler_flag: "-DNDEBUG"
+
+ # Removal of unused code and data at link time (can this increase binary size in some cases?).
+ compiler_flag: "-ffunction-sections"
+ #compiler_flag: "-fdata-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+
+ feature {
+ name: 'include_paths'
+ flag_set {
+ action: 'preprocess-assemble'
+ action: 'c-compile'
+ action: 'c++-compile'
+ action: 'c++-header-parsing'
+ action: 'c++-header-preprocessing'
+ action: 'c++-module-compile'
+ flag_group {
+ iterate_over: 'quote_include_paths'
+ flag: '-iquote'
+ flag: '%{quote_include_paths}'
+ }
+ flag_group {
+ iterate_over: 'include_paths'
+ flag: '-I%{include_paths}'
+ }
+ flag_group {
+ iterate_over: 'system_include_paths'
+ flag: '-I'
+ flag: '%{system_include_paths}'
+ }
+ }
+ }
+}
diff --git a/tools/cpp/gen_crosstool.py b/tools/cpp/gen_crosstool.py
new file mode 100644
index 0000000..af28c56
--- /dev/null
+++ b/tools/cpp/gen_crosstool.py
@@ -0,0 +1,58 @@
+#!/usr/bin/python3
+
+# Usage: gen_crosstool <base> <cortex_m4f> <output>
+# Example: bazel run //tools/cpp:gen_crosstool $(readlink -f tools/cpp/static_crosstool.pb) $(readlink -f tools/cpp/cortex_m4f_crosstool.pb) $(readlink -f tools/cpp/CROSSTOOL)
+
+import sys
+
+from third_party.bazel.protos import crosstool_config_pb2
+from google.protobuf import text_format
+from google.protobuf.descriptor import FieldDescriptor
+
+def process_string(string, substitutions):
+ for a, b in substitutions.items():
+ string = string.replace(a, b)
+ return string
+
+def rename_message_contents(proto, substitutions):
+ for descriptor, value in proto.ListFields():
+ if descriptor.type == FieldDescriptor.TYPE_STRING:
+ if descriptor.label == FieldDescriptor.LABEL_REPEATED:
+ new_value = []
+ for string in value:
+ new_value.append(process_string(string, substitutions))
+ value[:] = new_value
+ else:
+ setattr(proto, descriptor.name, process_string(value, substitutions))
+ if descriptor.type == FieldDescriptor.TYPE_MESSAGE:
+ if descriptor.label == FieldDescriptor.LABEL_REPEATED:
+ for sub_proto in value:
+ rename_message_contents(sub_proto, substitutions)
+ else:
+ rename_message_contents(value, substitutions)
+
+def add_m4f_toolchain(new_toolchain, m4f_proto, substitutions):
+ new_toolchain.CopyFrom(m4f_proto.toolchain[0])
+ rename_message_contents(new_toolchain, substitutions)
+
+def main(args):
+ crosstool_proto = crosstool_config_pb2.CrosstoolRelease()
+ with open(args[0], 'r') as f:
+ text_format.Merge(f.read(), crosstool_proto)
+
+ m4f_proto = crosstool_config_pb2.CrosstoolRelease()
+ with open(args[1], 'r') as f:
+ text_format.Merge(f.read(), m4f_proto)
+ add_m4f_toolchain(crosstool_proto.toolchain.add(), m4f_proto, {
+ '%NAME%': 'cortex-m4f',
+ '%CPU%': '__MK64FX512__',
+ '%F_CPU%': '120000000',
+ })
+
+ with open(args[2], 'w') as f:
+ f.write('# GENERATED FILE. DO NOT EDIT\n')
+ f.write('# Generated by tools/cpp/gen_crosstool.py\n')
+ f.write(text_format.MessageToString(crosstool_proto))
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/tools/cpp/static_crosstool.pb b/tools/cpp/static_crosstool.pb
new file mode 100644
index 0000000..99a36f9
--- /dev/null
+++ b/tools/cpp/static_crosstool.pb
@@ -0,0 +1,838 @@
+major_version: "local"
+minor_version: ""
+default_target_cpu: "same_as_host"
+
+default_toolchain {
+ cpu: "roborio"
+ toolchain_identifier: "roborio_linux"
+}
+
+default_toolchain {
+ cpu: "k8"
+ toolchain_identifier: "k8_linux"
+}
+
+default_toolchain {
+ cpu: "armeabi-v7a"
+ toolchain_identifier: "stub_armeabi-v7a"
+}
+
+default_toolchain {
+ cpu: "armhf-debian"
+ toolchain_identifier: "clang_linux_armhf"
+}
+
+default_toolchain {
+ cpu: "cortex-m4f"
+ toolchain_identifier: "cortex-m4f"
+}
+
+toolchain {
+ abi_version: "armeabi-v7a"
+ abi_libc_version: "armeabi-v7a"
+ builtin_sysroot: ""
+ compiler: "compiler"
+ host_system_name: "armeabi-v7a"
+ needsPic: true
+ supports_gold_linker: false
+ supports_incremental_linker: false
+ supports_fission: false
+ supports_interface_shared_objects: false
+ supports_normalizing_ar: false
+ supports_start_end_lib: false
+ supports_thin_archives: false
+ target_libc: "armeabi-v7a"
+ target_cpu: "armeabi-v7a"
+ target_system_name: "armeabi-v7a"
+ toolchain_identifier: "stub_armeabi-v7a"
+
+ tool_path { name: "ar" path: "/bin/false" }
+ tool_path { name: "compat-ld" path: "/bin/false" }
+ tool_path { name: "cpp" path: "/bin/false" }
+ tool_path { name: "dwp" path: "/bin/false" }
+ tool_path { name: "gcc" path: "/bin/false" }
+ tool_path { name: "gcov" path: "/bin/false" }
+ tool_path { name: "ld" path: "/bin/false" }
+
+ tool_path { name: "nm" path: "/bin/false" }
+ tool_path { name: "objcopy" path: "/bin/false" }
+ tool_path { name: "objdump" path: "/bin/false" }
+ tool_path { name: "strip" path: "/bin/false" }
+}
+
+toolchain {
+ abi_version: "local"
+ abi_libc_version: "local"
+ builtin_sysroot: ""
+ compiler: "clang"
+ host_system_name: "local"
+ needsPic: true
+ supports_gold_linker: false
+ supports_incremental_linker: false
+ supports_fission: false
+ supports_interface_shared_objects: false
+ supports_normalizing_ar: false
+ supports_start_end_lib: false
+ supports_thin_archives: false
+ target_libc: "local"
+ target_cpu: "k8"
+ target_system_name: "k8"
+ toolchain_identifier: "k8_linux"
+
+ # These paths are relative to //tools/cpp.
+ tool_path { name: "ar" path: "clang_3p6/x86_64-linux-gnu-ar" }
+ tool_path { name: "compat-ld" path: "clang_3p6/x86_64-linux-gnu-ld" }
+ tool_path { name: "cpp" path: "clang_3p6/x86_64-linux-gnu-cpp" }
+ tool_path { name: "dwp" path: "clang_3p6/x86_64-linux-gnu-dwp" }
+ tool_path { name: "gcc" path: "clang_3p6/x86_64-linux-gnu-clang-3.6" }
+ tool_path { name: "gcov" path: "clang_3p6/x86_64-linux-gnu-gcov" }
+ # C(++) compiles invoke the compiler (as that is the one knowing where
+ # to find libraries), but we provide LD so other rules can invoke the linker.
+ tool_path { name: "ld" path: "clang_3p6/x86_64-linux-gnu-ld" }
+ tool_path { name: "nm" path: "clang_3p6/x86_64-linux-gnu-nm" }
+ tool_path { name: "objcopy" path: "clang_3p6/x86_64-linux-gnu-objcopy" }
+ objcopy_embed_flag: "-I"
+ objcopy_embed_flag: "binary"
+ tool_path { name: "objdump" path: "clang_3p6/x86_64-linux-gnu-objdump" }
+ tool_path { name: "strip" path: "clang_3p6/x86_64-linux-gnu-strip" }
+ linking_mode_flags { mode: DYNAMIC }
+
+ compiler_flag: "--sysroot=external/clang_3p6_repo/"
+ compiler_flag: "-nostdinc"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/clang_3p6_repo/usr/include",
+ compiler_flag: "-isystem"
+ compiler_flag: "external/clang_3p6_repo/usr/include/x86_64-linux-gnu",
+ compiler_flag: "-isystem"
+ compiler_flag: "external/clang_3p6_repo/usr/lib/llvm-3.6/lib/clang/3.6.2/include",
+
+ cxx_flag: "-isystem"
+ cxx_flag: "external/clang_3p6_repo/usr/include/c++/4.9"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/clang_3p6_repo/usr/include/x86_64-linux-gnu/c++/4.9"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/clang_3p6_repo/usr/include/c++/4.9/backward"
+
+ # TODO(bazel-team): In theory, the path here ought to exactly match the path
+ # used by gcc. That works because bazel currently doesn't track files at
+ # absolute locations and has no remote execution, yet. However, this will need
+ # to be fixed, maybe with auto-detection?
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/c++/4.9'
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/x86_64-linux-gnu/c++/4.9'
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/c++/4.9/backward'
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/local/include'
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/lib/llvm-3.6/lib/clang/3.6.2/include'
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include/x86_64-linux-gnu'
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/include'
+ cxx_builtin_include_directory: '%package(@clang_3p6_repo//usr)%/lib/clang/3.6.2/include'
+
+ linker_flag: "-nodefaultlibs"
+ linker_flag: "--sysroot=external/clang_3p6_repo/"
+ linker_flag: "-lstdc++"
+ linker_flag: "-lc"
+ linker_flag: "-lgcc"
+ linker_flag: "-lgcc_s"
+ linker_flag: "-Bexternal/clang_3p6_repo/usr/bin/"
+ linker_flag: "-Ltools/cpp/clang_3p6/clang_more_libs"
+ linker_flag: "-Lexternal/clang_3p6/lib/x86_64-linux-gnu"
+ linker_flag: "-Lexternal/clang_3p6/usr/lib/x86_64-linux-gnu"
+ linker_flag: "-Lexternal/clang_3p6/usr/lib/gcc/x86_64-linux-gnu"
+
+ feature {
+ name: "opt"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=0"
+ }
+ }
+ }
+
+ feature {
+ name: "dbg"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=1"
+ }
+ flag_group {
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ }
+
+ feature {
+ name: "fastbuild"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=0"
+ }
+ }
+ }
+
+ feature {
+ name: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "assemble"
+ action: "c-compile"
+ flag_group {
+ flag: "-std=gnu99"
+ }
+ }
+ flag_set {
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-std=gnu++1y"
+ }
+ }
+ flag_set {
+ action: "preprocess-assemble"
+ action: "assemble"
+ action: "c++-link"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c-compile"
+ flag_group {
+ # We always want to compile with -pthread semantics.
+ flag: "-pthread"
+ }
+ }
+ }
+
+ # Anticipated future default.
+ # This makes GCC and Clang do what we want when called through symlinks.
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ linker_flag: "-no-canonical-prefixes"
+
+ # Things that the code wants defined.
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ compiler_flag: "-D__STDC_CONSTANT_MACROS"
+ compiler_flag: "-D__STDC_LIMIT_MACROS"
+ compiler_flag: "-D_FILE_OFFSET_BITS=64"
+ # TODO(Brian): Rename this or something.
+ compiler_flag: "-DAOS_ARCHITECTURE_arm_frc"
+
+ linker_flag: "-fuse-ld=gold"
+
+ # Make C++ compilation deterministic. Use linkstamping instead of these
+ # compiler symbols.
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+
+ # Security hardening on by default.
+ # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+ # We need to undef it before redefining it as some distributions now have
+ # it enabled by default.
+ compiler_flag: "-U_FORTIFY_SOURCE"
+ compiler_flag: "-D_FORTIFY_SOURCE=1"
+ compiler_flag: "-fstack-protector"
+ compiler_flag: "-fPIE"
+ linker_flag: "-Wl,-z,relro,-z,now"
+
+ # Pretty much everything needs this, including parts of the glibc STL...
+ linker_flag: "-lm"
+
+ # Enable coloring even if there's no attached terminal. Bazel removes the
+ # escape sequences if --nocolor is specified.
+ compiler_flag: "-fcolor-diagnostics"
+ compiler_flag: "-fmessage-length=80"
+ compiler_flag: "-fmacro-backtrace-limit=0"
+
+ compiler_flag: "-Wall"
+ compiler_flag: "-Wextra"
+ compiler_flag: "-Wpointer-arith"
+ compiler_flag: "-Wstrict-aliasing"
+ compiler_flag: "-Wcast-qual"
+ compiler_flag: "-Wcast-align"
+ compiler_flag: "-Wwrite-strings"
+ compiler_flag: "-Wtype-limits"
+ compiler_flag: "-Wsign-compare"
+ compiler_flag: "-Wformat=2"
+ compiler_flag: "-Werror"
+
+ # Keep stack frames for debugging, even in opt mode.
+ compiler_flag: "-fno-omit-frame-pointer"
+
+ # Don't use temp files while compiling.
+ compiler_flag: "-pipe"
+
+ # Stamp the binary with a unique identifier.
+ linker_flag: "-Wl,--build-id=md5"
+ linker_flag: "-Wl,--hash-style=gnu"
+ linker_flag: "-Wl,--warn-execstack"
+ linker_flag: "-Wl,--detect-odr-violations"
+
+ # Enable debug symbols.
+ compiler_flag: "-ggdb3"
+
+ compilation_mode_flags {
+ mode: OPT
+
+ compiler_flag: "-O2"
+
+ # Disable assertions
+ compiler_flag: "-DNDEBUG"
+
+ # Removal of unused code and data at link time (can this increase binary size in some cases?).
+ compiler_flag: "-ffunction-sections"
+ compiler_flag: "-fdata-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+ feature {
+ name: "pie_for_linking"
+ enabled: true
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ }
+ }
+}
+
+toolchain {
+ abi_version: "roborio"
+ abi_libc_version: "roborio"
+ builtin_sysroot: ""
+ compiler: "gcc"
+ host_system_name: "roborio"
+ needsPic: true
+ supports_gold_linker: false
+ supports_incremental_linker: false
+ supports_fission: false
+ supports_interface_shared_objects: false
+ supports_normalizing_ar: false
+ supports_start_end_lib: false
+ supports_thin_archives: false
+ target_libc: "roborio"
+ target_cpu: "roborio"
+ target_system_name: "roborio"
+ toolchain_identifier: "roborio_linux"
+
+ tool_path { name: "ar" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ar" }
+ tool_path { name: "compat-ld" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld" }
+ tool_path { name: "cpp" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-cpp" }
+ tool_path { name: "dwp" path: "/bin/false" }
+ tool_path { name: "gcc" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcc" }
+ tool_path { name: "gcov" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov-4.9" }
+ # C(++) compiles invoke the compiler (as that is the one knowing where
+ # to find libraries), but we provide LD so other rules can invoke the linker.
+ tool_path { name: "ld" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld" }
+ tool_path { name: "nm" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-nm" }
+ tool_path { name: "objcopy" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objcopy" }
+ objcopy_embed_flag: "-I"
+ objcopy_embed_flag: "binary"
+ tool_path { name: "objdump" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump" }
+ tool_path { name: "strip" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip" }
+ linking_mode_flags { mode: DYNAMIC }
+
+ compiler_flag: "--sysroot=external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi"
+ compiler_flag: "-nostdinc"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include",
+ compiler_flag: "-isystem"
+ compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include-fixed"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/usr/include"
+
+ cxx_flag: "-isystem"
+ cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/include/c++/5.4.0"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/include/c++/5.4.0/arm-frc-linux-gnueabi"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/include/c++/5.4.0/backward"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include-fixed"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/include"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi/usr/include"
+
+ # TODO(bazel-team): In theory, the path here ought to exactly match the path
+ # used by gcc. That works because bazel currently doesn't track files at
+ # absolute locations and has no remote execution, yet. However, this will need
+ # to be fixed, maybe with auto-detection?
+ cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%/c++/5.4.0"
+ cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%/c++/5.4.0/arm-frc-linux-gnueabi"
+ cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%/c++/5.4.0/backward"
+ cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include)%"
+ cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/5.4.0/include-fixed)%"
+ cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/include)%"
+ cxx_builtin_include_directory: "%package(@arm_frc_linux_gnueabi_repo//usr/arm-frc-linux-gnueabi/usr/include)%"
+
+ linker_flag: "-lstdc++"
+ linker_flag: "-Ltools/cpp/arm-frc-linux-gnueabi/libs"
+
+ feature {
+ name: "opt"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=0"
+ }
+ }
+ }
+
+ feature {
+ name: "dbg"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=1"
+ }
+ flag_group {
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ }
+
+ feature {
+ name: "fastbuild"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=0"
+ }
+ }
+ }
+
+ feature {
+ name: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "assemble"
+ action: "c-compile"
+ flag_group {
+ flag: "-std=gnu99"
+ }
+ }
+ flag_set {
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-std=gnu++1y"
+ }
+ }
+ flag_set {
+ action: "preprocess-assemble"
+ action: "assemble"
+ action: "c++-link"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c-compile"
+ flag_group {
+ # We always want to compile with -pthread semantics.
+ flag: "-pthread"
+ }
+ }
+ }
+
+ compiler_flag: "-mfpu=neon"
+ # TODO(brians): See if it will run with this enabled.
+ #compiler_flag: "-mhwdiv=arm,thumb"
+
+ # Anticipated future default.
+ # This makes GCC and Clang do what we want when called through symlinks.
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ linker_flag: "-no-canonical-prefixes"
+
+ # Things that the code wants defined.
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ compiler_flag: "-D__STDC_CONSTANT_MACROS"
+ compiler_flag: "-D__STDC_LIMIT_MACROS"
+ compiler_flag: "-D_FILE_OFFSET_BITS=64"
+ # TODO(Brian): Rename this or something.
+ compiler_flag: "-DAOS_ARCHITECTURE_arm_frc"
+
+ #linker_flag: "-fuse-ld=gold"
+
+ # Make C++ compilation deterministic. Use linkstamping instead of these
+ # compiler symbols.
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+
+ # Security hardening on by default.
+ # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+ # We need to undef it before redefining it as some distributions now have
+ # it enabled by default.
+ compiler_flag: "-U_FORTIFY_SOURCE"
+ compiler_flag: "-fstack-protector"
+ compiler_flag: "-fPIE"
+ linker_flag: "-Wl,-z,relro,-z,now"
+
+ # Pretty much everything needs this, including parts of the glibc STL...
+ linker_flag: "-lm"
+
+ # Enable coloring even if there's no attached terminal. Bazel removes the
+ # escape sequences if --nocolor is specified.
+ compiler_flag: "-fdiagnostics-color=always"
+
+ compiler_flag: "-Wall"
+ compiler_flag: "-Wextra"
+ compiler_flag: "-Wpointer-arith"
+ compiler_flag: "-Wstrict-aliasing"
+ compiler_flag: "-Wcast-qual"
+ compiler_flag: "-Wcast-align"
+ compiler_flag: "-Wwrite-strings"
+ compiler_flag: "-Wtype-limits"
+ compiler_flag: "-Wsign-compare"
+ compiler_flag: "-Wformat=2"
+ compiler_flag: "-Werror"
+ compiler_flag: "-Wunused-local-typedefs"
+
+ # Keep stack frames for debugging, even in opt mode.
+ compiler_flag: "-fno-omit-frame-pointer"
+ compiler_flag: "-D__has_feature(x)=0"
+
+ # Don't use temp files while compiling.
+ compiler_flag: "-pipe"
+
+ # Have GCC return the exit code from ld.
+ linker_flag: "-pass-exit-codes"
+
+ # Stamp the binary with a unique identifier.
+ linker_flag: "-Wl,--build-id=md5"
+ linker_flag: "-Wl,--hash-style=gnu"
+ #linker_flag: "-Wl,--warn-execstack"
+ #linker_flag: "-Wl,--detect-odr-violations"
+
+ # Enable debug symbols.
+ compiler_flag: "-ggdb3"
+
+ compilation_mode_flags {
+ mode: OPT
+
+ compiler_flag: "-O2"
+
+ # Disable assertions
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-D_FORTIFY_SOURCE=1"
+
+ # Removal of unused code and data at link time (can this increase binary size in some cases?).
+ compiler_flag: "-ffunction-sections"
+ compiler_flag: "-fdata-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+ feature {
+ name: "pie_for_linking"
+ enabled: true
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ }
+ }
+}
+
+toolchain {
+ abi_version: "clang_3.6"
+ abi_libc_version: "glibc_2.19"
+ builtin_sysroot: ""
+ compiler: "clang"
+ host_system_name: "linux"
+ needsPic: true
+ supports_gold_linker: false
+ supports_incremental_linker: false
+ supports_fission: false
+ supports_interface_shared_objects: false
+ supports_normalizing_ar: true
+ supports_start_end_lib: false
+ supports_thin_archives: true
+ target_libc: "glibc_2.19"
+ target_cpu: "armhf-debian"
+ target_system_name: "arm_a15"
+ toolchain_identifier: "clang_linux_armhf"
+
+ tool_path { name: "ar" path: "linaro_linux_gcc/arm-linux-gnueabihf-ar" }
+ tool_path { name: "compat-ld" path: "linaro_linux_gcc/arm-linux-gnueabihf-ld" }
+ tool_path { name: "cpp" path: "linaro_linux_gcc/clang_bin/clang" }
+ tool_path { name: "dwp" path: "linaro_linux_gcc/arm-linux-gnueabihf-dwp" }
+ tool_path { name: "gcc" path: "linaro_linux_gcc/clang_bin/clang" }
+ tool_path { name: "gcov" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov-4.9" }
+ # C(++) compiles invoke the compiler (as that is the one knowing where
+ # to find libraries), but we provide LD so other rules can invoke the linker.
+ tool_path { name: "ld" path: "linaro_linux_gcc/arm-linux-gnueabihf-ld" }
+ tool_path { name: "nm" path: "linaro_linux_gcc/arm-linux-gnueabihf-nm" }
+ tool_path { name: "objcopy" path: "linaro_linux_gcc/arm-linux-gnueabihf-objcopy" }
+ objcopy_embed_flag: "-I"
+ objcopy_embed_flag: "binary"
+ tool_path { name: "objdump" path: "linaro_linux_gcc/arm-linux-gnueabihf-objdump" }
+ tool_path { name: "strip" path: "linaro_linux_gcc/arm-linux-gnueabihf-strip" }
+ linking_mode_flags { mode: DYNAMIC }
+
+ compiler_flag: "-target"
+ compiler_flag: "armv7a-arm-linux-gnueabif"
+ compiler_flag: "--sysroot=external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc"
+ compiler_flag: "-mfloat-abi=hard"
+ compiler_flag: "-mfpu=vfpv3-d16"
+
+ compiler_flag: "-nostdinc"
+ compiler_flag: "-isystem"
+ compiler_flag: "/usr/lib/clang/3.6/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/linaro_linux_gcc_4_9_repo/lib/gcc/arm-linux-gnueabihf/4.9.3/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc/usr/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/linaro_linux_gcc_4_9_repo/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/include/c++/4.9.3/arm-linux-gnueabihf"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/include/c++/4.9.3"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/linaro_linux_gcc_4_9_repo/include/c++/4.9.3/arm-linux-gnueabihf"
+ cxx_flag: "-isystem"
+ cxx_flag: "external/linaro_linux_gcc_4_9_repo/include/c++/4.9.3"
+
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/usr/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/usr/lib/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//include)%/c++/4.9.3"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/libc/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//lib/gcc/arm-linux-gnueabihf/4.9.3/include)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed)%"
+ cxx_builtin_include_directory: "%package(@linaro_linux_gcc_4_9_repo//arm-linux-gnueabihf/include)%/c++/4.9.3"
+ cxx_builtin_include_directory: '/usr/lib/clang/3.6/include'
+
+ linker_flag: "-target"
+ linker_flag: "armv7a-arm-linux-gnueabif"
+ linker_flag: "--sysroot=external/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc"
+ linker_flag: "-lstdc++"
+ linker_flag: "-Ltools/cpp/linaro_linux_gcc/clang_more_libs"
+ linker_flag: "-Lexternal/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/lib"
+ linker_flag: "-Lexternal/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc/lib"
+ linker_flag: "-Lexternal/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/libc/usr/lib"
+ linker_flag: "-Bexternal/linaro_linux_gcc_4_9_repo/arm-linux-gnueabihf/bin"
+ linker_flag: "-Wl,--dynamic-linker=/lib/ld-linux-armhf.so.3"
+
+ feature {
+ name: "opt"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=0"
+ }
+ }
+ }
+
+ feature {
+ name: "dbg"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=1"
+ }
+ flag_group {
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ }
+
+ feature {
+ name: "fastbuild"
+ implies: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-DAOS_DEBUG=0"
+ }
+ }
+ }
+
+ feature {
+ name: "all_modes"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "assemble"
+ action: "c-compile"
+ flag_group {
+ flag: "-std=gnu99"
+ }
+ }
+ flag_set {
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-std=gnu++1y"
+ }
+ }
+ flag_set {
+ action: "preprocess-assemble"
+ action: "assemble"
+ action: "c++-link"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c-compile"
+ flag_group {
+ # We always want to compile with -pthread semantics.
+ flag: "-pthread"
+ }
+ }
+ }
+
+ # Anticipated future default.
+ # This makes GCC and Clang do what we want when called through symlinks.
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ linker_flag: "-no-canonical-prefixes"
+
+ # Things that the code wants defined.
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ compiler_flag: "-D__STDC_CONSTANT_MACROS"
+ compiler_flag: "-D__STDC_LIMIT_MACROS"
+ compiler_flag: "-D_FILE_OFFSET_BITS=64"
+ # TODO(Brian): Rename this or something.
+ compiler_flag: "-DAOS_ARCHITECTURE_armhf"
+
+ # Make C++ compilation deterministic. Use linkstamping instead of these
+ # compiler symbols.
+ unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+ unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+ unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+
+ # Security hardening on by default.
+ # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+ # We need to undef it before redefining it as some distributions now have
+ # it enabled by default.
+ compiler_flag: "-U_FORTIFY_SOURCE"
+ compiler_flag: "-fstack-protector"
+ compiler_flag: "-fPIE"
+ linker_flag: "-Wl,-z,relro,-z,now"
+
+ # Pretty much everything needs this, including parts of the glibc STL...
+ linker_flag: "-lm"
+
+ # Enable coloring even if there's no attached terminal. Bazel removes the
+ # escape sequences if --nocolor is specified.
+ compiler_flag: "-fdiagnostics-color=always"
+
+ compiler_flag: "-Wall"
+ compiler_flag: "-Wextra"
+ compiler_flag: "-Wpointer-arith"
+ compiler_flag: "-Wstrict-aliasing"
+ compiler_flag: "-Wcast-qual"
+ compiler_flag: "-Wcast-align"
+ compiler_flag: "-Wwrite-strings"
+ compiler_flag: "-Wtype-limits"
+ compiler_flag: "-Wsign-compare"
+ compiler_flag: "-Wformat=2"
+ compiler_flag: "-Werror"
+ compiler_flag: "-Wunused-local-typedefs"
+
+ # Keep stack frames for debugging, even in opt mode.
+ compiler_flag: "-fno-omit-frame-pointer"
+
+ # Don't use temp files while compiling.
+ compiler_flag: "-pipe"
+
+ # Stamp the binary with a unique identifier.
+ linker_flag: "-Wl,--build-id=md5"
+ linker_flag: "-Wl,--hash-style=gnu"
+ #linker_flag: "-Wl,--warn-execstack"
+ #linker_flag: "-Wl,--detect-odr-violations"
+
+ # Enable debug symbols.
+ compiler_flag: "-ggdb3"
+
+ compilation_mode_flags {
+ mode: OPT
+
+ compiler_flag: "-O2"
+
+ # Disable assertions
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-D_FORTIFY_SOURCE=1"
+
+ # Removal of unused code and data at link time (can this increase binary size in some cases?).
+ compiler_flag: "-ffunction-sections"
+ compiler_flag: "-fdata-sections"
+ linker_flag: "-Wl,--gc-sections"
+ }
+ feature {
+ name: "pie_for_linking"
+ enabled: true
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ }
+ }
+}