aboutsummaryrefslogtreecommitdiff
path: root/compiler_wrapper
diff options
context:
space:
mode:
authorTobias Bosch <tbosch@google.com>2019-08-21 07:46:20 -0700
committerTobias Bosch <tbosch@google.com>2019-08-21 17:56:13 +0000
commit42d0001c95f81f1f707ae7674a2e0ed04b10da48 (patch)
treed9bb4c943d53dc74645c4d2c03449e5f9cfd03c4 /compiler_wrapper
parent6f59a66192c620b00f3ef6eec8e798e25ab6636c (diff)
downloadtoolchain-utils-42d0001c95f81f1f707ae7674a2e0ed04b10da48.tar.gz
Use a fixed tempdir for executing the old wrapper.
Needed as sometimes $TMPDIR requires shell invocation. BUG=chromium:773875 TEST=emerge dev-python/pygobject Change-Id: Ia6681b383ef2b026c4009c579190fe8736a7c4ec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1763252 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Tobias Bosch <tbosch@google.com>
Diffstat (limited to 'compiler_wrapper')
-rw-r--r--compiler_wrapper/oldwrapper.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler_wrapper/oldwrapper.go b/compiler_wrapper/oldwrapper.go
index 8ae6f05c..95d93508 100644
--- a/compiler_wrapper/oldwrapper.go
+++ b/compiler_wrapper/oldwrapper.go
@@ -20,6 +20,11 @@ import (
const compareToOldWrapperFilePattern = "old_wrapper_compare"
+// Note: We can't rely on os.TempDir as that just returns the value of $TMPDIR,
+// which some packages set incorrectly.
+// E.g. dev-python/pygobject sets it to "`pwd`/pygobject-2.18.0".
+const tempDir = "/tmp"
+
func compareToOldWrapper(env env, cfg *config, inputCmd *command, stdinBuffer []byte, newCmdResults []*commandResult, newExitCode int) error {
pythonStringEscaper := strings.NewReplacer("\n", "\\n", "'", "\\'")
@@ -200,7 +205,7 @@ func callOldShellWrapper(env env, cfg *oldWrapperConfig, inputCmd *command, stdi
// TODO: Use strings.ReplaceAll once cros sdk uses golang >= 1.12
oldWrapperContent = strings.Replace(oldWrapperContent, "$0", cfg.CmdPath, -1)
cfg.OldWrapperContent = oldWrapperContent
- mockFile, err := ioutil.TempFile("", filepattern)
+ mockFile, err := ioutil.TempFile(tempDir, filepattern)
if err != nil {
return 0, wrapErrorwithSourceLocf(err, "failed to create tempfile")
}
@@ -256,7 +261,7 @@ func callOldPythonWrapper(env env, cfg *oldWrapperConfig, inputCmd *command, std
oldWrapperContent = strings.Replace(oldWrapperContent, "__file__", "'"+cfg.WrapperPath+"'", -1)
cfg.OldWrapperContent = oldWrapperContent
- mockFile, err := ioutil.TempFile("", filepattern)
+ mockFile, err := ioutil.TempFile(tempDir, filepattern)
if err != nil {
return 0, wrapErrorwithSourceLocf(err, "failed to create tempfile")
}