diff options
Diffstat (limited to 'src/main/java/com/google/devtools')
3 files changed, 16 insertions, 19 deletions
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 + * <p>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<String> getFullyStaticLinkOptions(Boolean sharedLib) { + public ImmutableList<String> 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<String> cOptions; - private final FlagList fullyStaticLinkFlags; private final FlagList mostlyStaticLinkFlags; private final FlagList mostlyStaticSharedLinkFlags; private final FlagList dynamicLinkFlags; @@ -260,10 +261,6 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { 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), ImmutableList.of()), new FlagList( @@ -310,7 +307,6 @@ public final class CppConfiguration extends BuildConfiguration.Fragment { FlagList cxxFlags, FlagList unfilteredCompilerFlags, ImmutableList<String> 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<String> getFullyStaticLinkOptions( - Iterable<String> featuresNotUsedAnymore, Boolean sharedLib) { - if (sharedLib) { - return getSharedLibraryLinkOptions(mostlyStaticLinkFlags); - } else { - return fullyStaticLinkFlags.evaluate(); + Iterable<String> 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<String> getFullyStaticLinkOptions( - CppConfiguration config, - CcToolchainProvider toolchain, - Boolean sharedLib) { + CppConfiguration config, CcToolchainProvider toolchain, boolean sharedLib) { if (sharedLib) { return toolchain.getSharedLibraryLinkOptions( toolchain.getLegacyMostlyStaticLinkFlags( |