diff options
author | Googler <noreply@google.com> | 2017-08-29 17:57:35 +0200 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-08-29 18:52:58 +0200 |
commit | 7876d97dbe7d4593855e62667fa7eba5774b561b (patch) | |
tree | 41417385db45c966e8ffc2bdada03b4ae86604d7 /src | |
parent | 9981ca321a56d0e5fb023ce0922fdb60a93e380d (diff) |
Ensure ThinLTO backend actions always generate debug info when fission enabled
While we don't generate .dwp files for shared libraries, the link still expects the object files to contain split debug info.
Enhanced tests to ensure the cc_library LTO backend actions always have the expected outputs/build variable, regardless of linking static or not.
RELNOTES: NONE
PiperOrigin-RevId: 166853630
Diffstat (limited to 'src')
4 files changed, 1 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index 8e92a561b7..c613ff0ec6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -291,7 +291,6 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { if (featureConfiguration.isEnabled(CppRuleClasses.THIN_LTO)) { linkActionBuilder.setLtoIndexing(true); linkActionBuilder.setUsePicForLtoBackendActions(usePic); - linkActionBuilder.setUseFissionForLtoBackendActions(cppConfiguration.useFission()); CppLinkAction indexAction = linkActionBuilder.build(); ruleContext.registerAction(indexAction); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java index c06f32b741..c6fbe44f10 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java @@ -199,7 +199,6 @@ public class CppLinkActionBuilder { private boolean isLtoIndexing = false; private boolean usePicForLtoBackendActions = false; - private boolean useFissionForLtoBackendActions = false; private Iterable<LtoBackendArtifacts> allLtoArtifacts = null; private final List<VariablesExtension> variablesExtensions = new ArrayList<>(); @@ -847,7 +846,7 @@ public class CppLinkActionBuilder { toolchain, fdoSupport, usePicForLtoBackendActions, - useFissionForLtoBackendActions); + cppConfiguration.useFission()); } } @@ -1011,12 +1010,6 @@ public class CppLinkActionBuilder { return this; } - /** Sets flag for using Fission in any scheduled LTO Backend actions. */ - public CppLinkActionBuilder setUseFissionForLtoBackendActions(boolean useFission) { - this.useFissionForLtoBackendActions = useFission; - return this; - } - /** Sets the C++ runtime library inputs for the action. */ public CppLinkActionBuilder setRuntimeInputs( ArtifactCategory runtimeType, Artifact middleman, NestedSet<Artifact> inputs) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java index 36b32b3f48..90e8965b49 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java @@ -1290,12 +1290,6 @@ public final class CppModel { && featureConfiguration.isEnabled(CppRuleClasses.THIN_LTO)) { dynamicLinkActionBuilder.setLtoIndexing(true); dynamicLinkActionBuilder.setUsePicForLtoBackendActions(usePicForSharedLibs); - // If support is ever added for generating a dwp file for shared - // library targets (e.g. when linkstatic=0), then this should change - // to generate dwo files when cppConfiguration.useFission(), - // and the dwp generating action for the shared library should - // include all of the resulting dwo files. - dynamicLinkActionBuilder.setUseFissionForLtoBackendActions(false); CppLinkAction indexAction = dynamicLinkActionBuilder.build(); env.registerAction(indexAction); diff --git a/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java b/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java index f49caa181b..e63576ea65 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java @@ -237,8 +237,6 @@ public abstract class NativeDepsHelper { && featureConfiguration.isEnabled(CppRuleClasses.THIN_LTO)) { builder.setLtoIndexing(true); builder.setUsePicForLtoBackendActions(CppHelper.usePic(ruleContext, false)); - builder.setUseFissionForLtoBackendActions( - ruleContext.getFragment(CppConfiguration.class).useFission()); CppLinkAction indexAction = builder.build(); ruleContext.registerAction(indexAction); builder.setLtoIndexing(false); |