aboutsummaryrefslogtreecommitdiff
path: root/compiler_wrapper/compiler_wrapper.go
diff options
context:
space:
mode:
authorTobias Bosch <tbosch@google.com>2019-07-11 01:19:42 -0700
committerTobias Bosch <tbosch@google.com>2019-07-12 08:25:40 +0000
commit9780ea97662c429f6dcb53fb2ef90e98fe1a5f1b (patch)
tree671f3f511abcbc383b45f1fc3954bb447494e36d /compiler_wrapper/compiler_wrapper.go
parent9d60930e882d0e39b48e6dfab0bffa12f6f544ee (diff)
downloadtoolchain-utils-9780ea97662c429f6dcb53fb2ef90e98fe1a5f1b.tar.gz
Add support for calling bisect driver
Also removes forwarding to old wrapper as we now have all functionality in the new wrapper. BUG=chromium:773875 TEST=unit test, ran command for bisect driver manually in terminal. Change-Id: Icea8a20030bc72e46d6802934acd1d657f62d766 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1697929 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Tobias Bosch <tbosch@google.com>
Diffstat (limited to 'compiler_wrapper/compiler_wrapper.go')
-rw-r--r--compiler_wrapper/compiler_wrapper.go16
1 files changed, 11 insertions, 5 deletions
diff --git a/compiler_wrapper/compiler_wrapper.go b/compiler_wrapper/compiler_wrapper.go
index 8c5825e8..b0269abe 100644
--- a/compiler_wrapper/compiler_wrapper.go
+++ b/compiler_wrapper/compiler_wrapper.go
@@ -9,11 +9,7 @@ import (
func callCompiler(env env, cfg *config, inputCmd *command) int {
exitCode := 0
var compilerErr error
- if shouldForwardToOldWrapper(env, inputCmd) {
- // TODO: Once this is only checking for bisect, create a command
- // that directly calls the bisect driver in calcCompilerCommand.
- exitCode, compilerErr = forwardToOldWrapper(env, cfg, inputCmd)
- } else if cfg.oldWrapperPath != "" {
+ if cfg.oldWrapperPath != "" {
exitCode, compilerErr = callCompilerWithRunAndCompareToOldWrapper(env, cfg, inputCmd)
} else {
exitCode, compilerErr = callCompilerInternal(env, cfg, inputCmd)
@@ -75,15 +71,25 @@ func callCompilerInternal(env env, cfg *config, inputCmd *command) (exitCode int
compilerCmd = calcGccCommand(mainBuilder)
}
rusageLogfileName := getRusageLogFilename(env)
+ bisectStage := getBisectStage(env)
if shouldForceDisableWError(env) {
if rusageLogfileName != "" {
return 0, newUserErrorf("GETRUSAGE is meaningless with FORCE_DISABLE_WERROR")
}
+ if bisectStage != "" {
+ return 0, newUserErrorf("BISECT_STAGE is meaningless with FORCE_DISABLE_WERROR")
+ }
return doubleBuildWithWNoError(env, cfg, compilerCmd)
}
if rusageLogfileName != "" {
+ if bisectStage != "" {
+ return 0, newUserErrorf("BISECT_STAGE is meaningless with GETRUSAGE")
+ }
return logRusage(env, rusageLogfileName, compilerCmd)
}
+ if bisectStage != "" {
+ compilerCmd = calcBisectCommand(env, bisectStage, compilerCmd)
+ }
// Note: We return an exit code only if the underlying env is not
// really doing an exec, e.g. commandRecordingEnv.
return wrapSubprocessErrorWithSourceLoc(compilerCmd, env.exec(compilerCmd))