Remove all code related to //tools/defaults:* package

After disabling in-memory //tools/defaults:* package by option flag in PackageCacheOptions class, all code can be removed.

RELNOTES:none
PiperOrigin-RevId: 209119547
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index ae3b235..00311c3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -32,7 +32,6 @@
 import com.google.devtools.build.lib.analysis.config.BuildOptions.OptionsDiff;
 import com.google.devtools.build.lib.analysis.config.ComposingRuleTransitionFactory;
 import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
-import com.google.devtools.build.lib.analysis.config.DefaultsPackage;
 import com.google.devtools.build.lib.analysis.config.FragmentOptions;
 import com.google.devtools.build.lib.analysis.constraints.ConstraintSemantics;
 import com.google.devtools.build.lib.analysis.skylark.SkylarkModules;
@@ -52,7 +51,6 @@
 import com.google.devtools.build.lib.packages.RuleErrorConsumer;
 import com.google.devtools.build.lib.packages.RuleTransitionFactory;
 import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
 import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData;
 import com.google.devtools.build.lib.skylarkbuildapi.Bootstrap;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkInterfaceUtils;
@@ -763,21 +761,6 @@
   }
 
   /**
-   * Returns the defaults package for the default settings.
-   */
-  public String getDefaultsPackageContent(InvocationPolicy invocationPolicy) {
-    return DefaultsPackage.getDefaultsPackageContent(configurationOptions, invocationPolicy);
-  }
-
-  /**
-   * Returns the defaults package for the given options taken from an optionsProvider.
-   */
-  public String getDefaultsPackageContent(OptionsClassProvider optionsProvider) {
-    return DefaultsPackage.getDefaultsPackageContent(
-        BuildOptions.of(configurationOptions, optionsProvider));
-  }
-
-  /**
    * Creates a BuildOptions class for the given options taken from an optionsProvider.
    */
   public BuildOptions createBuildOptions(OptionsClassProvider optionsProvider) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java b/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java
deleted file mode 100644
index 90e74b3..0000000
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright 2014 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.analysis.config;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
-import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * A helper class to compute and inject a defaults package into the package cache.
- *
- * <p>The <code>//tools/defaults</code> package provides a mechanism let tool locations be specified
- * over the commandline, without requiring any special support in the rule code. As such, it can be
- * used in genrule <code>$(location)</code> substitutions.
- *
- * <p>It works as follows:
- *
- * <ul>
- *   <li>SomeLanguage.createCompileAction will refer to a host-configured target for the compiler by
- *       looking for <code>env.getHostPrerequisiteArtifact("$somelanguage_compiler")</code>.
- *   <li>the attribute <code>$somelanguage_compiler</code> is defined in the {@link RuleDefinition}
- *       subclass for that language.
- *   <li>if the attribute cannot be set on the command-line, its value may be a normal label.
- *   <li>if the attribute can be set on the command-line, its value will be <code>
- *       //tools/defaults:somelanguage_compiler</code>.
- *   <li>in the latter case, the {@link BuildConfiguration.Fragment} subclass will define the option
- *       (with an existing target, eg. <code>//third_party/somelanguage:compiler</code>), and return
- *       the name in its implementation of {@link FragmentOptions#getDefaultsLabels}.
- *   <li>On startup, the rule is wired up with <code>//tools/defaults:somelanguage_compiler</code>.
- *   <li>On starting a build, the <code>//tools/defaults</code> package is synthesized, using the
- *       values as specified on the command-line. The contents of <code>tools/defaults/BUILD</code>
- *       is ignored.
- *   <li>Hence, changes in the command line values for tools are now handled exactly as if they were
- *       changes in a BUILD file.
- *   <li>The file <code>tools/defaults/BUILD</code> must exist, so we create a package in that
- *       location.
- *   <li>The code in {@link DefaultsPackage} can dump the synthesized package as a BUILD file, so
- *       external tooling does not need to understand the intricacies of handling command-line
- *       options.
- * </ul>
- *
- * <p>For built-in rules (as opposed to genrules), late-bound labels provide an alternative method
- * of depending on command-line values. These work by declaring attribute default values to be
- * {@link LateBoundDefault} instances, whose <code>resolve(Rule rule, AttributeMap attributes,
- * FragmentT configuration)</code> method will have access to a {@link BuildConfiguration.Fragment},
- * which in turn may depend on command line flag values.
- */
-public final class DefaultsPackage {
-
-  // The template contents are broken into lines such that the resulting file has no more than 80
-  // characters per line.
-  private static final String HEADER = ""
-      + "# DO NOT EDIT THIS FILE!\n"
-      + "#\n"
-      + "# Bazel does not read this file. Instead, it internally replaces the targets in\n"
-      + "# this package with the correct packages as given on the command line.\n"
-      + "#\n"
-      + "# If these options are not given on the command line, Bazel will use the exact\n"
-      + "# same targets as given here."
-      + "\n"
-      + "package(default_visibility = ['//visibility:public'])\n";
-
-  /**
-   * The map from entries to their values.
-   */
-  private ImmutableMap<String, ImmutableSet<Label>> values;
-
-  private DefaultsPackage(BuildOptions buildOptions) {
-    values = buildOptions.getDefaultsLabels();
-  }
-
-  private String labelsToString(Set<Label> labels) {
-    StringBuilder result = new StringBuilder();
-    for (Label label : labels) {
-      if (result.length() != 0) {
-        result.append(", ");
-      }
-      result.append("'").append(label).append("'");
-    }
-    return result.toString();
-  }
-
-  /**
-   * Returns a string of the defaults package with the given settings.
-   */
-  private String getContent() {
-    Preconditions.checkState(!values.isEmpty());
-    StringBuilder result = new StringBuilder(HEADER);
-    for (Map.Entry<String, ImmutableSet<Label>> entry : values.entrySet()) {
-      result
-          .append("filegroup(name = '")
-          .append(entry.getKey().toLowerCase(Locale.US)).append("',\n")
-          .append("          srcs = [")
-          .append(labelsToString(entry.getValue())).append("])\n");
-    }
-
-    return result.toString();
-  }
-
-  /**
-   * Returns the defaults package for the default settings.
-   */
-  public static String getDefaultsPackageContent(
-      Iterable<Class<? extends FragmentOptions>> options, InvocationPolicy invocationPolicy) {
-    return getDefaultsPackageContent(BuildOptions.createDefaults(options, invocationPolicy));
-  }
-
-  /**
-   * Returns the defaults package for the given options.
-   */
-  public static String getDefaultsPackageContent(BuildOptions buildOptions) {
-    return new DefaultsPackage(buildOptions).getContent();
-  }
-
-  public static void parseAndAdd(Set<Label> labels, String optionalLabel) {
-    if (optionalLabel != null) {
-      Label label = parseOptionalLabel(optionalLabel);
-      if (label != null) {
-        labels.add(label);
-      }
-    }
-  }
-
-  public static Label parseOptionalLabel(String value) {
-    try {
-      return Label.parseAbsolute(value, ImmutableMap.of());
-    } catch (LabelSyntaxException e) {
-      // We ignore this exception here - it will cause an error message at a later time.
-      return null;
-    }
-  }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
index 60fe650..43fe429 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
@@ -29,7 +29,6 @@
 import com.google.devtools.build.lib.query2.engine.ThreadSafeOutputFormatterCallback;
 import com.google.devtools.build.lib.runtime.BlazeCommand;
 import com.google.devtools.build.lib.runtime.BlazeCommandResult;
-import com.google.devtools.build.lib.runtime.BlazeRuntime;
 import com.google.devtools.build.lib.runtime.Command;
 import com.google.devtools.build.lib.runtime.CommandEnvironment;
 import com.google.devtools.build.lib.runtime.KeepGoingOption;
@@ -62,7 +61,6 @@
 
   @Override
   public BlazeCommandResult exec(CommandEnvironment env, OptionsParsingResult options) {
-    BlazeRuntime runtime = env.getRuntime();
     if (options.getResidue().isEmpty()) {
       env.getReporter().handle(Event.error(String.format(
           "missing fetch expression. Type '%s help fetch' for syntax and help",
@@ -71,7 +69,7 @@
     }
 
     try {
-      env.setupPackageCache(options, runtime.getDefaultsPackageContent());
+      env.setupPackageCache(options);
     } catch (InterruptedException e) {
       env.getReporter().handle(Event.error("fetch interrupted"));
       return BlazeCommandResult.exitCode(ExitCode.INTERRUPTED);
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java
index 1f4cf12..6a0d558 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/SyncCommand.java
@@ -65,7 +65,7 @@
   @Override
   public BlazeCommandResult exec(CommandEnvironment env, OptionsParsingResult options) {
     try {
-      env.setupPackageCache(options, env.getRuntime().getDefaultsPackageContent());
+      env.setupPackageCache(options);
       SkyframeExecutor skyframeExecutor = env.getSkyframeExecutor();
       skyframeExecutor.injectExtraPrecomputedValues(
           ImmutableList.of(
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
index 92fa1b7..a45abf3 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
@@ -24,7 +24,6 @@
 import com.google.devtools.build.lib.analysis.BuildView;
 import com.google.devtools.build.lib.analysis.ViewCreationFailedException;
 import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.DefaultsPackage;
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.buildeventstream.BuildEventId;
 import com.google.devtools.build.lib.buildtool.PostAnalysisQueryBuildTool.PostAnalysisQueryCommandLineException;
@@ -110,7 +109,7 @@
     }
     // Sync the package manager before sending the BuildStartingEvent in runLoadingPhase()
     try (SilentCloseable c = Profiler.instance().profile("setupPackageCache")) {
-      env.setupPackageCache(request, DefaultsPackage.getDefaultsPackageContent(buildOptions));
+      env.setupPackageCache(request);
     }
 
     ExecutionTool executionTool = null;
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
index 43d9846..423a4a1 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
@@ -70,8 +70,6 @@
       ImmutableSet.of(
           // Used for select
           PathFragment.create("conditions"),
-          // dependencies that are a function of the configuration
-          PathFragment.create("tools/defaults"),
           // Visibility is labels aren't actually targets
           PathFragment.create("visibility"),
           // There is only one //external package
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
index 4384edb..d0955e6 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
@@ -27,7 +27,6 @@
 import com.google.devtools.common.options.Option;
 import com.google.devtools.common.options.OptionDocumentationCategory;
 import com.google.devtools.common.options.OptionEffectTag;
-import com.google.devtools.common.options.OptionMetadataTag;
 import com.google.devtools.common.options.OptionsBase;
 import com.google.devtools.common.options.OptionsParsingException;
 import java.util.List;
@@ -151,17 +150,6 @@
   )
   public boolean checkOutputFiles;
 
-  @Option(
-      name = "experimental_enable_tools_defaults_package",
-      defaultValue = "false",
-      documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
-      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
-      metadataTags = {OptionMetadataTag.EXPERIMENTAL},
-      help =
-          "If true, Blaze constructs an in-memory //tools/defaults package based on the command"
-              + " line options. If false, //tools/defaults is resolved as a regular package.")
-  public boolean experimentalInMemoryToolsDefaultsPackage;
-
   /**
    * A converter from strings containing comma-separated names of packages to lists of strings.
    */
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index f0a7c17..a731050 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -153,7 +153,6 @@
 
   private final ProjectFile.Provider projectFileProvider;
   @Nullable private final InvocationPolicy moduleInvocationPolicy;
-  private final String defaultsPackageContent;
   private final SubscriberExceptionHandler eventBusExceptionHandler;
   private final String productName;
   private final BuildEventArtifactUploaderFactoryMap buildEventArtifactUploaderFactoryMap;
@@ -203,8 +202,6 @@
     this.queryOutputFormatters = queryOutputFormatters;
     this.eventBusExceptionHandler = eventBusExceptionHandler;
 
-    this.defaultsPackageContent =
-        ruleClassProvider.getDefaultsPackageContent(getModuleInvocationPolicy());
     CommandNameCache.CommandNameCacheInstance.INSTANCE.setCommandNameCache(
         new CommandNameCacheImpl(getCommandMap()));
     this.productName = productName;
@@ -587,25 +584,7 @@
     }
   }
 
-  /**
-   * Returns the defaults package for the default settings. Should only be called by commands that
-   * do <i>not</i> process {@link BuildOptions}, since build options can alter the contents of the
-   * defaults package, which will not be reflected here.
-   */
-  public String getDefaultsPackageContent() {
-    return defaultsPackageContent;
-  }
-
-  /**
-   * Returns the defaults package for the given options taken from an optionsProvider.
-   */
-  public String getDefaultsPackageContent(OptionsClassProvider optionsProvider) {
-    return ruleClassProvider.getDefaultsPackageContent(optionsProvider);
-  }
-
-  /**
-   * Creates a BuildOptions class for the given options taken from an optionsProvider.
-   */
+  /** Creates a BuildOptions class for the given options taken from an optionsProvider. */
   public BuildOptions createBuildOptions(OptionsClassProvider optionsProvider) {
     return ruleClassProvider.createBuildOptions(optionsProvider);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java
index 9b0d784..7df227c 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java
@@ -23,7 +23,6 @@
 import com.google.devtools.build.lib.analysis.BlazeDirectories;
 import com.google.devtools.build.lib.analysis.SkyframePackageRootResolver;
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.DefaultsPackage;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.events.Reporter;
 import com.google.devtools.build.lib.packages.NoSuchThingException;
@@ -507,15 +506,9 @@
     }
   }
 
-  /**
-   * Initializes the package cache using the given options, and syncs the package cache. Also
-   * injects a defaults package and the skylark semantics using the options for the {@link
-   * BuildConfiguration}.
-   *
-   * @see DefaultsPackage
-   */
-  public void setupPackageCache(OptionsClassProvider options,
-      String defaultsPackageContents) throws InterruptedException, AbruptExitException {
+  /** Initializes the package cache using the given options, and syncs the package cache. */
+  public void setupPackageCache(OptionsClassProvider options)
+      throws InterruptedException, AbruptExitException {
     getSkyframeExecutor()
         .sync(
             reporter,
@@ -523,7 +516,6 @@
             options.getOptions(SkylarkSemanticsOptions.class),
             getOutputBase(),
             getWorkingDirectory(),
-            defaultsPackageContents,
             getCommandId(),
             clientEnv,
             timestampGranularityMonitor,
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
index 5e65c97..6a13f20 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
@@ -127,8 +127,7 @@
                 // In order to be able to answer configuration-specific queries, we need to set up
                 // the package path. Since info inherits all the build options, all the necessary
                 // information is available here.
-                env.setupPackageCache(
-                    optionsParsingResult, runtime.getDefaultsPackageContent(optionsParsingResult));
+                env.setupPackageCache(optionsParsingResult);
                 env.getSkyframeExecutor()
                     .setConfigurationFragmentFactories(runtime.getConfigurationFragmentFactories());
                 // TODO(bazel-team): What if there are multiple configurations? [multi-config]
@@ -232,7 +231,6 @@
             new InfoItem.JavaVirtualMachineInfoItem(),
             new InfoItem.JavaHomeInfoItem(),
             new InfoItem.CharacterEncodingInfoItem(),
-            new InfoItem.DefaultsPackageInfoItem(),
             new InfoItem.BuildLanguageInfoItem(),
             new InfoItem.DefaultPackagePathInfoItem(commandOptions));
     ImmutableMap.Builder<String, InfoItem> result = new ImmutableMap.Builder<>();
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java
index b209a5d0..c500397 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java
@@ -550,28 +550,6 @@
     }
   }
 
-  /**
-   * Info item for the default package. It is deprecated, it still works, when
-   * explicitly requested, but are not shown by default. It prints multi-line messages and thus
-   * don't play well with grep. We don't print them unless explicitly requested.
-   * @deprecated
-   */
-  @Deprecated
-  public static final class DefaultsPackageInfoItem extends InfoItem {
-    public DefaultsPackageInfoItem() {
-      super("defaults-package",
-          "Default packages used as implicit dependencies",
-          true);
-    }
-
-    @Override
-    public byte[] get(Supplier<BuildConfiguration> configurationSupplier, CommandEnvironment env)
-        throws AbruptExitException {
-      checkNotNull(env);
-      return print(env.getRuntime().getDefaultsPackageContent());
-    }
-  }
-
   private static AllowedRuleClassInfo getAllowedRuleClasses(
       Collection<RuleClass> ruleClasses, Attribute attr) {
     AllowedRuleClassInfo.Builder info = AllowedRuleClassInfo.newBuilder();
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java
index 659d6c5..ba6ac96 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java
@@ -94,7 +94,7 @@
     QueryOptions queryOptions = options.getOptions(QueryOptions.class);
 
     try {
-      env.setupPackageCache(options, runtime.getDefaultsPackageContent());
+      env.setupPackageCache(options);
     } catch (InterruptedException e) {
       env.getReporter().handle(Event.error("query interrupted"));
       return BlazeCommandResult.exitCode(ExitCode.INTERRUPTED);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index 405ef5e..88825cc 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -110,8 +110,6 @@
 
   private final IncrementalityIntent incrementalityIntent;
 
-  static final PathFragment DEFAULTS_PACKAGE_NAME = PathFragment.create("tools/defaults");
-
   public PackageFunction(
       PackageFactory packageFactory,
       CachingPackageLocator pkgLocator,
@@ -438,16 +436,9 @@
     Path buildFilePath = buildFileRootedPath.asPath();
     String replacementContents = null;
 
-    if (isDefaultsPackage(packageId) && PrecomputedValue.isInMemoryToolsDefaults(env)) {
-      replacementContents = PrecomputedValue.DEFAULTS_PACKAGE_CONTENTS.get(env);
-      if (replacementContents == null) {
-        return null;
-      }
-    } else {
-      buildFileValue = getBuildFileValue(env, buildFileRootedPath);
-      if (buildFileValue == null) {
-        return null;
-      }
+    buildFileValue = getBuildFileValue(env, buildFileRootedPath);
+    if (buildFileValue == null) {
+      return null;
     }
 
     RuleVisibility defaultVisibility = PrecomputedValue.DEFAULT_VISIBILITY.get(env);
@@ -1339,9 +1330,4 @@
       this.fileDependencies = fileDependencies;
     }
   }
-
-  public static boolean isDefaultsPackage(PackageIdentifier packageIdentifier) {
-    return packageIdentifier.getRepository().isMain()
-        && packageIdentifier.getPackageFragment().equals(DEFAULTS_PACKAGE_NAME);
-  }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
index b3496b0..a291409 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
@@ -72,11 +72,6 @@
 
     PackageIdentifier packageKey = (PackageIdentifier) skyKey.argument();
 
-    if (PackageFunction.isDefaultsPackage(packageKey)
-        && PrecomputedValue.isInMemoryToolsDefaults(env)) {
-      return PackageLookupValue.success(pkgLocator.getPathEntries().get(0), BuildFileName.BUILD);
-    }
-
     if (!packageKey.getRepository().isMain()) {
       return computeExternalPackageLookupValue(skyKey, env, packageKey);
     } else if (packageKey.equals(Label.EXTERNAL_PACKAGE_IDENTIFIER)) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java
index 937e59c..826413a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java
@@ -79,20 +79,6 @@
     return new Injected(precomputed, Suppliers.ofInstance(value));
   }
 
-  public static final Precomputed<Boolean> ENABLE_DEFAULTS_PACKAGE =
-      new Precomputed<>(Key.create("enable_default_pkg"));
-
-  // TODO(dbabkin): better to move this code to PrecomputedValueUtils.
-  // It will gone soon after removing tools/defaults
-  public static boolean isInMemoryToolsDefaults(SkyFunction.Environment env)
-      throws InterruptedException {
-    Boolean enableDefaultsPackage = PrecomputedValue.ENABLE_DEFAULTS_PACKAGE.get(env);
-    return Preconditions.checkNotNull(enableDefaultsPackage);
-  }
-
-  public static final Precomputed<String> DEFAULTS_PACKAGE_CONTENTS =
-      new Precomputed<>(Key.create("default_pkg"));
-
   public static final Precomputed<RuleVisibility> DEFAULT_VISIBILITY =
       new Precomputed<>(Key.create("default_visibility"));
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
index 86c54f3..04d21be 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
@@ -284,7 +284,6 @@
       SkylarkSemanticsOptions skylarkSemanticsOptions,
       Path outputBase,
       Path workingDirectory,
-      String defaultsPackageContents,
       UUID commandId,
       Map<String, String> clientEnv,
       TimestampGranularityMonitor tsgm,
@@ -296,8 +295,16 @@
       resetEvaluator();
       evaluatorNeedsReset = false;
     }
-    super.sync(eventHandler, packageCacheOptions, skylarkSemanticsOptions, outputBase,
-        workingDirectory, defaultsPackageContents, commandId, clientEnv, tsgm, options);
+    super.sync(
+        eventHandler,
+        packageCacheOptions,
+        skylarkSemanticsOptions,
+        outputBase,
+        workingDirectory,
+        commandId,
+        clientEnv,
+        tsgm,
+        options);
     handleDiffs(eventHandler, packageCacheOptions.checkOutputFiles, options);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 892acde..50aef61 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -852,14 +852,6 @@
   public abstract void clearAnalysisCache(
       Collection<ConfiguredTarget> topLevelTargets, Collection<AspectValue> topLevelAspects);
 
-  /**
-   * Injects the contents of the computed tools/defaults package.
-   */
-  @VisibleForTesting
-  public void setupDefaultPackage(String defaultsPackageContents) {
-    PrecomputedValue.DEFAULTS_PACKAGE_CONTENTS.set(injectable(), defaultsPackageContents);
-  }
-
   private WorkspaceStatusAction makeWorkspaceStatusAction(String workspaceName) {
     return workspaceStatusActionFactory.createWorkspaceStatusAction(
         artifactFactory.get(), WorkspaceStatusValue.BUILD_INFO_KEY, workspaceName);
@@ -1154,7 +1146,6 @@
       PathPackageLocator pkgLocator,
       PackageCacheOptions packageCacheOptions,
       SkylarkSemanticsOptions skylarkSemanticsOptions,
-      String defaultsPackageContents,
       UUID commandId,
       Map<String, String> clientEnv,
       TimestampGranularityMonitor tsgm) {
@@ -1168,14 +1159,6 @@
     setShowLoadingProgress(packageCacheOptions.showLoadingProgress);
     setDefaultVisibility(packageCacheOptions.defaultVisibility);
     setSkylarkSemantics(skylarkSemanticsOptions.toSkylarkSemantics());
-    if (packageCacheOptions.experimentalInMemoryToolsDefaultsPackage) {
-      setupDefaultPackage(defaultsPackageContents);
-      PrecomputedValue.ENABLE_DEFAULTS_PACKAGE.set(injectable(), true);
-    } else {
-      setupDefaultPackage("# //tools/defaults in-memory package is not enabled.");
-      PrecomputedValue.ENABLE_DEFAULTS_PACKAGE.set(injectable(), false);
-    }
-
     setPackageLocator(pkgLocator);
 
     syscalls.set(getPerBuildSyscallCache(packageCacheOptions.globbingThreads));
@@ -2132,7 +2115,6 @@
       SkylarkSemanticsOptions skylarkSemanticsOptions,
       Path outputBase,
       Path workingDirectory,
-      String defaultsPackageContents,
       UUID commandId,
       Map<String, String> clientEnv,
       TimestampGranularityMonitor tsgm,
@@ -2145,7 +2127,6 @@
         skylarkSemanticsOptions,
         outputBase,
         workingDirectory,
-        defaultsPackageContents,
         commandId,
         clientEnv,
         tsgm);
@@ -2157,7 +2138,6 @@
       SkylarkSemanticsOptions skylarkSemanticsOptions,
       Path outputBase,
       Path workingDirectory,
-      String defaultsPackageContents,
       UUID commandId,
       Map<String, String> clientEnv,
       TimestampGranularityMonitor tsgm)
@@ -2171,7 +2151,6 @@
             workingDirectory),
         packageCacheOptions,
         skylarkSemanticsOptions,
-        defaultsPackageContents,
         commandId,
         clientEnv,
         tsgm);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
index 9fad67e..7c85b57 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -141,7 +141,6 @@
     protected Reporter reporter = new Reporter(new EventBus());
     protected Map<SkyFunctionName, SkyFunction> extraSkyFunctions = new HashMap<>();
     List<PrecomputedValue.Injected> extraPrecomputedValues = new ArrayList<>();
-    String defaultsPackageContents = getDefaultDefaultPackageContents();
     int legacyGlobbingThreads = 1;
     int skyframeThreads = 1;
 
@@ -230,8 +229,6 @@
     protected abstract PackageLoader buildImpl();
 
     protected abstract RuleClassProvider getDefaultRuleClassProvider();
-
-    protected abstract String getDefaultDefaultPackageContents();
   }
 
   AbstractPackageLoader(Builder builder) {
@@ -250,14 +247,12 @@
         makePreinjectedDiff(
             skylarkSemantics,
             builder.pkgLocator,
-            builder.defaultsPackageContents,
             ImmutableList.copyOf(builder.extraPrecomputedValues));
   }
 
   private static ImmutableDiff makePreinjectedDiff(
       SkylarkSemantics skylarkSemantics,
       PathPackageLocator pkgLocator,
-      String defaultsPackageContents,
       ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues) {
     final Map<SkyKey, SkyValue> valuesToInject = new HashMap<>();
     Injectable injectable =
@@ -278,8 +273,6 @@
     PrecomputedValue.PATH_PACKAGE_LOCATOR.set(injectable, pkgLocator);
     PrecomputedValue.DEFAULT_VISIBILITY.set(injectable, ConstantRuleVisibility.PRIVATE);
     PrecomputedValue.SKYLARK_SEMANTICS.set(injectable, skylarkSemantics);
-    PrecomputedValue.DEFAULTS_PACKAGE_CONTENTS.set(injectable, defaultsPackageContents);
-    PrecomputedValue.ENABLE_DEFAULTS_PACKAGE.set(injectable, true);
     return new ImmutableDiff(ImmutableList.of(), valuesToInject);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
index a92d080..bb3de55 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
@@ -30,7 +30,6 @@
 import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
 import com.google.devtools.build.lib.rules.repository.RepositoryFunction;
 import com.google.devtools.build.lib.rules.repository.RepositoryLoaderFunction;
-import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
 import com.google.devtools.build.lib.skyframe.ActionEnvironmentFunction;
 import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
 import com.google.devtools.build.lib.skyframe.ClientEnvironmentFunction;
@@ -140,12 +139,6 @@
       return DEFAULT_RULE_CLASS_PROVIDER;
     }
 
-    @Override
-    protected String getDefaultDefaultPackageContents() {
-      return DEFAULT_RULE_CLASS_PROVIDER.getDefaultsPackageContent(
-          InvocationPolicy.getDefaultInstance());
-    }
-
     /**
      * Version is the string BazelPackageLoader reports in native.bazel_version to be used by
      * Skylark.
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/EnableDefaultsPackageOptionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/EnableDefaultsPackageOptionTest.java
deleted file mode 100644
index 92d149a..0000000
--- a/src/test/java/com/google/devtools/build/lib/analysis/EnableDefaultsPackageOptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2018 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.analysis;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/**
- * Test for experimental_enable_tools_defaults_package flag. TODO(dbabkin): remove after
- * //tools/defaults package gone.
- */
-@RunWith(JUnit4.class)
-public class EnableDefaultsPackageOptionTest extends BuildViewTestCase {
-
-  @Test
-  public void testEnableDefaultsPackageOptionWorks() throws Exception {
-
-    setPackageCacheOptions("--experimental_enable_tools_defaults_package=true");
-
-    ConfiguredTarget target = getConfiguredTarget("//tools/defaults:jdk");
-
-    assertThat(target.getLabel().toString()).isEqualTo("//tools/defaults:jdk");
-  }
-
-  @Test
-  public void testDisabledDefaultsPackageOptionWorks() throws Exception {
-
-    scratch.file(
-        "a/BUILD",
-        "filegroup(",
-        "  name = 'my_filegroup',",
-        "  srcs = ['//tools/defaults:jdk'],",
-        ")");
-
-    reporter.removeHandler(failFastHandler);
-    setPackageCacheOptions("--experimental_enable_tools_defaults_package=false");
-    ConfiguredTarget target = getConfiguredTarget("//a:my_filegroup");
-
-    assertThat(target).isNull();
-    assertContainsEvent(
-        "no such package 'tools/defaults': "
-            + "BUILD file not found on package path and referenced by '//a:my_filegroup'");
-  }
-
-  @Test
-  public void testFlipFlagOnFly() throws Exception {
-
-    setPackageCacheOptions("--experimental_enable_tools_defaults_package=false");
-    ConfiguredTarget defaultsJDKtarget = getConfiguredTarget("//tools/defaults:jdk");
-    assertThat(defaultsJDKtarget).isNull();
-
-    setPackageCacheOptions("--experimental_enable_tools_defaults_package=true");
-    defaultsJDKtarget = getConfiguredTarget("//tools/defaults:jdk");
-    assertThat(defaultsJDKtarget).isNotNull();
-    assertThat(defaultsJDKtarget.getLabel().toString()).isEqualTo("//tools/defaults:jdk");
-
-    setPackageCacheOptions("--experimental_enable_tools_defaults_package=false");
-    defaultsJDKtarget = getConfiguredTarget("//tools/defaults:jdk");
-    assertThat(defaultsJDKtarget).isNull();
-  }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
index 3aefeff..c834494 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
@@ -79,12 +79,6 @@
     return new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY);
   }
 
-  @Override
-  public String getDefaultsPackageContent() {
-    return createRuleClassProvider()
-        .getDefaultsPackageContent(getInvocationPolicyEnforcer().getInvocationPolicy());
-  }
-
   /**
    * This is called from test setup to create the mock directory layout needed to create the
    * configuration.
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index eb4b9cf..17d0723 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -210,8 +210,6 @@
         pkgLocator,
         packageCacheOptions,
         Options.getDefaults(SkylarkSemanticsOptions.class),
-        ruleClassProvider.getDefaultsPackageContent(
-            analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(BlazeClock.instance()));
@@ -340,8 +338,6 @@
         pathPackageLocator,
         packageCacheOptions,
         skylarkSemanticsOptions,
-        ruleClassProvider.getDefaultsPackageContent(
-            analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index 9a18168..71a6a8c 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -283,7 +283,6 @@
             BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
         packageCacheOptions,
         skylarkSemanticsOptions,
-        "",
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         tsgm);
@@ -402,7 +401,6 @@
         pkgLocator,
         packageCacheOptions,
         skylarkSemanticsOptions,
-        ruleClassProvider.getDefaultsPackageContent(optionsParser),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         tsgm);
@@ -511,11 +509,10 @@
   }
 
   /**
-   * Creates BuildView using current hostConfig/targetConfig values.
-   * Ensures that hostConfig is either identical to the targetConfig or has
-   * 'host' short name.
+   * Creates BuildView using current hostConfig/targetConfig values. Ensures that hostConfig is
+   * either identical to the targetConfig or has 'host' short name.
    */
-  protected final void createBuildView() throws Exception {
+  protected final void createBuildView() {
     Preconditions.checkNotNull(masterConfig);
     Preconditions.checkState(getHostConfiguration().equals(getTargetConfiguration())
         || getHostConfiguration().isHostConfiguration(),
@@ -523,8 +520,6 @@
         + "and does not match target configuration %s",
         getHostConfiguration(), getTargetConfiguration());
 
-    String defaultsPackageContent = ruleClassProvider.getDefaultsPackageContent(optionsParser);
-    skyframeExecutor.setupDefaultPackage(defaultsPackageContent);
     skyframeExecutor.handleConfiguredTargetChange();
 
     view = new BuildViewForTesting(directories, ruleClassProvider, skyframeExecutor, null);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
index b927391..0567ac6 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
@@ -148,8 +148,6 @@
         pkgLocator,
         packageCacheOptions,
         Options.getDefaults(SkylarkSemanticsOptions.class),
-        ruleClassProvider.getDefaultsPackageContent(
-            analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/DefaultsPackageUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/util/DefaultsPackageUtil.java
deleted file mode 100644
index 38bb434..0000000
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/DefaultsPackageUtil.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2015 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.analysis.util;
-
-import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.DefaultsPackage;
-import com.google.devtools.build.lib.analysis.config.FragmentOptions;
-import com.google.devtools.common.options.InvocationPolicyEnforcer;
-import com.google.devtools.common.options.OptionsBase;
-import com.google.devtools.common.options.OptionsParser;
-import com.google.devtools.common.options.OptionsParsingException;
-
-/**
- * Helper class for testing {@link DefaultsPackage}.
- */
-public class DefaultsPackageUtil {
-
-  public static String getDefaultsPackageForOptions(Class<? extends FragmentOptions> optionsClass,
-      String... options) throws OptionsParsingException {
-    OptionsParser parser = OptionsParser.newOptionsParser(
-        ImmutableList.<Class<? extends OptionsBase>>of(
-            BuildConfiguration.Options.class, optionsClass));
-    parser.parse(options);
-
-    InvocationPolicyEnforcer enforcer = AnalysisMock.get().getInvocationPolicyEnforcer();
-    enforcer.enforce(parser);
-
-    return DefaultsPackage.getDefaultsPackageContent(BuildOptions.of(
-        ImmutableList.<Class<? extends FragmentOptions>>of(
-            BuildConfiguration.Options.class, optionsClass), parser));
-  }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/LoadingMock.java b/src/test/java/com/google/devtools/build/lib/packages/util/LoadingMock.java
index d50b43d..bba1eb1 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/LoadingMock.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/LoadingMock.java
@@ -43,13 +43,4 @@
   public InvocationPolicyEnforcer getInvocationPolicyEnforcer() {
     return new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY);
   }
-
-  /**
-   * Returns the defaults package for the default settings using {@link #createRuleClassProvider}
-   * and applying {@link #getInvocationPolicyEnforcer}.
-   */
-  public String getDefaultsPackageContent() {
-    return createRuleClassProvider()
-        .getDefaultsPackageContent(getInvocationPolicyEnforcer().getInvocationPolicy());
-  }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java
index 85e4864..337bb2d 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java
@@ -137,7 +137,7 @@
     return ImmutableList.<EnvironmentExtension>of();
   }
 
-  protected void setUpSkyframe(RuleVisibility defaultVisibility, String defaultsPackageContents) {
+  protected void setUpSkyframe(RuleVisibility defaultVisibility) {
     PackageCacheOptions packageCacheOptions = Options.getDefaults(PackageCacheOptions.class);
     packageCacheOptions.defaultVisibility = defaultVisibility;
     packageCacheOptions.showLoadingProgress = true;
@@ -149,7 +149,6 @@
             BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
         packageCacheOptions,
         Options.getDefaults(SkylarkSemanticsOptions.class),
-        defaultsPackageContents,
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(BlazeClock.instance()));
@@ -171,7 +170,6 @@
         pkgLocator,
         packageCacheOptions,
         skylarkSemanticsOptions,
-        loadingMock.getDefaultsPackageContent(),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java
index 1bc7460..bf8acad 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java
@@ -101,7 +101,7 @@
 
   @Before
   public final void initializeParser() throws Exception {
-    setUpSkyframe(ConstantRuleVisibility.PRIVATE, loadingMock.getDefaultsPackageContent());
+    setUpSkyframe(ConstantRuleVisibility.PRIVATE);
     parser = skyframeExecutor.newTargetPatternEvaluator();
     parsingListener = new RecordingParsingListener(reporter);
   }
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
index d25e255..d8b59ee 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
@@ -123,7 +123,6 @@
         pkgLocator,
         packageCacheOptions,
         skylarkSemanticsOptions,
-        analysisMock.getDefaultsPackageContent(),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(clock));
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java
index de8e71b..8d56fed 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java
@@ -62,7 +62,7 @@
 
   @Before
   public final void initializeVisitor() throws Exception {
-    setUpSkyframe(ConstantRuleVisibility.PRIVATE, loadingMock.getDefaultsPackageContent());
+    setUpSkyframe(ConstantRuleVisibility.PRIVATE);
   }
 
   private boolean visitTransitively(Label label) throws InterruptedException {
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
index ba9e5e4..2d9ebbd 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
@@ -503,7 +503,6 @@
               BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
           packageCacheOptions,
           Options.getDefaults(SkylarkSemanticsOptions.class),
-          "",
           UUID.randomUUID(),
           ImmutableMap.<String, String>of(),
           new TimestampGranularityMonitor(BlazeClock.instance()));
@@ -594,7 +593,6 @@
               BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
           packageCacheOptions,
           Options.getDefaults(SkylarkSemanticsOptions.class),
-          "",
           UUID.randomUUID(),
           ImmutableMap.<String, String>of(),
           new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java
index 29ff98f..6a7a944 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java
@@ -800,7 +800,6 @@
           pkgLocator,
           packageCacheOptions,
           Options.getDefaults(SkylarkSemanticsOptions.class),
-          analysisMock.getDefaultsPackageContent(),
           UUID.randomUUID(),
           ImmutableMap.<String, String>of(),
           new TimestampGranularityMonitor(clock));
@@ -873,8 +872,6 @@
     }
 
     private void sync() throws InterruptedException {
-      String pkgContents = analysisMock.getDefaultsPackageContent();
-      skyframeExecutor.setupDefaultPackage(pkgContents);
       clock.advanceMillis(1);
       ModifiedFileSet.Builder builder = ModifiedFileSet.builder();
       for (Path path : changes) {
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java
index 97c4f2e2..1408a94 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java
@@ -136,7 +136,6 @@
         pkgLocator,
         packageCacheOptions,
         skylarkSemanticsOptions,
-        analysisMock.getDefaultsPackageContent(),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppOptionsTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppOptionsTest.java
deleted file mode 100644
index c34e0cf..0000000
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppOptionsTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2015 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.rules.cpp;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.devtools.build.lib.analysis.util.DefaultsPackageUtil;
-import com.google.devtools.build.lib.testutil.TestConstants;
-import com.google.devtools.common.options.OptionsParsingException;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/**
- * Tests {@link CppOptions}.
- */
-@RunWith(JUnit4.class)
-public class CppOptionsTest {
-
-  @Test
-  public void testGetDefaultsPackage() throws Exception {
-    String content = DefaultsPackageUtil.getDefaultsPackageForOptions(CppOptions.class);
-    assertThat(content).contains("filegroup(name = 'crosstool',\n"
-        + "          srcs = ['" + TestConstants.TOOLS_REPOSITORY + "//tools/cpp:toolchain'])");
-  }
-
-  @Test
-  public void testGetDefaultsPackageHostCrosstoolTop() throws OptionsParsingException {
-    String content = DefaultsPackageUtil.getDefaultsPackageForOptions(
-        CppOptions.class, "--host_crosstool_top=//some/package:crosstool");
-    assertThat(content).contains("//some/package:crosstool");
-  }
-
-  @Test
-  public void testGetDefaultsPackageGrteTop() throws OptionsParsingException {
-    String content = DefaultsPackageUtil.getDefaultsPackageForOptions(
-        CppOptions.class, "--grte_top=//some/grte:other");
-    assertThat(content).contains("//some/grte:everything");
-  }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
index 1a3dcdd..1ce0c22 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
@@ -88,7 +88,6 @@
                 BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
             packageCacheOptions,
             Options.getDefaults(SkylarkSemanticsOptions.class),
-            "",
             UUID.randomUUID(),
             ImmutableMap.<String, String>of(),
             new TimestampGranularityMonitor(BlazeClock.instance()));
@@ -320,7 +319,6 @@
                 BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
             packageCacheOptions,
             Options.getDefaults(SkylarkSemanticsOptions.class),
-            "",
             UUID.randomUUID(),
             ImmutableMap.<String, String>of(),
             tsgm);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
index 18e5ae4..56efe49 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
@@ -104,7 +104,6 @@
             BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
         Options.getDefaults(PackageCacheOptions.class),
         Options.getDefaults(SkylarkSemanticsOptions.class),
-        AnalysisMock.get().getDefaultsPackageContent(),
         UUID.randomUUID(),
         ImmutableMap.<String, String>of(),
         new TimestampGranularityMonitor(null));
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java
index bb30090..f892ae6 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java
@@ -412,7 +412,6 @@
                 BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
             packageCacheOptions,
             Options.getDefaults(SkylarkSemanticsOptions.class),
-            loadingMock.getDefaultsPackageContent(),
             UUID.randomUUID(),
             ImmutableMap.<String, String>of(),
             new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java
index fae9d22..19ee7e9 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java
@@ -237,7 +237,7 @@
 
   @Before
   public final void initializeVisitor() throws Exception {
-    setUpSkyframe(ConstantRuleVisibility.PRIVATE, loadingMock.getDefaultsPackageContent());
+    setUpSkyframe(ConstantRuleVisibility.PRIVATE);
     this.visitor = skyframeExecutor.pkgLoader();
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java
index 58107d6..0d7024d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java
@@ -170,7 +170,6 @@
                 BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
             packageCacheOptions,
             Options.getDefaults(SkylarkSemanticsOptions.class),
-            "",
             UUID.randomUUID(),
             ImmutableMap.<String, String>of(),
             new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java
index 7ffc718..a695207 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java
@@ -62,7 +62,6 @@
                 BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY),
             packageCacheOptions,
             Options.getDefaults(SkylarkSemanticsOptions.class),
-            "",
             UUID.randomUUID(),
             ImmutableMap.<String, String>of(),
             new TimestampGranularityMonitor(BlazeClock.instance()));
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java b/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java
index 39fa1f3..284f585 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java
@@ -89,18 +89,6 @@
             Iterables.transform(newlyLoadedPkg.getTargets().values(), TARGET_TO_LABEL));
     if (!targetsInPkg.equals(targetsInNewlyLoadedPkg)) {
       Sets.SetView<Label> unsatisfied = Sets.difference(targetsInPkg, targetsInNewlyLoadedPkg);
-      if (pkgId.compareTo(PackageIdentifier.createInMainRepo("tools/defaults")) == 0
-          && unsatisfied.isEmpty()) {
-        // The tools/defaults package is populated from command-line options
-        // (=configuration fragments) which the user specifies in tests using
-        // BuildViewTestCase.useConfiguration().
-        // We'd like PackageLoader to work as much as possible without duplicating the entire
-        // configuration of Bazel, so we prefer not to pass these flags to PackageLoader.
-        // As a result, the contents of tools/defaults might differ.
-        // As long as PackageLoader returns a superset of what Bazel returns, everything should load
-        // fine.
-        return;
-      }
       Sets.SetView<Label> unexpected = Sets.difference(targetsInNewlyLoadedPkg, targetsInPkg);
       throw new IllegalStateException(
           String.format(