From a8ddd36c3a68d9c58357399f349fd70a14d79d92 Mon Sep 17 00:00:00 2001 From: hlopko Date: Fri, 11 May 2018 04:47:00 -0700 Subject: Remove fully static linking part of ctx.fragments.cpp.fully_static_link_options Since we always pass true as argument (meaning it's for dynamic library), we don't need the part for executable. And we don't want more users of this method, therefore removing. This is encore of https://github.com/bazelbuild/bazel/commit/ecb30676bdd7f1783afb3886e57caa9d6b1b9aee RELNOTES: None. PiperOrigin-RevId: 196241212 --- .../build/lib/rules/cpp/CcToolchainProvider.java | 12 ++++++++---- .../build/lib/rules/cpp/CppConfiguration.java | 19 +++++++------------ .../devtools/build/lib/rules/cpp/CppHelper.java | 4 +--- 3 files changed, 16 insertions(+), 19 deletions(-) (limited to 'src/main/java/com/google/devtools') diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java index 91ec045a89..913fe2cf17 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java @@ -36,6 +36,7 @@ import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; +import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.util.Pair; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain; @@ -962,7 +963,7 @@ public final class CcToolchainProvider extends ToolchainInfo { * WARNING: This method is only added to allow incremental migration of existing users. Please do * not use in new code. Will be removed soon as part of the new Skylark API to the C++ toolchain. * - * Returns the immutable list of linker options for fully statically linked outputs. Does not + *

Returns the immutable list of linker options for fully statically linked outputs. Does not * include command-line options passed via --linkopt or --linkopts. * * @param sharedLib true if the output is a shared lib, false if it's an executable @@ -972,10 +973,13 @@ public final class CcToolchainProvider extends ToolchainInfo { doc = "Returns the immutable list of linker options for fully statically linked " + "outputs. Does not include command-line options passed via --linkopt or " - + "--linkopts." - ) + + "--linkopts.") @Deprecated - public ImmutableList getFullyStaticLinkOptions(Boolean sharedLib) { + public ImmutableList getFullyStaticLinkOptions(Boolean sharedLib) throws EvalException { + if (!sharedLib) { + throw new EvalException( + Location.BUILTIN, "fully_static_link_options is deprecated, new uses are not allowed."); + } return CppHelper.getFullyStaticLinkOptions(cppConfiguration, this, sharedLib); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java index af89b87ae5..ec59a60663 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java @@ -33,6 +33,7 @@ import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; +import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.OutputFile; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader.CppConfigurationParameters; @@ -44,6 +45,7 @@ import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; +import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain; @@ -176,7 +178,6 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { private final FlagList unfilteredCompilerFlags; private final ImmutableList cOptions; - private final FlagList fullyStaticLinkFlags; private final FlagList mostlyStaticLinkFlags; private final FlagList mostlyStaticSharedLinkFlags; private final FlagList dynamicLinkFlags; @@ -258,10 +259,6 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { new FlagList( ImmutableList.copyOf(toolchain.getUnfilteredCxxFlagList()), ImmutableList.of()), ImmutableList.copyOf(cppOptions.conlyoptList), - new FlagList( - cppToolchainInfo.configureAllLegacyLinkOptions( - compilationMode, cppOptions.getLipoMode(), LinkingMode.LEGACY_FULLY_STATIC), - ImmutableList.of()), new FlagList( cppToolchainInfo.configureAllLegacyLinkOptions( compilationMode, cppOptions.getLipoMode(), LinkingMode.STATIC), @@ -310,7 +307,6 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { FlagList cxxFlags, FlagList unfilteredCompilerFlags, ImmutableList cOptions, - FlagList fullyStaticLinkFlags, FlagList mostlyStaticLinkFlags, FlagList mostlyStaticSharedLinkFlags, FlagList dynamicLinkFlags, @@ -342,7 +338,6 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { this.cxxFlags = cxxFlags; this.unfilteredCompilerFlags = unfilteredCompilerFlags; this.cOptions = cOptions; - this.fullyStaticLinkFlags = fullyStaticLinkFlags; this.mostlyStaticLinkFlags = mostlyStaticLinkFlags; this.mostlyStaticSharedLinkFlags = mostlyStaticSharedLinkFlags; this.dynamicLinkFlags = dynamicLinkFlags; @@ -728,12 +723,12 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { ) @Deprecated public ImmutableList getFullyStaticLinkOptions( - Iterable featuresNotUsedAnymore, Boolean sharedLib) { - if (sharedLib) { - return getSharedLibraryLinkOptions(mostlyStaticLinkFlags); - } else { - return fullyStaticLinkFlags.evaluate(); + Iterable featuresNotUsedAnymore, Boolean sharedLib) throws EvalException { + if (!sharedLib) { + throw new EvalException( + Location.BUILTIN, "fully_static_link_options is deprecated, new uses are not allowed."); } + return getSharedLibraryLinkOptions(mostlyStaticLinkFlags); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java index 61e7b379c5..b26425b3ba 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java @@ -254,9 +254,7 @@ public class CppHelper { * @param sharedLib true if the output is a shared lib, false if it's an executable */ public static ImmutableList getFullyStaticLinkOptions( - CppConfiguration config, - CcToolchainProvider toolchain, - Boolean sharedLib) { + CppConfiguration config, CcToolchainProvider toolchain, boolean sharedLib) { if (sharedLib) { return toolchain.getSharedLibraryLinkOptions( toolchain.getLegacyMostlyStaticLinkFlags( -- cgit v1.2.3