aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/LibrariesToLinkCollector.java5
-rw-r--r--tools/cpp/CROSSTOOL.tpl33
2 files changed, 5 insertions, 33 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LibrariesToLinkCollector.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LibrariesToLinkCollector.java
index ad262b8b24..e09e74f109 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LibrariesToLinkCollector.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LibrariesToLinkCollector.java
@@ -285,6 +285,11 @@ public class LibrariesToLinkCollector {
Preconditions.checkState(
!Link.useStartEndLib(
input, CppHelper.getArchiveType(cppConfiguration, ccToolchainProvider)));
+ if (featureConfiguration.isEnabled(CppRuleClasses.TARGETS_WINDOWS)) {
+ // On Windows, dynamic library (dll) cannot be linked directly.
+ Preconditions.checkState(
+ !CppFileTypes.SHARED_LIBRARY.matches(input.getArtifact().getFilename()));
+ }
expandedLinkerInputsBuilder.add(input);
Artifact inputArtifact = input.getArtifact();
diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl
index fa6da1e342..2460b33d39 100644
--- a/tools/cpp/CROSSTOOL.tpl
+++ b/tools/cpp/CROSSTOOL.tpl
@@ -678,13 +678,8 @@ toolchain {
value: 'interface_library'
}
flag_group {
- expand_if_false: 'libraries_to_link.is_whole_archive'
flag: '%{libraries_to_link.name}'
}
- flag_group {
- expand_if_true: 'libraries_to_link.is_whole_archive'
- flag: '/WHOLEARCHIVE:%{libraries_to_link.name}'
- }
}
flag_group {
expand_if_equal: {
@@ -700,34 +695,6 @@ toolchain {
flag: '/WHOLEARCHIVE:%{libraries_to_link.name}'
}
}
- flag_group {
- expand_if_equal: {
- variable: 'libraries_to_link.type'
- value: 'dynamic_library'
- }
- flag_group {
- expand_if_false: 'libraries_to_link.is_whole_archive'
- flag: '%{libraries_to_link.name}'
- }
- flag_group {
- expand_if_true: 'libraries_to_link.is_whole_archive'
- flag: '/WHOLEARCHIVE:%{libraries_to_link.name}'
- }
- }
- flag_group {
- expand_if_equal: {
- variable: 'libraries_to_link.type'
- value: 'versioned_dynamic_library'
- }
- flag_group {
- expand_if_false: 'libraries_to_link.is_whole_archive'
- flag: '%{libraries_to_link.name}'
- }
- flag_group {
- expand_if_true: 'libraries_to_link.is_whole_archive'
- flag: '/WHOLEARCHIVE:%{libraries_to_link.name}'
- }
- }
}
}
}