Android wrapper: Add support for --gomacc-path.
This is used by Android. To keep the wrappers in sync,
we also support it on ChromeOS.
BUG=chromium:773875
TEST=golden tests and comparison against old andorid wrapper.
Change-Id: I02d7456ead1c94327eb6810aeef4d106596518ec
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1831789
Reviewed-by: George Burgess <gbiv@chromium.org>
Tested-by: Tobias Bosch <tbosch@google.com>
diff --git a/compiler_wrapper/compiler_wrapper.go b/compiler_wrapper/compiler_wrapper.go
index 899a85c..09ef41d 100644
--- a/compiler_wrapper/compiler_wrapper.go
+++ b/compiler_wrapper/compiler_wrapper.go
@@ -85,7 +85,9 @@
return 0, err
}
}
- processGomaCCacheFlags(sysroot, allowCCache, mainBuilder)
+ if err := processGomaCCacheFlags(sysroot, allowCCache, mainBuilder); err != nil {
+ return 0, err
+ }
compilerCmd = mainBuilder.build()
} else {
if clangSyntax {
@@ -94,10 +96,16 @@
if err != nil {
return 0, err
}
- gccCmd := calcGccCommand(mainBuilder)
+ gccCmd, err := calcGccCommand(mainBuilder)
+ if err != nil {
+ return 0, err
+ }
return checkClangSyntax(env, clangCmd, gccCmd)
}
- compilerCmd = calcGccCommand(mainBuilder)
+ compilerCmd, err = calcGccCommand(mainBuilder)
+ if err != nil {
+ return 0, err
+ }
}
rusageLogfileName := getRusageLogFilename(env)
bisectStage := getBisectStage(env)
@@ -142,11 +150,13 @@
if err != nil {
return nil, err
}
- processGomaCCacheFlags(sysroot, allowCCache, builder)
+ if err := processGomaCCacheFlags(sysroot, allowCCache, builder); err != nil {
+ return nil, err
+ }
return builder.build(), nil
}
-func calcGccCommand(builder *commandBuilder) *command {
+func calcGccCommand(builder *commandBuilder) (*command, error) {
sysroot := ""
if !builder.cfg.isHostWrapper {
sysroot = processSysrootFlag(builder)
@@ -158,9 +168,11 @@
processGccFlags(builder)
if !builder.cfg.isHostWrapper {
allowCCache := true
- processGomaCCacheFlags(sysroot, allowCCache, builder)
+ if err := processGomaCCacheFlags(sysroot, allowCCache, builder); err != nil {
+ return nil, err
+ }
}
- return builder.build()
+ return builder.build(), nil
}
func calcCommonPreUserArgs(builder *commandBuilder) {
@@ -176,14 +188,18 @@
}
}
-func processGomaCCacheFlags(sysroot string, allowCCache bool, builder *commandBuilder) {
+func processGomaCCacheFlags(sysroot string, allowCCache bool, builder *commandBuilder) (err error) {
gomaccUsed := false
if !builder.cfg.isHostWrapper {
- gomaccUsed = processGomaCccFlags(builder)
+ gomaccUsed, err = processGomaCccFlags(builder)
+ if err != nil {
+ return err
+ }
}
if !gomaccUsed && allowCCache {
processCCacheFlag(sysroot, builder)
}
+ return nil
}
func getAbsWrapperPath(env env, wrapperCmd *command) (string, error) {