diff options
author | 2018-07-09 05:59:07 -0700 | |
---|---|---|
committer | 2018-07-09 06:00:18 -0700 | |
commit | 4e42e1767d1752d6e3fde78a6b184c2231b12ebb (patch) | |
tree | 8cadd68b0503dae8605144feaa3fba1b20804821 /src/main | |
parent | 35ff63a50997ca3af603629ee2d9d30b44aae27b (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.java | 5 |
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(); |