diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java | 12 | ||||
-rw-r--r-- | tools/cpp/CROSSTOOL.tpl | 54 |
2 files changed, 36 insertions, 30 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java index 3d03ece32d..e8cc186214 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java @@ -1072,19 +1072,7 @@ public class CcToolchainFeatures implements Serializable { return new StringValue(type.name); } else if (IS_WHOLE_ARCHIVE_FIELD_NAME.equals(field)) { return new IntegerValue(isWholeArchive ? 1 : 0); - } else if ("whole_archive_presence".equals(field)) { - // TODO(b/33403458): Cleanup this workaround once bazel >=0.4.3 is released. - return isWholeArchive ? new IntegerValue(0) : null; - } else if ("no_whole_archive_presence".equals(field)) { - // TODO(b/33403458): Cleanup this workaround once bazel >=0.4.3 is released. - return !isWholeArchive ? new IntegerValue(0) : null; } else { - // TODO(b/33403458): Cleanup this workaround once bazel >=0.4.3 is released. - for (Type t : Type.values()) { - if ((t.name + "_presence").equals(field)) { - return type.equals(t) ? new IntegerValue(0) : null; - } - } return null; } } diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl index ae1718a198..5b382926a3 100644 --- a/tools/cpp/CROSSTOOL.tpl +++ b/tools/cpp/CROSSTOOL.tpl @@ -486,69 +486,87 @@ toolchain { flag_group { iterate_over: 'libraries_to_link' flag_group { - expand_if_all_available: 'libraries_to_link.object_file_group_presence' + expand_if_equal: { + variable: 'libraries_to_link.type' + value: 'object_file_group' + } iterate_over: 'libraries_to_link.object_files' flag_group { - expand_if_all_available: 'libraries_to_link.no_whole_archive_presence' + expand_if_false: 'libraries_to_link.is_whole_archive' flag: '%{libraries_to_link.object_files}' } flag_group { - expand_if_all_available: 'libraries_to_link.whole_archive_presence' + expand_if_true: 'libraries_to_link.is_whole_archive' flag: '/WHOLEARCHIVE:%{libraries_to_link.object_files}' } } flag_group { - expand_if_all_available: 'libraries_to_link.object_file_presence' + expand_if_equal: { + variable: 'libraries_to_link.type' + value: 'object_file' + } flag_group { - expand_if_all_available: 'libraries_to_link.no_whole_archive_presence' + expand_if_false: 'libraries_to_link.is_whole_archive' flag: '%{libraries_to_link.name}' } flag_group { - expand_if_all_available: 'libraries_to_link.whole_archive_presence' + expand_if_true: 'libraries_to_link.is_whole_archive' flag: '/WHOLEARCHIVE:%{libraries_to_link.name}' } } flag_group { - expand_if_all_available: 'libraries_to_link.interface_library_presence' + expand_if_equal: { + variable: 'libraries_to_link.type' + value: 'interface_library' + } flag_group { - expand_if_all_available: 'libraries_to_link.no_whole_archive_presence' + expand_if_false: 'libraries_to_link.is_whole_archive' flag: '%{libraries_to_link.name}' } flag_group { - expand_if_all_available: 'libraries_to_link.whole_archive_presence' + expand_if_true: 'libraries_to_link.is_whole_archive' flag: '/WHOLEARCHIVE:%{libraries_to_link.name}' } } flag_group { - expand_if_all_available: 'libraries_to_link.static_library_presence' + expand_if_equal: { + variable: 'libraries_to_link.type' + value: 'static_library' + } flag_group { - expand_if_all_available: 'libraries_to_link.no_whole_archive_presence' + expand_if_false: 'libraries_to_link.is_whole_archive' flag: '%{libraries_to_link.name}' } flag_group { - expand_if_all_available: 'libraries_to_link.whole_archive_presence' + expand_if_true: 'libraries_to_link.is_whole_archive' flag: '/WHOLEARCHIVE:%{libraries_to_link.name}' } } flag_group { - expand_if_all_available: 'libraries_to_link.dynamic_library_presence' + expand_if_equal: { + variable: 'libraries_to_link.type' + value: 'dynamic_library' + } flag_group { - expand_if_all_available: 'libraries_to_link.no_whole_archive_presence' + expand_if_false: 'libraries_to_link.is_whole_archive' flag: '%{libraries_to_link.name}' } flag_group { - expand_if_all_available: 'libraries_to_link.whole_archive_presence' + expand_if_true: 'libraries_to_link.is_whole_archive' flag: '/WHOLEARCHIVE:%{libraries_to_link.name}' } } flag_group { - expand_if_all_available: 'libraries_to_link.versioned_dynamic_library_presence' + expand_if_equal: { + variable: 'libraries_to_link.type' + value: 'versioned_dynamic_library' + } flag_group { - expand_if_all_available: 'libraries_to_link.no_whole_archive_presence' + expand_if_false: 'libraries_to_link.is_whole_archive' flag: '%{libraries_to_link.name}' } flag_group { - expand_if_all_available: 'libraries_to_link.whole_archive_presence' + expand_if_true: 'libraries_to_link.is_whole_archive' flag: '/WHOLEARCHIVE:%{libraries_to_link.name}' } } |