]> Cypherpunks.ru repositories - gostls13.git/commitdiff
[release-branch.go1.21] cmd/cgo/internal/testsanitizers: disable location checking...
authorMichael Anthony Knyszek <mknyszek@google.com>
Thu, 8 Feb 2024 15:59:07 +0000 (15:59 +0000)
committerThan McIntosh <thanm@google.com>
Fri, 16 Feb 2024 15:51:02 +0000 (15:51 +0000)
Pending a resolution to #65606, this CL marks clang's ASAN runtime as
unable to symbolize stack traces to unblock the LUCI clang builder.

For #65606.
For #65469.
Fixes #65640.

Change-Id: I649773085aff30e5703e7f7ac2c72a0430a015c2
Cq-Include-Trybots: luci.golang.try:go1.21-linux-amd64-clang15
Reviewed-on: https://go-review.googlesource.com/c/go/+/562675
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit d94ab597af9b3f8e8ba371023314d80f6b3be5a5)
Reviewed-on: https://go-review.googlesource.com/c/go/+/562999

src/cmd/cgo/internal/testsanitizers/cc_test.go

index 6eb5a64f9b237a1d167677b29c76869b5f77c902..4ee51ddbccf9d815eb686f37343a194ba386cfa0 100644 (file)
@@ -16,8 +16,10 @@ import (
        "encoding/json"
        "errors"
        "fmt"
+       "internal/testenv"
        "os"
        "os/exec"
+       "os/user"
        "path/filepath"
        "regexp"
        "strconv"
@@ -266,12 +268,28 @@ func compilerSupportsLocation() bool {
        case "gcc":
                return compiler.major >= 10
        case "clang":
+               // TODO(65606): The clang toolchain on the LUCI builders is not built against
+               // zlib, the ASAN runtime can't actually symbolize its own stack trace. Once
+               // this is resolved, one way or another, switch this back to 'true'. We still
+               // have coverage from the 'gcc' case above.
+               if inLUCIBuild() {
+                       return false
+               }
                return true
        default:
                return false
        }
 }
 
+// inLUCIBuild returns true if we're currently executing in a LUCI build.
+func inLUCIBuild() bool {
+       u, err := user.Current()
+       if err != nil {
+               return false
+       }
+       return testenv.Builder() != "" && u.Username == "swarming"
+}
+
 // compilerRequiredTsanVersion reports whether the compiler is the version required by Tsan.
 // Only restrictions for ppc64le are known; otherwise return true.
 func compilerRequiredTsanVersion(goos, goarch string) bool {