aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java4
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(