Unverified Commit a6e347fb authored by Uri Baghin's avatar Uri Baghin Committed by GitHub
Browse files

Merge pull request #186106 from layus/bazel-update

bazel_6: init with a WIP implem
parents 0d98ba25 b4f4f493
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
index 6fff2af..7e2877e 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider {
       Map<String, String> env, BinTools binTools, String fallbackTmpDir) {
     ImmutableMap.Builder<String, String> result = ImmutableMap.builder();
     result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
+
+    // In case we are running on NixOS.
+    // If bash is called with an unset PATH on this platform,
+    // it will set it to /no-such-path and default tools will be missings.
+    // See, https://github.com/NixOS/nixpkgs/issues/94222
+    // So we ensure that minimal dependencies are present.
+    if (!env.containsKey("PATH")){
+        result.put("PATH", "@actionsPathPatch@");
+    }
+ 
     String p = clientEnv.get("TMPDIR");
     if (Strings.isNullOrEmpty(p)) {
       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
index 95642767c6..39d3c62461 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
@@ -74,6 +74,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider {

     ImmutableMap.Builder<String, String> newEnvBuilder = ImmutableMap.builder();
     newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
+
+    // In case we are running on NixOS.
+    // If bash is called with an unset PATH on this platform,
+    // it will set it to /no-such-path and default tools will be missings.
+    // See, https://github.com/NixOS/nixpkgs/issues/94222
+    // So we ensure that minimal dependencies are present.
+    if (!env.containsKey("PATH")){
+      newEnvBuilder.put("PATH", "@actionsPathPatch@");
+    }
+
     String p = clientEnv.get("TMPDIR");
     if (Strings.isNullOrEmpty(p)) {
       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
+668 −0

File added.

Preview size limit exceeded, changes collapsed.

+33 −0
Original line number Diff line number Diff line
diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
--- a/tools/jdk/BUILD.tools
+++ b/tools/jdk/BUILD.tools
@@ -3,6 +3,7 @@ load(
     "DEFAULT_TOOLCHAIN_CONFIGURATION",
     "PREBUILT_TOOLCHAIN_CONFIGURATION",
     "VANILLA_TOOLCHAIN_CONFIGURATION",
+    "NONPREBUILT_TOOLCHAIN_CONFIGURATION",
     "bootclasspath",
     "default_java_toolchain",
     "java_runtime_files",
@@ -321,6 +322,21 @@ alias(
     actual = ":toolchain",
 )
 
+default_java_toolchain(
+  name = "nonprebuilt_toolchain",
+  configuration = NONPREBUILT_TOOLCHAIN_CONFIGURATION,
+  java_runtime = "@local_jdk//:jdk",
+)
+
+default_java_toolchain(
+  name = "nonprebuilt_toolchain_java11",
+  configuration = NONPREBUILT_TOOLCHAIN_CONFIGURATION,
+  java_runtime = "@local_jdk//:jdk",
+  source_version = "11",
+  target_version = "11",
+)
+
+
 RELEASES = (8, 9, 10, 11)
 
 [
+40 −0
Original line number Diff line number Diff line
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
index 25fbdcac9d..49616d37df 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
@@ -568,22 +568,7 @@ public final class RepositoryDelegatorFunction implements SkyFunction {
       String content;
       try {
         content = FileSystemUtils.readContent(markerPath, StandardCharsets.UTF_8);
-        String markerRuleKey = readMarkerFile(content, markerData);
-        boolean verified = false;
-        if (Preconditions.checkNotNull(ruleKey).equals(markerRuleKey)) {
-          verified = handler.verifyMarkerData(rule, markerData, env);
-          if (env.valuesMissing()) {
-            return null;
-          }
-        }
-
-        if (verified) {
-          return new Fingerprint().addString(content).digestAndReset();
-        } else {
-          // So that we are in a consistent state if something happens while fetching the repository
-          markerPath.delete();
-          return null;
-        }
+        return new Fingerprint().addString(content).digestAndReset();
       } catch (IOException e) {
         throw new RepositoryFunctionException(e, Transience.TRANSIENT);
       }
diff --git a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
index 1a45b8a3a2..a6b73213f6 100644
--- a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
@@ -152,7 +152,6 @@ public class JavaSubprocessFactory implements SubprocessFactory {
     ProcessBuilder builder = new ProcessBuilder();
     builder.command(params.getArgv());
     if (params.getEnv() != null) {
-      builder.environment().clear();
       builder.environment().putAll(params.getEnv());
     }
 
+42 −0
Original line number Diff line number Diff line
diff --git a/tools/osx/BUILD b/tools/osx/BUILD
index 990afe3e8c..cd5b7b1b7a 100644
--- a/tools/osx/BUILD
+++ b/tools/osx/BUILD
@@ -28,8 +28,8 @@ exports_files([
 ])
 
 DARWIN_XCODE_LOCATOR_COMPILE_COMMAND = """
-  /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -fobjc-arc -framework CoreServices \
-      -framework Foundation -arch arm64 -arch x86_64 -Wl,-no_adhoc_codesign -Wl,-no_uuid -o $@ $< && \
+  /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -framework CoreServices \
+      -framework Foundation -arch @multiBinPatch@ -Wl,-no_uuid -o $@ $< && \
   env -i codesign --identifier $@ --force --sign - $@
 """
 
diff --git a/tools/osx/xcode_configure.bzl b/tools/osx/xcode_configure.bzl
index 2b819f07ec..a98ce37673 100644
--- a/tools/osx/xcode_configure.bzl
+++ b/tools/osx/xcode_configure.bzl
@@ -127,7 +127,6 @@ def run_xcode_locator(repository_ctx, xcode_locator_src_label):
         "macosx",
         "clang",
         "-mmacosx-version-min=10.9",
-        "-fobjc-arc",
         "-framework",
         "CoreServices",
         "-framework",
diff --git a/tools/osx/xcode_locator.m b/tools/osx/xcode_locator.m
index ed2ef87453..e0ce6dbdd1 100644
--- a/tools/osx/xcode_locator.m
+++ b/tools/osx/xcode_locator.m
@@ -21,10 +21,6 @@
 // 6,6.4,6.4.1 = 6.4.1
 // 6.3,6.3.0 = 6.3
 
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
 #import <CoreServices/CoreServices.h>
 #import <Foundation/Foundation.h>
 
Loading