]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/race: rebuild some .syso files to remove getauxval dependency
authorKeith Randall <khr@golang.org>
Fri, 31 Jul 2020 20:56:18 +0000 (13:56 -0700)
committerKeith Randall <khr@golang.org>
Sat, 1 Aug 2020 06:32:57 +0000 (06:32 +0000)
We can't depend on getauxval because it only exists in glibc >= 2.16.
Tsan has been updated to avoid that dependency
(https://reviews.llvm.org/D84859). This CL rebuilds the affected
.syso files, and adds a test to make sure we don't regress.

Fixes #37485

Change-Id: I891f54d28ec0d7da50a8df1adadc76dd6e7ab3e0
Reviewed-on: https://go-review.googlesource.com/c/go/+/246258
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
src/runtime/race/README
src/runtime/race/race_linux_amd64.syso
src/runtime/race/race_linux_arm64.syso
src/runtime/race/race_linux_ppc64le.syso
src/runtime/race/syso_test.go [new file with mode: 0644]

index 65378c8ca66c37d30fd1828b104c9c8d6aea9ea3..34485f0fb2e0a08c7e162932b85ba98ca892ab1f 100644 (file)
@@ -6,8 +6,8 @@ To update the .syso files use golang.org/x/build/cmd/racebuild.
 
 race_darwin_amd64.syso built with LLVM 3496d6e4bea9cb99cb382939b7e79a50a3b863a5 and Go 553e003414d3aa90cc39830ee22f08453d9f3408.
 race_freebsd_amd64.syso built with LLVM 3496d6e4bea9cb99cb382939b7e79a50a3b863a5 and Go 553e003414d3aa90cc39830ee22f08453d9f3408.
-race_linux_amd64.syso built with LLVM 3496d6e4bea9cb99cb382939b7e79a50a3b863a5 and Go 553e003414d3aa90cc39830ee22f08453d9f3408.
-race_linux_ppc64le.syso built with LLVM 3496d6e4bea9cb99cb382939b7e79a50a3b863a5 and Go 553e003414d3aa90cc39830ee22f08453d9f3408.
+race_linux_amd64.syso built with LLVM 6c75db8b4bc59eace18143ce086419d37da24746 and Go 7388956b76ce15a11346cebefcf6193db044caaf.
+race_linux_ppc64le.syso built with LLVM 6c75db8b4bc59eace18143ce086419d37da24746 and Go 7388956b76ce15a11346cebefcf6193db044caaf.
 race_netbsd_amd64.syso built with LLVM 3496d6e4bea9cb99cb382939b7e79a50a3b863a5 and Go 553e003414d3aa90cc39830ee22f08453d9f3408.
 race_windows_amd64.syso built with LLVM 3496d6e4bea9cb99cb382939b7e79a50a3b863a5 and Go 553e003414d3aa90cc39830ee22f08453d9f3408.
-race_linux_arm64.syso built with LLVM 3496d6e4bea9cb99cb382939b7e79a50a3b863a5 and Go 553e003414d3aa90cc39830ee22f08453d9f3408.
+race_linux_arm64.syso built with LLVM 6c75db8b4bc59eace18143ce086419d37da24746 and Go 7388956b76ce15a11346cebefcf6193db044caaf.
index 255b2e5c0853abcdaaca210cc7723aad84c5ea87..d31f85df56d8a86a5c124430b380bdbe6ae84158 100644 (file)
Binary files a/src/runtime/race/race_linux_amd64.syso and b/src/runtime/race/race_linux_amd64.syso differ
index f15c5995e6826c26be95d09240d5e5086254b0b6..7c74171b0f33c184c0883477c2b10789d141cee1 100644 (file)
Binary files a/src/runtime/race/race_linux_arm64.syso and b/src/runtime/race/race_linux_arm64.syso differ
index 2bf5029659b2e844c4364842c9ccd9537e026c55..a3c72bec556ea2ee90b31bc29d93422a9b15760c 100644 (file)
Binary files a/src/runtime/race/race_linux_ppc64le.syso and b/src/runtime/race/race_linux_ppc64le.syso differ
diff --git a/src/runtime/race/syso_test.go b/src/runtime/race/syso_test.go
new file mode 100644 (file)
index 0000000..e959c8d
--- /dev/null
@@ -0,0 +1,39 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !android,!js
+
+// Note: we don't run on Android because if there is any non-race test
+// file in this package, Android tries to link the .syso file into the
+// test (even when we're not in race mode), which fails. I'm not sure
+// why, but easiest to just punt - as long as a single builder runs
+// this test, we're good.
+
+package race
+
+import (
+       "bytes"
+       "os/exec"
+       "path/filepath"
+       "runtime"
+       "testing"
+)
+
+func TestIssue37485(t *testing.T) {
+       files, err := filepath.Glob("./*.syso")
+       if err != nil {
+               t.Fatalf("can't find syso files: %s", err)
+       }
+       for _, f := range files {
+               cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), "tool", "nm", f)
+               res, err := cmd.CombinedOutput()
+               if err != nil {
+                       t.Errorf("nm of %s failed: %s", f, err)
+                       continue
+               }
+               if bytes.Contains(res, []byte("getauxval")) {
+                       t.Errorf("%s contains getauxval", f)
+               }
+       }
+}