diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java index 3f559babff..40d9623db2 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java @@ -20,6 +20,7 @@ import com.google.devtools.build.lib.shell.Command; import com.google.devtools.build.lib.shell.CommandException; import com.google.devtools.build.lib.shell.KillableObserver; import com.google.devtools.build.lib.shell.TimeoutKillableObserver; +import com.google.devtools.build.lib.util.OS; import com.google.devtools.build.lib.vfs.Path; import java.io.File; import java.io.IOException; @@ -58,6 +59,24 @@ final class DarwinSandboxRunner extends SandboxRunner { } static boolean isSupported() { + // Check osx version, only >=10.11 is supported. + // And we should check if sandbox still work when it gets 11.x + String osxVersion = OS.getVersion(); + String[] parts = osxVersion.split("\\."); + if (parts.length != 3) { + // Currently the format is 10.11.x + return false; + } + try { + int v0 = Integer.parseInt(parts[0]); + int v1 = Integer.parseInt(parts[1]); + if (v0 != 10 || v1 < 11) { + return false; + } + } catch (NumberFormatException e) { + return false; + } + List<String> args = new ArrayList<>(); args.add(SANDBOX_EXEC); args.add("-p"); |