Automatic code cleanup.
PiperOrigin-RevId: 234750806
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
index 5291383..a46e459 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
@@ -840,6 +840,9 @@
}
if (cppConfiguration.forcePic()) {
+ if (unsupportedFeatures.contains(CppRuleClasses.SUPPORTS_PIC)) {
+ throw new EvalException(/* location= */ null, PIC_CONFIGURATION_ERROR);
+ }
allRequestedFeaturesBuilder.add(CppRuleClasses.SUPPORTS_PIC);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
index e62d88d..fd599d7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
@@ -99,6 +99,12 @@
return linkerInputArtifacts;
}
+ @Nullable
+ @VisibleForTesting
+ public FeatureConfiguration getFeatureConfiguration() {
+ return featureConfiguration;
+ }
+
/**
* Returns the current type of link target set.
*/
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL b/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL
index a8bee889..b7ca89c 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL
@@ -1,408 +1,1009 @@
-# This test resource file is the default test setup - it largely matches what
-# we have in our repository cover; individual test cases can override this in
-# order to test more scenarios.
-
major_version: "1"
minor_version: "42"
-
toolchain {
- abi_version: "local"
- abi_libc_version: "local"
- builtin_sysroot: "/test/"
- compiler: "compiler"
- host_system_name: "local"
- needsPic: true
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: false
- supports_start_end_lib: false
- target_libc: "local"
- target_cpu: "local"
- target_system_name: "local"
toolchain_identifier: "toolchain-identifier-local"
-
- tool_path { name: "ar" path: "/usr/bin/ar" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
-
- # 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/"
- cxx_builtin_include_directory: "/usr/local/include"
- cxx_builtin_include_directory: "/usr/include"
- tool_path { name: "gcov" path: "/usr/bin/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/ld" }
-
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- # Anticipated future default.
- unfiltered_cxx_flag: "-no-canonical-prefixes"
- unfiltered_cxx_flag: "-fno-canonical-system-headers"
-
- # 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"
- linker_flag: "-Wl,-z,relro,-z,now"
-
- # Enable coloring even if there's no attached terminal. Bazel removes the
- # escape sequences if --nocolor is specified. This isn't supported by gcc
- # on Ubuntu 14.04.
- # compiler_flag: "-fcolor-diagnostics"
-
- # All warnings are enabled. Maybe enable -Werror as well?
- compiler_flag: "-Wall"
- # Enable a few more warnings that aren't part of -Wall.
- compiler_flag: "-Wunused-but-set-parameter"
- # But disable some that are problematic.
- compiler_flag: "-Wno-free-nonheap-object" # has false positives
-
- # Keep stack frames for debugging, even in opt mode.
- compiler_flag: "-fno-omit-frame-pointer"
-
- # Anticipated future default.
- linker_flag: "-no-canonical-prefixes"
- # Have gcc return the exit code from ld.
- linker_flag: "-pass-exit-codes"
- # Gold linker only? Can we enable this by default?
- # linker_flag: "-Wl,--warn-execstack"
- # linker_flag: "-Wl,--detect-odr-violations"
-
- compilation_mode_flags {
- mode: DBG
- # Enable debug symbols.
- compiler_flag: "-g"
- }
- compilation_mode_flags {
- mode: OPT
-
- # No debug symbols.
- # Maybe we should enable https://gcc.gnu.org/wiki/DebugFission for opt or
- # even generally? However, that can't happen here, as it requires special
- # handling in Bazel.
- compiler_flag: "-g0"
-
- # Conservative choice for -O
- # -O3 can increase binary size and even slow down the resulting binaries.
- # Profile first and / or use FDO if you need better performance than this.
- 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"
- }
- linking_mode_flags { mode: DYNAMIC }
-}
-
-toolchain {
+ host_system_name: "local"
+ target_system_name: "local"
+ target_cpu: "local"
+ target_libc: "local"
+ compiler: "compiler"
abi_version: "local"
abi_libc_version: "local"
- builtin_sysroot: "/test/"
- compiler: "compiler"
- host_system_name: "local"
- needsPic: true
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: false
- supports_start_end_lib: false
- target_libc: "local"
- target_cpu: "ppc"
- target_system_name: "local"
- toolchain_identifier: "toolchain-identifier-ppc"
-
- tool_path { name: "ar" path: "/usr/bin/ar" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
-
- # 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?
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/lib/gcc/"
cxx_builtin_include_directory: "/usr/local/include"
cxx_builtin_include_directory: "/usr/include"
- tool_path { name: "gcov" path: "/usr/bin/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/ld" }
-
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- # Anticipated future default.
- unfiltered_cxx_flag: "-no-canonical-prefixes"
- unfiltered_cxx_flag: "-fno-canonical-system-headers"
-
- # 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"
- linker_flag: "-Wl,-z,relro,-z,now"
-
- # Enable coloring even if there's no attached terminal. Bazel removes the
- # escape sequences if --nocolor is specified. This isn't supported by gcc
- # on Ubuntu 14.04.
- # compiler_flag: "-fcolor-diagnostics"
-
- # All warnings are enabled. Maybe enable -Werror as well?
- compiler_flag: "-Wall"
- # Enable a few more warnings that aren't part of -Wall.
- compiler_flag: "-Wunused-but-set-parameter"
- # But disable some that are problematic.
- compiler_flag: "-Wno-free-nonheap-object" # has false positives
-
- # Keep stack frames for debugging, even in opt mode.
- compiler_flag: "-fno-omit-frame-pointer"
-
- # Anticipated future default.
- linker_flag: "-no-canonical-prefixes"
- # Have gcc return the exit code from ld.
- linker_flag: "-pass-exit-codes"
- # Gold linker only? Can we enable this by default?
- # linker_flag: "-Wl,--warn-execstack"
- # linker_flag: "-Wl,--detect-odr-violations"
-
- compilation_mode_flags {
- mode: DBG
- # Enable debug symbols.
- compiler_flag: "-g"
+ builtin_sysroot: "/test/"
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-U_FORTIFY_SOURCE"
+ flag: "-D_FORTIFY_SOURCE=1"
+ flag: "-fstack-protector"
+ flag: "-Wall"
+ flag: "-Wunused-but-set-parameter"
+ flag: "-Wno-free-nonheap-object"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g"
+ }
+ with_feature {
+ feature: "dbg"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g0"
+ flag: "-O2"
+ flag: "-DNDEBUG"
+ flag: "-ffunction-sections"
+ flag: "-fdata-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
}
- compilation_mode_flags {
- mode: OPT
-
- # No debug symbols.
- # Maybe we should enable https://gcc.gnu.org/wiki/DebugFission for opt or
- # even generally? However, that can't happen here, as it requires special
- # handling in Bazel.
- compiler_flag: "-g0"
-
- # Conservative choice for -O
- # -O3 can increase binary size and even slow down the resulting binaries.
- # Profile first and / or use FDO if you need better performance than this.
- 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: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ flag: "-Wl,-z,relro,-z,now"
+ flag: "-no-canonical-prefixes"
+ flag: "-pass-exit-codes"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-Wl,--gc-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ enabled: true
}
- linking_mode_flags { mode: DYNAMIC }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_pic"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "opt"
+ }
+ feature {
+ name: "dbg"
+ }
+ feature {
+ name: "user_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "%{user_compile_flags}"
+ iterate_over: "user_compile_flags"
+ expand_if_all_available: "user_compile_flags"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "sysroot"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "--sysroot=%{sysroot}"
+ expand_if_all_available: "sysroot"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "unfiltered_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-no-canonical-prefixes"
+ flag: "-fno-canonical-system-headers"
+ flag: "-Wno-builtin-macro-redefined"
+ flag: "-D__DATE__=\"redacted\""
+ flag: "-D__TIMESTAMP__=\"redacted\""
+ flag: "-D__TIME__=\"redacted\""
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
+toolchain {
+ toolchain_identifier: "toolchain-identifier-ppc"
+ host_system_name: "local"
+ target_system_name: "local"
+ target_cpu: "ppc"
+ target_libc: "local"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
+ cxx_builtin_include_directory: "/usr/lib/gcc/"
+ cxx_builtin_include_directory: "/usr/local/include"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: "/test/"
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-U_FORTIFY_SOURCE"
+ flag: "-D_FORTIFY_SOURCE=1"
+ flag: "-fstack-protector"
+ flag: "-Wall"
+ flag: "-Wunused-but-set-parameter"
+ flag: "-Wno-free-nonheap-object"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g"
+ }
+ with_feature {
+ feature: "dbg"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g0"
+ flag: "-O2"
+ flag: "-DNDEBUG"
+ flag: "-ffunction-sections"
+ flag: "-fdata-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ flag: "-Wl,-z,relro,-z,now"
+ flag: "-no-canonical-prefixes"
+ flag: "-pass-exit-codes"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-Wl,--gc-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_pic"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "opt"
+ }
+ feature {
+ name: "dbg"
+ }
+ feature {
+ name: "user_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "%{user_compile_flags}"
+ iterate_over: "user_compile_flags"
+ expand_if_all_available: "user_compile_flags"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "sysroot"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "--sysroot=%{sysroot}"
+ expand_if_all_available: "sysroot"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "unfiltered_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-no-canonical-prefixes"
+ flag: "-fno-canonical-system-headers"
+ flag: "-Wno-builtin-macro-redefined"
+ flag: "-D__DATE__=\"redacted\""
+ flag: "-D__TIMESTAMP__=\"redacted\""
+ flag: "-D__TIME__=\"redacted\""
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
+}
toolchain {
toolchain_identifier: "toolchain-identifier-k8"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "k8"
target_libc: "local"
compiler: "compiler"
- linking_mode_flags { mode: DYNAMIC }
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "/usr/bin/ar" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- tool_path { name: "gcov" path: "/usr/bin/gcov" }
- tool_path { name: "ld" path: "/usr/bin/ld" }
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- needsPic: true
- supports_fission: true
-
- builtin_sysroot: "/usr/grte/v1"
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/lib/gcc/"
cxx_builtin_include_directory: "/usr/local/include"
cxx_builtin_include_directory: "/usr/include"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: "/usr/grte/v1"
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "supports_pic"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "k8-no-dyn-linker"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "k8"
target_libc: "local"
compiler: "compiler_no_dyn_linker"
- # No linking_mode_flags here
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "/usr/bin/ar" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- tool_path { name: "gcov" path: "/usr/bin/gcov" }
- tool_path { name: "ld" path: "/usr/bin/ld" }
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- needsPic: true
- supports_fission: true
-
- builtin_sysroot: ""
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/lib/gcc/"
cxx_builtin_include_directory: "/usr/local/include"
cxx_builtin_include_directory: "/usr/include"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "supports_pic"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "piii"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "piii"
target_libc: "local"
compiler: "compiler"
- linking_mode_flags { mode: DYNAMIC }
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "/usr/bin/ar" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- tool_path { name: "gcov" path: "/usr/bin/gcov" }
- tool_path { name: "ld" path: "/usr/bin/ld" }
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- needsPic: false
-
- builtin_sysroot: ""
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/lib/gcc/"
cxx_builtin_include_directory: "/usr/local/include"
cxx_builtin_include_directory: "/usr/include"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "local_darwin"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "darwin"
target_libc: "macosx"
compiler: "compiler"
- linking_mode_flags { mode: DYNAMIC }
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "/usr/bin/libtool" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- tool_path { name: "gcov" path: "/usr/bin/gcov" }
- tool_path { name: "ld" path: "/usr/bin/ld" }
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- needsPic: false
-
- builtin_sysroot: "/usr/grte/v1"
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/libtool"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/include"
cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain"
cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
cxx_builtin_include_directory: "/opt/local/include"
cxx_builtin_include_directory: "/Library/Developer/CommandLineTools"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: "/usr/grte/v1"
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "darwin-no-dyn-linker"
host_system_name: "local"
@@ -410,295 +1011,837 @@
target_cpu: "darwin"
target_libc: "macosx"
compiler: "compiler_no_dyn_linker"
- # No linking_mode_flags here
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "/usr/bin/libtool" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- tool_path { name: "gcov" path: "/usr/bin/gcov" }
- tool_path { name: "ld" path: "/usr/bin/ld" }
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- needsPic: false
-
- builtin_sysroot: ""
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/libtool"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/include"
cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain"
cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
cxx_builtin_include_directory: "/opt/local/include"
cxx_builtin_include_directory: "/Library/Developer/CommandLineTools"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "local_ios"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "ios_x86_64"
target_libc: "ios"
compiler: "compiler"
- linking_mode_flags { mode: DYNAMIC }
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "/usr/bin/libtool" }
- tool_path { name: "compat-ld" path: "/usr/bin/ld" }
- tool_path { name: "cpp" path: "/usr/bin/cpp" }
- tool_path { name: "dwp" path: "/usr/bin/dwp" }
- tool_path { name: "gcc" path: "/usr/bin/gcc" }
- tool_path { name: "gcov" path: "/usr/bin/gcov" }
- tool_path { name: "ld" path: "/usr/bin/ld" }
- tool_path { name: "nm" path: "/usr/bin/nm" }
- tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
- tool_path { name: "objdump" path: "/usr/bin/objdump" }
- tool_path { name: "strip" path: "/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "/usr/bin/llvm-profdata" }
-
- needsPic: false
-
- builtin_sysroot: ""
- cxx_flag: "-std=c++0x"
- linker_flag: "-lstdc++"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/libtool"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/usr/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/include"
cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain"
cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
cxx_builtin_include_directory: "/opt/local/include"
cxx_builtin_include_directory: "/Library/Developer/CommandLineTools"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "local_windows_mingw"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "k8"
target_libc: "local"
compiler: "windows_mingw"
- linking_mode_flags { mode: DYNAMIC }
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "C:/mingw/bin/ar" }
- tool_path { name: "compat-ld" path: "C:/mingw/bin/ld" }
- tool_path { name: "cpp" path: "C:/mingw/bin/cpp" }
- tool_path { name: "dwp" path: "C:/mingw/bin/dwp" }
- tool_path { name: "gcc" path: "C:/mingw/bin/gcc" }
- tool_path { name: "gcov" path: "C:/mingw/bin/gcov" }
- tool_path { name: "ld" path: "C:/mingw/bin/ld" }
- tool_path { name: "nm" path: "C:/mingw/bin/nm" }
- tool_path { name: "objcopy" path: "C:/mingw/bin/objcopy" }
- tool_path { name: "objdump" path: "C:/mingw/bin/objdump" }
- tool_path { name: "strip" path: "C:/mingw/bin/strip" }
- tool_path { name: "llvm-profdata" path: "C:/mingw/bin/llvm-profdata" }
-
- builtin_sysroot: ""
- cxx_flag: "-std=c++0x"
+ tool_path {
+ name: "ar"
+ path: "C:/mingw/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "C:/mingw/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "C:/mingw/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "C:/mingw/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "C:/mingw/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "C:/mingw/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "C:/mingw/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "C:/mingw/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "C:/mingw/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "C:/mingw/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "C:/mingw/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "C:/mingw/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "C:/mingw/include"
cxx_builtin_include_directory: "C:/mingw/lib/gcc"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "C:/mingw/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "local_windows_msys64_mingw64"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "k8"
target_libc: "local"
compiler: "windows_msys64_mingw64"
- linking_mode_flags { mode: DYNAMIC }
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "C:/msys64/mingw64/bin/ar" }
- tool_path { name: "compat-ld" path: "C:/msys64/mingw64/bin/ld" }
- tool_path { name: "cpp" path: "C:/msys64/mingw64/bin/cpp" }
- tool_path { name: "dwp" path: "C:/msys64/mingw64/bin/dwp" }
- tool_path { name: "gcc" path: "C:/msys64/mingw64/bin/gcc" }
- tool_path { name: "gcov" path: "C:/msys64/mingw64/bin/gcov" }
- tool_path { name: "ld" path: "C:/msys64/mingw64/bin/ld" }
- tool_path { name: "nm" path: "C:/msys64/mingw64/bin/nm" }
- tool_path { name: "objcopy" path: "C:/msys64/mingw64/bin/objcopy" }
- tool_path { name: "objdump" path: "C:/msys64/mingw64/bin/objdump" }
- tool_path { name: "strip" path: "C:/msys64/mingw64/bin/strip" }
- tool_path { name: "llvm-profdata" path: "C:/msys64/mingw64/bin/llvm-profdata" }
-
- builtin_sysroot: "/usr/grte/v1"
- cxx_flag: "-std=c++0x"
+ tool_path {
+ name: "ar"
+ path: "C:/msys64/mingw64/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "C:/msys64/mingw64/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "C:/msys64/mingw64/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "C:/msys64/mingw64/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "C:/msys64/mingw64/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "C:/msys64/mingw64/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "C:/msys64/mingw64/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "C:/msys64/mingw64/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "C:/msys64/mingw64/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "C:/msys64/mingw64/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "C:/msys64/mingw64/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "C:/msys64/mingw64/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "C:/msys64/mingw64/x86_64-w64-mingw32/include"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_interface_shared_objects: true
+ builtin_sysroot: "/usr/grte/v1"
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "C:/msys64/mingw64/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
toolchain_identifier: "local_windows_clang"
-
host_system_name: "local"
target_system_name: "local"
target_cpu: "k8"
target_libc: "local"
compiler: "windows_clang"
- linking_mode_flags { mode: DYNAMIC }
-
abi_version: "local"
abi_libc_version: "local"
-
- tool_path { name: "ar" path: "C:/mingw/bin/ar" }
- tool_path { name: "compat-ld" path: "C:/Program Files (x86)/LLVM/bin/ld" }
- tool_path { name: "cpp" path: "C:/Program Files (x86)/LLVM/bin/cpp" }
- tool_path { name: "dwp" path: "C:/Program Files (x86)/LLVM/bin/dwp" }
- tool_path { name: "gcc" path: "C:/Program Files (x86)/LLVM/bin/clang" }
- tool_path { name: "gcov" path: "C:/Program Files (x86)/LLVM/bin/gcov" }
- tool_path { name: "ld" path: "C:/Program Files (x86)/LLVM/bin/ld" }
- tool_path { name: "nm" path: "C:/Program Files (x86)/LLVM/bin/nm" }
- tool_path { name: "objcopy" path: "C:/Program Files (x86)/LLVM/bin/objcopy" }
- tool_path { name: "objdump" path: "C:/Program Files (x86)/LLVM/bin/objdump" }
- tool_path { name: "strip" path: "C:/Program Files (x86)/LLVM/bin/strip" }
- tool_path { name: "llvm-profdata" path: "C:/Program Files (x86)/LLVM/bin/llvm-profdata" }
-
- cxx_flag: "-std=c++0x"
+ tool_path {
+ name: "ar"
+ path: "C:/mingw/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "C:/Program Files (x86)/LLVM/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "C:/Program Files (x86)/LLVM/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "C:/Program Files (x86)/LLVM/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "C:/Program Files (x86)/LLVM/bin/clang"
+ }
+ tool_path {
+ name: "gcov"
+ path: "C:/Program Files (x86)/LLVM/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "C:/Program Files (x86)/LLVM/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "C:/Program Files (x86)/LLVM/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "C:/Program Files (x86)/LLVM/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "C:/Program Files (x86)/LLVM/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "C:/Program Files (x86)/LLVM/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "C:/Program Files (x86)/LLVM/bin/llvm-profdata"
+ }
cxx_builtin_include_directory: "/usr/lib/gcc/"
cxx_builtin_include_directory: "/usr/local/include"
cxx_builtin_include_directory: "/usr/include"
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
builtin_sysroot: ""
-
- supports_interface_shared_objects: true
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "C:/Program Files (x86)/LLVM/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
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"
+ 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"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "/bin/false"
+ }
builtin_sysroot: ""
- compiler: "compiler"
- linking_mode_flags { mode: DYNAMIC }
- host_system_name: "armeabi-v7a"
- needsPic: true
- supports_incremental_linker: false
- supports_fission: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: false
- supports_start_end_lib: 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" }
- tool_path { name: "llvm-profdata" path: "/bin/false" }
-
- supports_interface_shared_objects: true
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "supports_pic"
+ enabled: true
+ }
}
-
toolchain {
- abi_version: "local"
- abi_libc_version: "local"
- builtin_sysroot: "/usr/grte/v1"
- compiler: "windows_msys64"
- host_system_name: "local"
- needsPic: false
- target_libc: "local"
- target_cpu: "x64_windows"
- target_system_name: "local"
- toolchain_identifier: "local_windows_msys64"
-
- tool_path { name: "ar" path: "C:/tools/msys64/usr/bin/ar" }
- tool_path { name: "compat-ld" path: "C:/tools/msys64/usr/bin/ld" }
- tool_path { name: "cpp" path: "C:/tools/msys64/usr/bin/cpp" }
- tool_path { name: "dwp" path: "C:/tools/msys64/usr/bin/dwp" }
- # Use gcc instead of g++ so that C will compile correctly.
- tool_path { name: "gcc" path: "C:/tools/msys64/usr/bin/gcc" }
- cxx_flag: "-std=gnu++0x"
- linker_flag: "-lstdc++"
- # 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: "C:/tools/msys64/"
- cxx_builtin_include_directory: "/usr/"
- tool_path { name: "gcov" path: "C:/tools/msys64/usr/bin/gcov" }
- tool_path { name: "ld" path: "C:/tools/msys64/usr/bin/ld" }
- tool_path { name: "nm" path: "C:/tools/msys64/usr/bin/nm" }
- tool_path { name: "objcopy" path: "C:/tools/msys64/usr/bin/objcopy" }
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "C:/tools/msys64/usr/bin/objdump" }
- tool_path { name: "strip" path: "C:/tools/msys64/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "C:/tools/msys64/usr/bin/llvm-profdata" }
- linking_mode_flags { mode: DYNAMIC }
-
- supports_interface_shared_objects: true
+ toolchain_identifier: "local_windows_msys64"
+ host_system_name: "local"
+ target_system_name: "local"
+ target_cpu: "x64_windows"
+ target_libc: "local"
+ compiler: "windows_msys64"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "C:/tools/msys64/usr/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "C:/tools/msys64/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "C:/tools/msys64/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "C:/tools/msys64/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "C:/tools/msys64/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "C:/tools/msys64/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "C:/tools/msys64/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "C:/tools/msys64/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "C:/tools/msys64/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "C:/tools/msys64/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "C:/tools/msys64/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "C:/tools/msys64/usr/bin/llvm-profdata"
+ }
+ cxx_builtin_include_directory: "C:/tools/msys64/"
+ cxx_builtin_include_directory: "/usr/"
+ builtin_sysroot: "/usr/grte/v1"
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=gnu++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_interface_shared_libraries"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "C:/tools/msys64/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
-
toolchain {
- toolchain_identifier: "windows_msys64-no-dyn-linker"
- abi_version: "local"
- abi_libc_version: "local"
- builtin_sysroot: ""
- compiler: "compiler_no_dyn_linker"
- host_system_name: "local"
- needsPic: false
- target_libc: "local"
- target_cpu: "x64_windows"
- target_system_name: "local"
-
- tool_path { name: "ar" path: "C:/tools/msys64/usr/bin/ar" }
- tool_path { name: "compat-ld" path: "C:/tools/msys64/usr/bin/ld" }
- tool_path { name: "cpp" path: "C:/tools/msys64/usr/bin/cpp" }
- tool_path { name: "dwp" path: "C:/tools/msys64/usr/bin/dwp" }
- # Use gcc instead of g++ so that C will compile correctly.
- tool_path { name: "gcc" path: "C:/tools/msys64/usr/bin/gcc" }
- cxx_flag: "-std=gnu++0x"
- linker_flag: "-lstdc++"
- # 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: "C:/tools/msys64/"
- cxx_builtin_include_directory: "/usr/"
- tool_path { name: "gcov" path: "C:/tools/msys64/usr/bin/gcov" }
- tool_path { name: "ld" path: "C:/tools/msys64/usr/bin/ld" }
- tool_path { name: "nm" path: "C:/tools/msys64/usr/bin/nm" }
- tool_path { name: "objcopy" path: "C:/tools/msys64/usr/bin/objcopy" }
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- tool_path { name: "objdump" path: "C:/tools/msys64/usr/bin/objdump" }
- tool_path { name: "strip" path: "C:/tools/msys64/usr/bin/strip" }
- tool_path { name: "llvm-profdata" path: "C:/tools/msys64/usr/bin/llvm-profdata" }
- # No linking_mode_flags here
+ toolchain_identifier: "windows_msys64-no-dyn-linker"
+ host_system_name: "local"
+ target_system_name: "local"
+ target_cpu: "x64_windows"
+ target_libc: "local"
+ compiler: "compiler_no_dyn_linker"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "C:/tools/msys64/usr/bin/ar"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "C:/tools/msys64/usr/bin/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "C:/tools/msys64/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "C:/tools/msys64/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "C:/tools/msys64/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "C:/tools/msys64/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "C:/tools/msys64/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "C:/tools/msys64/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "C:/tools/msys64/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "C:/tools/msys64/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "C:/tools/msys64/usr/bin/strip"
+ }
+ tool_path {
+ name: "llvm-profdata"
+ path: "C:/tools/msys64/usr/bin/llvm-profdata"
+ }
+ cxx_builtin_include_directory: "C:/tools/msys64/"
+ cxx_builtin_include_directory: "/usr/"
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=gnu++0x"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "C:/tools/msys64/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 57a22f8..c633106 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -284,9 +284,7 @@
@Test
public void testStartEndLibThroughFeature() throws Exception {
- AnalysisMock.get()
- .ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.SUPPORTS_START_END_LIB_FEATURE);
+ AnalysisMock.get().ccSupport().setupCrosstool(mockToolsConfig);
useConfiguration("--start_end_lib");
scratch.file(
"test/BUILD",
@@ -528,7 +526,9 @@
public void testCcTestBuiltWithFissionHasDwp() throws Exception {
// Tests that cc_tests built statically and with Fission will have the .dwp file
// in their runfiles.
-
+ getAnalysisMock()
+ .ccSupport()
+ .setupCrosstool(mockToolsConfig, MockCcSupport.PER_OBJECT_DEBUG_INFO_CONFIGURATION);
useConfiguration("--cpu=k8", "--build_test_dwp", "--dynamic_mode=off", "--fission=yes");
ConfiguredTarget target =
scratchConfiguredTarget(
@@ -965,10 +965,8 @@
MockCcSupport.NO_LEGACY_FEATURES_FEATURE,
MockCcSupport.EMPTY_STATIC_LIBRARY_ACTION_CONFIG,
MockCcSupport.EMPTY_COMPILE_ACTION_CONFIG,
- MockCcSupport.EMPTY_DYNAMIC_LIBRARY_ACTION_CONFIG,
- "needsPic: false",
- "feature { name: 'supports_pic' enabled: true }");
- useConfiguration();
+ MockCcSupport.EMPTY_DYNAMIC_LIBRARY_ACTION_CONFIG);
+ useConfiguration("--cpu=k8");
scratch.file("x/BUILD", "cc_library(name = 'foo', srcs = ['a.cc'])");
scratch.file("x/a.cc");
@@ -992,10 +990,8 @@
MockCcSupport.NO_LEGACY_FEATURES_FEATURE,
MockCcSupport.EMPTY_STATIC_LIBRARY_ACTION_CONFIG,
MockCcSupport.EMPTY_COMPILE_ACTION_CONFIG,
- MockCcSupport.EMPTY_DYNAMIC_LIBRARY_ACTION_CONFIG,
- "needsPic: false",
- "feature { name: 'supports_pic' }");
- useConfiguration();
+ MockCcSupport.EMPTY_DYNAMIC_LIBRARY_ACTION_CONFIG);
+ useConfiguration("--features=-supports_pic");
scratch.file("x/BUILD", "cc_library(name = 'foo', srcs = ['a.cc'])");
scratch.file("x/a.cc");
@@ -1019,10 +1015,8 @@
MockCcSupport.NO_LEGACY_FEATURES_FEATURE,
MockCcSupport.EMPTY_STATIC_LIBRARY_ACTION_CONFIG,
MockCcSupport.EMPTY_COMPILE_ACTION_CONFIG,
- MockCcSupport.EMPTY_DYNAMIC_LIBRARY_ACTION_CONFIG,
- "needsPic: false",
- "feature { name: 'supports_pic' }");
- useConfiguration("--force_pic");
+ MockCcSupport.EMPTY_DYNAMIC_LIBRARY_ACTION_CONFIG);
+ useConfiguration("--force_pic", "--cpu=k8");
scratch.file("x/BUILD", "cc_library(name = 'foo', srcs = ['a.cc'])");
scratch.file("x/a.cc");
@@ -1047,9 +1041,8 @@
MockCcSupport.NO_LEGACY_FEATURES_FEATURE,
MockCcSupport.EMPTY_STATIC_LIBRARY_ACTION_CONFIG,
MockCcSupport.EMPTY_DYNAMIC_LIBRARY_ACTION_CONFIG,
- MockCcSupport.EMPTY_COMPILE_ACTION_CONFIG,
- "needsPic: false");
- useConfiguration("--force_pic");
+ MockCcSupport.EMPTY_COMPILE_ACTION_CONFIG);
+ useConfiguration("--force_pic", "--features=-supports_pic");
scratch.file("x/BUILD", "cc_library(name = 'foo', srcs = ['a.cc'])");
scratch.file("x/a.cc");
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
index b219d81..0a77570 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
@@ -422,8 +422,6 @@
mockToolsConfig,
MockCcSupport.COPY_DYNAMIC_LIBRARIES_TO_BINARY_CONFIGURATION,
MockCcSupport.TARGETS_WINDOWS_CONFIGURATION,
- "needsPic: false",
- "supports_interface_shared_objects: true",
"artifact_name_pattern {"
+ " category_name: 'object_file'"
+ " prefix: ''"
@@ -455,7 +453,7 @@
+ " extension: '.if.lib'"
+ "}");
- useConfiguration();
+ useConfiguration("--features=-supports_pic");
ConfiguredTarget hello = getConfiguredTarget("//hello:hello");
Artifact helloObj =
@@ -943,22 +941,6 @@
}
@Test
- public void testPicNotAvailableError() throws Exception {
- AnalysisMock.get()
- .ccSupport()
- .setupCrosstool(
- mockToolsConfig,
- MockCcSupport.EMPTY_STATIC_LIBRARY_ACTION_CONFIG,
- MockCcSupport.EMPTY_COMPILE_ACTION_CONFIG,
- MockCcSupport.NO_LEGACY_FEATURES_FEATURE);
- useConfiguration("--cpu=k8");
- writeSimpleCcLibrary();
- reporter.removeHandler(failFastHandler);
- getConfiguredTarget("//module:map");
- assertContainsEvent("PIC compilation is requested but the toolchain does not support it");
- }
-
- @Test
public void testToolchainWithoutPicForNoPicCompilation() throws Exception {
AnalysisMock.get()
.ccSupport()
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java
index 3392bfb..b5a0d06 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java
@@ -95,6 +95,19 @@
private final FeatureConfiguration getMockFeatureConfiguration(RuleContext ruleContext)
throws Exception {
+ CToolchain.FlagGroup flagGroup =
+ CToolchain.FlagGroup.newBuilder().addFlag("-lcpp_standard_library").build();
+ CToolchain.FlagSet flagSet =
+ CToolchain.FlagSet.newBuilder()
+ .addAction("c++-link-executable")
+ .addFlagGroup(flagGroup)
+ .build();
+ CToolchain.Feature linkCppStandardLibrary =
+ CToolchain.Feature.newBuilder()
+ .setName("link_cpp_standard_library")
+ .setEnabled(true)
+ .addFlagSet(flagSet)
+ .build();
ImmutableList<CToolchain.Feature> features =
new ImmutableList.Builder<CToolchain.Feature>()
.addAll(
@@ -105,6 +118,7 @@
/* supportsEmbeddedRuntimes= */ true,
/* supportsInterfaceSharedLibraries= */ false))
.addAll(CppActionConfigs.getFeaturesToAppearLastInFeaturesList(ImmutableSet.of()))
+ .add(linkCppStandardLibrary)
.build();
ImmutableList<CToolchain.ActionConfig> actionConfigs =
@@ -118,6 +132,7 @@
return CcToolchainFeaturesTest.buildFeatures(ruleContext, features, actionConfigs)
.getFeatureConfiguration(
ImmutableSet.of(
+ "link_cpp_standard_library",
Link.LinkTargetType.EXECUTABLE.getActionName(),
Link.LinkTargetType.NODEPS_DYNAMIC_LIBRARY.getActionName(),
Link.LinkTargetType.DYNAMIC_LIBRARY.getActionName(),
@@ -658,12 +673,7 @@
@Test
public void testInterfaceOutputForDynamicLibrary() throws Exception {
- AnalysisMock.get()
- .ccSupport()
- .setupCrosstool(
- mockToolsConfig,
- MockCcSupport.SUPPORTS_INTERFACE_SHARED_LIBRARIES,
- "supports_interface_shared_objects: false");
+ AnalysisMock.get().ccSupport().setupCrosstool(mockToolsConfig);
useConfiguration();
scratch.file("foo/BUILD", "cc_library(name = 'foo', srcs = ['foo.cc'])");
@@ -1065,6 +1075,6 @@
assertThat(linkCommandLine).contains("output/path.a");
assertThat(linkCommandLine).contains("path.a-2.params");
- assertThat(result.second).contains("-lstdc++");
+ assertThat(result.second).contains("-lcpp_standard_library");
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java
index e41b96c..7a66525 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java
@@ -141,9 +141,7 @@
public void testInterfaceLibraryBuildingVariablesWhenGenerationPossible() throws Exception {
// Make sure the interface shared object generation is enabled in the configuration
// (which it is not by default for some windows toolchains)
- AnalysisMock.get()
- .ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.SUPPORTS_INTERFACE_SHARED_LIBRARIES);
+ AnalysisMock.get().ccSupport().setupCrosstool(mockToolsConfig);
useConfiguration();
verifyIfsoVariables();
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
index e364bb6..5dd6459 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
@@ -595,20 +595,7 @@
public void testEmptyLinkVariablesContainSysroot() throws Exception {
AnalysisMock.get()
.ccSupport()
- .setupCrosstool(
- mockToolsConfig,
- "builtin_sysroot: '/foo/bar/sysroot'",
- "feature {",
- " name: 'sysroot'",
- " enabled: true",
- " flag_set {",
- " action: 'c++-link-executable'",
- " flag_group {",
- " expand_if_all_available: 'sysroot'",
- " flag: '--yolo_sysroot_flag=%{sysroot}'",
- " }",
- " }",
- "}");
+ .setupCrosstool(mockToolsConfig, "builtin_sysroot: '/foo/bar/sysroot'");
useConfiguration();
assertThat(
commandLineForVariables(
@@ -617,7 +604,7 @@
"feature_configuration = feature_configuration,",
"cc_toolchain = toolchain,",
")"))
- .contains("--yolo_sysroot_flag=/foo/bar/sysroot");
+ .contains("--sysroot=/foo/bar/sysroot");
}
@Test
@@ -1179,13 +1166,12 @@
.setupCrosstool(
mockToolsConfig,
MockCcSupport.COPY_DYNAMIC_LIBRARIES_TO_BINARY_CONFIGURATION,
- MockCcSupport.TARGETS_WINDOWS_CONFIGURATION,
- "supports_interface_shared_objects: false",
- "needsPic: false");
+ MockCcSupport.TARGETS_WINDOWS_CONFIGURATION);
doTestCcLinkingContext(
ImmutableList.of("a.a", "libdep2.a", "b.a", "c.a", "d.a", "libdep1.a"),
ImmutableList.of("a.pic.a", "b.pic.a", "c.pic.a", "e.pic.a"),
- ImmutableList.of("a.so", "libdep2.so", "b.so", "e.so", "libdep1.so"));
+ ImmutableList.of("a.so", "libdep2.so", "b.so", "e.so", "libdep1.so"),
+ /* disableSupportsPic= */ true);
}
@Test
@@ -1195,20 +1181,23 @@
.setupCrosstool(
mockToolsConfig,
MockCcSupport.PIC_FEATURE,
- "supports_interface_shared_objects: false",
"needsPic: true");
doTestCcLinkingContext(
ImmutableList.of("a.a", "b.a", "c.a", "d.a"),
ImmutableList.of("a.pic.a", "libdep2.a", "b.pic.a", "c.pic.a", "e.pic.a", "libdep1.a"),
- ImmutableList.of("a.so", "liba_Slibdep2.so", "b.so", "e.so", "liba_Slibdep1.so"));
+ ImmutableList.of("a.so", "liba_Slibdep2.so", "b.so", "e.so", "liba_Slibdep1.so"),
+ /* disableSupportsPic= */ false);
}
private void doTestCcLinkingContext(
List<String> staticLibraryList,
List<String> picStaticLibraryList,
- List<String> dynamicLibraryList)
+ List<String> dynamicLibraryList,
+ boolean disableSupportsPic)
throws Exception {
- useConfiguration();
+ useConfiguration(
+ "--features=-supports_interface_shared_libraries",
+ disableSupportsPic ? "--features=-supports_pic" : "--features=supports_pic");
setUpCcLinkingContextTest();
ConfiguredTarget a = getConfiguredTarget("//a:a");
diff --git a/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL b/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL
index 0ede68a..2a19204 100644
--- a/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL
+++ b/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL
@@ -1,61 +1,58 @@
major_version: "local"
minor_version: ""
-
toolchain {
+ toolchain_identifier: "armeabi-v7a"
+ host_system_name: "armeabi-v7a"
+ target_system_name: "arm_a15"
+ target_cpu: "armeabi-v7a"
+ target_libc: "glibc_2.19"
+ compiler: "gcc"
abi_version: "gcc"
abi_libc_version: "glibc_2.19"
- builtin_sysroot: ""
- compiler: "gcc"
- host_system_name: "armeabi-v7a"
- needsPic: true
- 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: "armeabi-v7a"
- target_system_name: "arm_a15"
- toolchain_identifier: "armeabi-v7a"
-
- 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/arm-linux-gnueabihf-gcc" }
- tool_path { name: "dwp" path: "linaro_linux_gcc/arm-linux-gnueabihf-dwp" }
- tool_path { name: "gcc" path: "linaro_linux_gcc/arm-linux-gnueabihf-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: "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" }
-
- compiler_flag: "--sysroot=external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc"
- compiler_flag: "-mfloat-abi=hard"
-
- compiler_flag: "-nostdinc"
- compiler_flag: "-isystem"
- compiler_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/lib/gcc/arm-linux-gnueabihf/5.3.1/include"
- compiler_flag: "-isystem"
- compiler_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/usr/include"
- compiler_flag: "-isystem"
- compiler_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/lib/gcc/arm-linux-gnueabihf/5.3.1/include-fixed"
- compiler_flag: "-isystem"
- compiler_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/usr/include"
- cxx_flag: "-isystem"
- cxx_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/include/c++/5.3.1/arm-linux-gnueabihf"
- cxx_flag: "-isystem"
- cxx_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/include/c++/5.3.1"
- cxx_flag: "-isystem"
- cxx_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/include/c++/5.3.1/arm-linux-gnueabihf"
- cxx_flag: "-isystem"
- cxx_flag: "external/org_linaro_components_toolchain_gcc_5_3_1/include/c++/5.3.1"
-
+ 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/arm-linux-gnueabihf-gcc"
+ }
+ tool_path {
+ name: "dwp"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "linaro_linux_gcc/arm-linux-gnueabihf-gcc"
+ }
+ 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"
+ }
cxx_builtin_include_directory: "%package(@org_linaro_components_toolchain_gcc_5_3_1//include)%"
cxx_builtin_include_directory: "%package(@org_linaro_components_toolchain_gcc_5_3_1//arm-linux-gnueabihf/libc/usr/include)%"
cxx_builtin_include_directory: "%package(@org_linaro_components_toolchain_gcc_5_3_1//arm-linux-gnueabihf/libc/usr/lib/include)%"
@@ -66,97 +63,284 @@
cxx_builtin_include_directory: "%package(@org_linaro_components_toolchain_gcc_5_3_1//lib/gcc/arm-linux-gnueabihf/5.3.1/include)%"
cxx_builtin_include_directory: "%package(@org_linaro_components_toolchain_gcc_5_3_1//lib/gcc/arm-linux-gnueabihf/5.3.1/include-fixed)%"
cxx_builtin_include_directory: "%package(@org_linaro_components_toolchain_gcc_5_3_1//arm-linux-gnueabihf/include)%/c++/5.3.1"
-
- linker_flag: "--sysroot=external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc"
- linker_flag: "-lstdc++"
- linker_flag: "-latomic"
- linker_flag: "-lm"
- linker_flag: "-lpthread"
- linker_flag: "-Ltools/arm_compiler/linaro_linux_gcc/clang_more_libs"
- linker_flag: "-Lexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/lib"
- linker_flag: "-Lexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/lib"
- linker_flag: "-Lexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/usr/lib"
- linker_flag: "-Bexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/bin"
- linker_flag: "-Wl,--dynamic-linker=/lib/ld-linux-armhf.so.3"
-
- # 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"
-
- # 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: "-pie"
- linker_flag: "-Wl,-z,relro,-z,now"
-
- # Enable coloring even if there's no attached terminal. Bazel removes the
- # escape sequences if --nocolor is specified.
- compiler_flag: "-fdiagnostics-color=always"
-
- # All warnings are enabled. Maybe enable -Werror as well?
- compiler_flag: "-Wall"
- # Enable a few more warnings that aren't part of -Wall.
- compiler_flag: "-Wunused-but-set-parameter"
- # But disable some that are problematic.
- compiler_flag: "-Wno-free-nonheap-object" # has false positives
-
- # Keep stack frames for debugging, even in opt mode.
- compiler_flag: "-fno-omit-frame-pointer"
-
- compilation_mode_flags {
- mode: DBG
- # Enable debug symbols.
- compiler_flag: "-g"
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "--sysroot=external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc"
+ flag: "-mfloat-abi=hard"
+ flag: "-nostdinc"
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/lib/gcc/arm-linux-gnueabihf/5.3.1/include"
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/usr/include"
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/lib/gcc/arm-linux-gnueabihf/5.3.1/include-fixed"
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/usr/include"
+ flag: "-U_FORTIFY_SOURCE"
+ flag: "-fstack-protector"
+ flag: "-fPIE"
+ flag: "-fdiagnostics-color=always"
+ flag: "-Wall"
+ flag: "-Wunused-but-set-parameter"
+ flag: "-Wno-free-nonheap-object"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g"
+ }
+ with_feature {
+ feature: "dbg"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g0"
+ flag: "-O2"
+ flag: "-DNDEBUG"
+ flag: "-ffunction-sections"
+ flag: "-fdata-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/include/c++/5.3.1/arm-linux-gnueabihf"
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/include/c++/5.3.1"
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/include/c++/5.3.1/arm-linux-gnueabihf"
+ flag: "-isystem"
+ flag: "external/org_linaro_components_toolchain_gcc_5_3_1/include/c++/5.3.1"
+ }
+ }
+ enabled: true
}
- compilation_mode_flags {
- mode: OPT
- # No debug symbols.
- # Maybe we should enable https://gcc.gnu.org/wiki/DebugFission for opt or
- # even generally? However, that can't happen here, as it requires special
- # handling in Bazel.
- compiler_flag: "-g0"
-
- # Conservative choice for -O
- # -O3 can increase binary size and even slow down the resulting binaries.
- # Profile first and / or use FDO if you need better performance than this.
- 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: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "--sysroot=external/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc"
+ flag: "-lstdc++"
+ flag: "-latomic"
+ flag: "-lm"
+ flag: "-lpthread"
+ flag: "-Ltools/arm_compiler/linaro_linux_gcc/clang_more_libs"
+ flag: "-Lexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/lib"
+ flag: "-Lexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/lib"
+ flag: "-Lexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/libc/usr/lib"
+ flag: "-Bexternal/org_linaro_components_toolchain_gcc_5_3_1/arm-linux-gnueabihf/bin"
+ flag: "-Wl,--dynamic-linker=/lib/ld-linux-armhf.so.3"
+ flag: "-no-canonical-prefixes"
+ flag: "-pie"
+ flag: "-Wl,-z,relro,-z,now"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-Wl,--gc-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "supports_pic"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "opt"
+ }
+ feature {
+ name: "dbg"
+ }
+ feature {
+ name: "user_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "%{user_compile_flags}"
+ iterate_over: "user_compile_flags"
+ expand_if_all_available: "user_compile_flags"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "sysroot"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "--sysroot=%{sysroot}"
+ expand_if_all_available: "sysroot"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "unfiltered_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-no-canonical-prefixes"
+ flag: "-Wno-builtin-macro-redefined"
+ flag: "-D__DATE__=\"redacted\""
+ flag: "-D__TIMESTAMP__=\"redacted\""
+ flag: "-D__TIME__=\"redacted\""
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "linaro_linux_gcc/arm-linux-gnueabihf-objcopy"
+ }
+ enabled: true
}
}
-
toolchain {
toolchain_identifier: "local"
- abi_libc_version: "local"
- abi_version: "local"
- builtin_sysroot: ""
+ host_system_name: "local"
+ target_system_name: "local"
+ target_cpu: "k8"
+ target_libc: "local"
compiler: "compiler"
- compiler_flag: "-U_FORTIFY_SOURCE"
- compiler_flag: "-D_FORTIFY_SOURCE=2"
- compiler_flag: "-fstack-protector"
- compiler_flag: "-Wall"
- compiler_flag: "-Wl,-z,-relro,-z,now"
- compiler_flag: "-Wunused-but-set-parameter"
- compiler_flag: "-Wno-free-nonheap-object"
- compiler_flag: "-fno-omit-frame-pointer"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "/usr/bin/ar"
+ }
+ tool_path {
+ name: "cpp"
+ path: "/usr/bin/cpp"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "gcc"
+ path: "/usr/bin/gcc"
+ }
+ tool_path {
+ name: "gcov"
+ path: "/usr/bin/gcov"
+ }
+ tool_path {
+ name: "ld"
+ path: "/usr/bin/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "/usr/bin/nm"
+ }
+ tool_path {
+ name: "objcopy"
+ path: "/usr/bin/objcopy"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ tool_path {
+ name: "strip"
+ path: "/usr/bin/strip"
+ }
cxx_builtin_include_directory: "/usr/include/c++/4.8"
cxx_builtin_include_directory: "/usr/include/x86_64-linux-gnu/c++/4.8"
cxx_builtin_include_directory: "/usr/include/c++/4.8/backward"
@@ -165,52 +349,208 @@
cxx_builtin_include_directory: "/usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed"
cxx_builtin_include_directory: "/usr/include/x86_64-linux-gnu"
cxx_builtin_include_directory: "/usr/include"
- cxx_flag: "-std=c++0x"
- host_system_name: "local"
- linker_flag: "-lstdc++"
- linker_flag: "-lm"
- linker_flag: "-Wl,-no-as-needed"
- linker_flag: "-pass-exit-codes"
- needsPic: true
- objcopy_embed_flag: "-I"
- objcopy_embed_flag: "binary"
- supports_fission: false
- supports_incremental_linker: false
- supports_interface_shared_objects: false
- supports_normalizing_ar: false
- supports_start_end_lib: false
- supports_thin_archives: false
- target_cpu: "k8"
- target_libc: "local"
- target_system_name: "local"
- unfiltered_cxx_flag: "-fno-canonical-system-headers"
- 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\""
- tool_path {name: "ar" path: "/usr/bin/ar" }
- tool_path {name: "cpp" path: "/usr/bin/cpp" }
- tool_path {name: "dwp" path: "/usr/bin/dwp" }
- tool_path {name: "gcc" path: "/usr/bin/gcc" }
- tool_path {name: "gcov" path: "/usr/bin/gcov" }
- tool_path {name: "ld" path: "/usr/bin/ld" }
- tool_path {name: "nm" path: "/usr/bin/nm" }
- tool_path {name: "objcopy" path: "/usr/bin/objcopy" }
- tool_path {name: "objdump" path: "/usr/bin/objdump" }
- tool_path {name: "strip" path: "/usr/bin/strip" }
-
- compilation_mode_flags {
- mode: DBG
- compiler_flag: "-g"
+ builtin_sysroot: ""
+ feature {
+ name: "default_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-U_FORTIFY_SOURCE"
+ flag: "-D_FORTIFY_SOURCE=2"
+ flag: "-fstack-protector"
+ flag: "-Wall"
+ flag: "-Wl,-z,-relro,-z,now"
+ flag: "-Wunused-but-set-parameter"
+ flag: "-Wno-free-nonheap-object"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g"
+ }
+ with_feature {
+ feature: "dbg"
+ }
+ }
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-g0"
+ flag: "-O2"
+ flag: "-DNDEBUG"
+ flag: "-ffunction-sections"
+ flag: "-fdata-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ flag_set {
+ action: "linkstamp-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-std=c++0x"
+ }
+ }
+ enabled: true
}
- compilation_mode_flags {
- mode: OPT
- compiler_flag: "-g0"
- compiler_flag: "-O2"
- compiler_flag: "-DNDEBUG"
- compiler_flag: "-ffunction-sections"
- compiler_flag: "-fdata-sections"
- linker_flag: "-Wl,--gc-sections"
+ feature {
+ name: "default_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-lstdc++"
+ flag: "-lm"
+ flag: "-Wl,-no-as-needed"
+ flag: "-pass-exit-codes"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "-Wl,--gc-sections"
+ }
+ with_feature {
+ feature: "opt"
+ }
+ }
+ enabled: true
}
- linking_mode_flags { mode: DYNAMIC }
+ feature {
+ name: "supports_dynamic_linker"
+ enabled: true
+ }
+ feature {
+ name: "supports_pic"
+ enabled: true
+ }
+ feature {
+ name: "objcopy_embed_flags"
+ flag_set {
+ action: "objcopy_embed_data"
+ flag_group {
+ flag: "-I"
+ flag: "binary"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "opt"
+ }
+ feature {
+ name: "dbg"
+ }
+ feature {
+ name: "user_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "%{user_compile_flags}"
+ iterate_over: "user_compile_flags"
+ expand_if_all_available: "user_compile_flags"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "sysroot"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-nodeps-dynamic-library"
+ flag_group {
+ flag: "--sysroot=%{sysroot}"
+ expand_if_all_available: "sysroot"
+ }
+ }
+ enabled: true
+ }
+ feature {
+ name: "unfiltered_compile_flags"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "linkstamp-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "lto-backend"
+ action: "clif-match"
+ flag_group {
+ flag: "-fno-canonical-system-headers"
+ flag: "-Wno-builtin-macro-redefined"
+ flag: "-D__DATE__=\"redacted\""
+ flag: "-D__TIMESTAMP__=\"redacted\""
+ flag: "-D__TIME__=\"redacted\""
+ }
+ }
+ enabled: true
+ }
+ action_config {
+ config_name: "objcopy_embed_data"
+ action_name: "objcopy_embed_data"
+ tool {
+ tool_path: "/usr/bin/objcopy"
+ }
+ enabled: true
+ }
}