Skylark: native module is updated.

--
MOS_MIGRATED_REVID=89483786
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index fc2b379..b7ef184 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -909,6 +909,10 @@
       return self();
     }
 
+    MakeEnvironment.Builder getMakeEnvironment() {
+      return makeEnv;
+    }
+
     /**
      * Sets the default visibility for this package. Called at most once per
      * package from PackageFactory.
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index df3c002..353b23e 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -139,8 +139,7 @@
     /**
      * Update the global environment with the identifiers this extension contributes.
      */
-    void update(Environment environment, MakeEnvironment.Builder pkgMakeEnv,
-        Label buildFileLabel);
+    void update(Environment environment, Label buildFileLabel);
 
     /**
      * Returns the extra functions needed to be added to the Skylark native module.
@@ -1091,6 +1090,13 @@
     public Label getLabel() {
       return pkgBuilder.getBuildFileLabel();
     }
+
+    /**
+     * Returns the MakeEnvironment Builder of this Package.
+     */
+    public MakeEnvironment.Builder getMakeEnvironment() {
+      return pkgBuilder.getMakeEnvironment();
+    }
   }
 
   /**
@@ -1110,7 +1116,7 @@
   }
 
   private void buildPkgEnv(Environment pkgEnv, String packageName,
-      MakeEnvironment.Builder pkgMakeEnv, PackageContext context, RuleFactory ruleFactory) {
+      PackageContext context, RuleFactory ruleFactory) {
     pkgEnv.update("distribs", newDistribsFunction(context));
     pkgEnv.update("glob", newGlobFunction(context, /*async=*/false));
     pkgEnv.update("mocksubinclude", newMockSubincludeFunction(context));
@@ -1129,7 +1135,7 @@
     }
 
     for (EnvironmentExtension extension : environmentExtensions) {
-      extension.update(pkgEnv, pkgMakeEnv, context.pkgBuilder.getBuildFileLabel());
+      extension.update(pkgEnv, context.pkgBuilder.getBuildFileLabel());
     }
   }
 
@@ -1178,7 +1184,7 @@
 
     // Stuff that closes over the package context:`
     PackageContext context = new PackageContext(pkgBuilder, globber, eventHandler);
-    buildPkgEnv(pkgEnv, packageId.toString(), pkgMakeEnv, context, ruleFactory);
+    buildPkgEnv(pkgEnv, packageId.toString(), context, ruleFactory);
 
     if (containsError) {
       pkgBuilder.setContainsErrors();
@@ -1242,7 +1248,7 @@
 
     // Stuff that closes over the package context:
     PackageContext context = new PackageContext(pkgBuilder, globber, NullEventHandler.INSTANCE);
-    buildPkgEnv(pkgEnv, packageId.toString(), pkgMakeEnv, context, ruleFactory);
+    buildPkgEnv(pkgEnv, packageId.toString(), context, ruleFactory);
     pkgEnv.update("glob", newGlobFunction(context, /*async=*/true));
     // The Fileset function is heavyweight in that it can run glob(). Avoid this during the
     // preloading phase.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
index 826d9f5..b4af019 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
@@ -115,7 +115,7 @@
 
   private final ImmutableMap<Artifact, FilesToRunProvider> executableRunfilesMap;
 
-  private final Map<String, String> makeVariables;
+  private final ImmutableMap<String, String> makeVariables;
 
   /**
    * In native code, private values start with $.
@@ -393,7 +393,7 @@
 
   @SkylarkCallable(structField = true,
       doc = "Dictionary (String to String) of configuration variables")
-  public Map<String, String> var() {
+  public ImmutableMap<String, String> var() {
     return makeVariables;
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
index dbd84e7..005b528 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
@@ -27,7 +27,6 @@
 import com.google.devtools.build.lib.analysis.WorkspaceStatusAction;
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
 import com.google.devtools.build.lib.exec.OutputService;
-import com.google.devtools.build.lib.packages.MakeEnvironment;
 import com.google.devtools.build.lib.packages.NoSuchThingException;
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.PackageFactory.PackageArgument;
@@ -352,9 +351,7 @@
   public PackageFactory.EnvironmentExtension getPackageEnvironmentExtension() {
     return new PackageFactory.EnvironmentExtension() {
       @Override
-      public void update(
-          Environment environment, MakeEnvironment.Builder pkgMakeEnv, Label buildFileLabel) {
-      }
+      public void update(Environment environment, Label buildFileLabel) {}
 
       @Override
       public Iterable<PackageArgument<?>> getPackageArguments() {