aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar pcloudy <pcloudy@google.com>2018-07-09 05:59:07 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-09 06:00:18 -0700
commit4e42e1767d1752d6e3fde78a6b184c2231b12ebb (patch)
tree8cadd68b0503dae8605144feaa3fba1b20804821 /src/main
parent35ff63a50997ca3af603629ee2d9d30b44aae27b (diff)
Windows, CROSSTOOL: Fix feature for linking interface library and dynamic library
1. Do not apply /WHOLEARCHIVE to interface library 2. On Windows, we cannot link dll directly, so remove related flag_groups RELNOTES: None PiperOrigin-RevId: 203752406
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/LibrariesToLinkCollector.java5
1 files changed, 5 insertions, 0 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();