aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-05-11 04:47:00 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-11 04:48:05 -0700
commita8ddd36c3a68d9c58357399f349fd70a14d79d92 (patch)
treead4e3a55b77007957e3874cb6a87905bd6d69dc7 /src/main/java/com/google/devtools
parent1855afff766afa37edf5727671fbaa23c62d87ec (diff)
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
Diffstat (limited to 'src/main/java/com/google/devtools')
-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(