diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java index 2eff7c45cc..bb529e9a16 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java @@ -76,6 +76,7 @@ public class DarwinSandboxedStrategy extends SandboxStrategy { private final UUID uuid = UUID.randomUUID(); private final AtomicInteger execCounter = new AtomicInteger(); + private final String workspaceName; private DarwinSandboxedStrategy( BuildRequest buildRequest, @@ -84,20 +85,23 @@ public class DarwinSandboxedStrategy extends SandboxStrategy { boolean verboseFailures, String productName, ImmutableList<Path> confPaths, - SpawnHelpers spawnHelpers) { + SpawnHelpers spawnHelpers, + String workspaceName) { super( buildRequest, blazeDirs, verboseFailures, - buildRequest.getOptions(SandboxOptions.class)); + buildRequest.getOptions(SandboxOptions.class), + workspaceName); this.clientEnv = ImmutableMap.copyOf(clientEnv); this.blazeDirs = blazeDirs; - this.execRoot = blazeDirs.getExecRoot(); + this.execRoot = blazeDirs.getExecRoot(workspaceName); this.sandboxDebug = buildRequest.getOptions(SandboxOptions.class).sandboxDebug; this.verboseFailures = verboseFailures; this.productName = productName; this.confPaths = confPaths; this.spawnHelpers = spawnHelpers; + this.workspaceName = workspaceName; } public static DarwinSandboxedStrategy create( @@ -105,7 +109,8 @@ public class DarwinSandboxedStrategy extends SandboxStrategy { Map<String, String> clientEnv, BlazeDirectories blazeDirs, boolean verboseFailures, - String productName) + String productName, + String workspaceName) throws IOException { // On OS X, in addition to what is specified in $TMPDIR, two other temporary directories may be // written to by processes. We have to get their location by calling "getconf". @@ -125,7 +130,8 @@ public class DarwinSandboxedStrategy extends SandboxStrategy { verboseFailures, productName, writablePaths.build(), - new SpawnHelpers(blazeDirs.getExecRoot())); + new SpawnHelpers(blazeDirs.getExecRoot(workspaceName)), + workspaceName); } /** @@ -328,8 +334,8 @@ public class DarwinSandboxedStrategy extends SandboxStrategy { Path mount; if (sourceFragment.isAbsolute()) { mount = blazeDirs.getFileSystem().getPath(sourceFragment); - } else if (blazeDirs.getExecRoot().getRelative(sourceFragment).exists()) { - mount = blazeDirs.getExecRoot().getRelative(sourceFragment); + } else if (blazeDirs.getExecRoot(workspaceName).getRelative(sourceFragment).exists()) { + mount = blazeDirs.getExecRoot(workspaceName).getRelative(sourceFragment); } else { List<Path> searchPath = SearchPath.parse(blazeDirs.getFileSystem(), clientEnv.get("PATH")); |