aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/dist
AgeCommit message (Collapse)Author
2025-06-23cmd/dist: test encoding/json/... with GOEXPERIMENT=jsonv2Joe Tsai
This also updates wasip1_wasm to use a 8MiB stack, which is the same stack size as what is used by go_js_wasm_exec. The increase of stack size is necessary because the jsonv2 tests exercise that the jsonv2 and jsontext packages support a hard limit of a maximum JSON nesting depth of 10000. However, even with a depth limit of 10000, this still exceeds the previously specified maximum stack size of 1 MiB. For use of JSON with untrusted inputs in WASM, we really need to support #56733 as there is no right answer for the default max depth limit to use since the max wasm stack size is determined on a per-system basis. Updates #71845 Change-Id: I3b32c58cc9f594a5c59bb3e4b20f5e86d85d8209 Reviewed-on: https://go-review.googlesource.com/c/go/+/683575 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com> Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-06-16cmd/dist: always include variant in package namesMichael Anthony Knyszek
Our attempt to evenly distribute tests across shards struggles a bit because certain long-running targets are very difficult to distinguish in ResultDB, namely racebench and the test directory tests. These are the only tests where the JSON output from dist omits the variant from the package, making it impossible to distinguish them in the test result data. My current suspicion is that this is preventing the load balancing from being effective for the race builders in particular, though I worry the longtest builders have a similar situation with the test directory tests. For #65814. Change-Id: I5804c2af092ff9aa4a3f0f6897b4a57c4628f837 Reviewed-on: https://go-review.googlesource.com/c/go/+/681955 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Bypass: Michael Knyszek <mknyszek@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2025-06-10cmd/dist: only install necessary tools when doing local testMichael Matloob
Instead of installing all of cmd, install only the tools that cmd/dist would normally install. Also, remove the addition of the buildid tool to the list of commands in the toolchain in debug mode. The uses of buildid were removed in CL 451360. For #71867 Change-Id: I062909d23c18294aa23ea43b9f7eeb69bfa80c8c Reviewed-on: https://go-review.googlesource.com/c/go/+/680475 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Michael Matloob <matloob@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Matloob <matloob@google.com>
2025-06-03cmd/dist: don't install tools that won't be shipped in distributionMichael Matloob
We shouldn't be installing these tools because we will remove them in distpack. Installing the tools will also prevent us from testing what happens when the tools are missing. The changes below this on the stack, CL 677775 (cmd/doc: build cmd/doc directly into the go command) and CL 677636 (cmd/go/internal/cfg: fix GOROOT setting when forcing host config) are needed for this change to pass tests. The doc change is being done so we preserve the properties in the tests that doc can be invoked without doing a build. It's not strictly necessary (we could just remove the tests) but it's nice to have. The GOROOT setting is a significant bug in switching the configuration to host mode: the value of GOROOT wasn't being reset, which caused issues for go commands built with trimpath, because runtime.GOROOT wouldn't have the correct goroot value. For #71867 Change-Id: I4181711ba117066b7d62d7d013ad4b186871cfb7 Reviewed-on: https://go-review.googlesource.com/c/go/+/677558 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Michael Matloob <matloob@google.com>
2025-05-20cmd/dist, internal/platform: enable internal linking feature and test on loong64limeidan
Change-Id: Ifea676e9eb44281465832fc4050f6286e50f4543 Reviewed-on: https://go-review.googlesource.com/c/go/+/533717 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: abner chenc <chenguoqi@loongson.cn> Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn> Reviewed-by: Qiqi Huang <huangqiqi@loongson.cn>
2025-05-20cmd/dist: pass GO_GCFLAGS to cpuN runtime testskhr@golang.org
We want gcflags, which control builder type (e.g. noopt) to be used for these tests also. Should fix noopt and maybe other builders. Change-Id: Iad34beab51714f0c38989ec0fc8778cf79087f72 Reviewed-on: https://go-review.googlesource.com/c/go/+/674455 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2025-05-08cmd/go: fix incorrect determining default value of CGO_ENABLEDqiulaidongfeng
The default value is the value obtained when no environment variables are set and go env -w is not used. In the past, we used the current value (may be modified by an environment variable to a non-default value), error was used as the default value. For #69994 Change-Id: Iead3a6cacd04dc51a094ffb9f7bb7553320fcd78 Reviewed-on: https://go-review.googlesource.com/c/go/+/621995 Reviewed-by: Michael Matloob <matloob@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Matloob <matloob@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-05-07cmd,runtime: enable race detector on loong64Guoqi Chen
The race feature depends on llvm. And support for building the tsan library on linux/loong64 has been added in this patch [1], which has been merged into the branch main and has landed in llvm18. The support for linux/loong64 in racebuild has been implemented in CL 655775, now racebuild can successfully build race_linux_loong64.syso [2]. [1]: https://github.com/llvm/llvm-project/pull/72819 [2]: racebuild -platforms linux/loong64 -cherrypick 'refs/changes/16/543316/10' \ -rev 83fe85115da9dc25fa270d2ea8140113c8d49670 \ -goroot /home/golang/src/go Co-authored-by: Xiaolin Zhao <zhaoxiaolin@loongson.cn> Change-Id: If389318215476890295ed771297c6c088cfc84b3 Reviewed-on: https://go-review.googlesource.com/c/go/+/543316 Reviewed-by: Qiqi Huang <huangqiqi@loongson.cn> Reviewed-by: Junyang Shao <shaojunyang@google.com> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Meidan Li <limeidan@loongson.cn> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com> Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
2025-04-30cmd/dist: move "devel" substring in git-inferred development versionDmitri Shuralyov
Keep the property that the "devel" substring is always present in these development versions of Go, but also gain the property that it's viable to use functions in the go/version package such as Lang, Compare, and get the expected results without needing to trim the "devel " prefix. For #73369. For #41116. Fixes #73372. Change-Id: Ieea4692e8c6cf0135e010f49f85300f6b038d6b1 Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/668015 Reviewed-by: Funda Secgin <fundasecgin30@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com>
2025-04-25cmd/dist: add "devel" substring check to isRelease computationDmitri Shuralyov
Non-release versions that are built from source without a VERSION file specifying any particular version end up with a development version like "devel go1.25-67e0681aef Thu Apr 24 12:17:27 2025 -0700". Right now those versions are correctly determined to be non-release because they don't have a "go" prefix, instead they have a "devel " prefix. In preparation of being able to move the "devel" substring, add a check that said substring isn't present anywhere, since it is certain not to be included in any released Go version we publish at https://go.dev/dl/. For #73372. Change-Id: Ia3e0d03b5723d4034d6270c3a2224f8dfae380e9 Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/667955 Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Michael Pratt <mpratt@google.com>
2025-04-16all: use strings.ReplaceAll where applicableMarcel Meyer
``` find . \ -not -path './.git/*' \ -not -path './test/*' \ -not -path './src/cmd/vendor/*' \ -not -wholename './src/strings/example_test.go' \ -type f \ -exec \ sed -i -E 's/strings\.Replace\((.+), -1\)/strings\.ReplaceAll\(\1\)/g' {} \; ``` Change-Id: I59e2e91b3654c41a32f17dd91ec56f250198f0d6 GitHub-Last-Rev: 0868b1eccc945ca62a5ed0e56a4054994d4bd659 GitHub-Pull-Request: golang/go#73370 Reviewed-on: https://go-review.googlesource.com/c/go/+/665395 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Robert Griesemer <gri@google.com>
2025-03-20all: use exec.Command.String in test logsqmuntal
There is no need to manually construct a human-friendly string for a exec.Command. The String method does that for us. Change-Id: Iff1033478000bade9cbdc079f6143a7690374258 Reviewed-on: https://go-review.googlesource.com/c/go/+/659475 Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-03-11runtime/internal: clean up completelyJes Cok
We've been slowly moving packages from runtime/internal to internal/runtime. For now, runtime/internal only has test packages. It's a good chance to clean up the references to runtime/internal in the toolchain. For #65355. Change-Id: Ie6f9091a44511d0db9946ea6de7a78d3afe9f063 GitHub-Last-Rev: fad32e2e81d11508e734c3c3d3b0c1da583f89f5 GitHub-Pull-Request: golang/go#72137 Reviewed-on: https://go-review.googlesource.com/c/go/+/655515 Reviewed-by: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-02-19all: implement plugin build mode for riscv64Meng Zhuo
Change-Id: I8d7bbeebbf4a46f2fd8d630b1edbaf79b8ffccc5 Reviewed-on: https://go-review.googlesource.com/c/go/+/420114 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> Reviewed-by: Joel Sing <joel@sing.id.au> TryBot-Bypass: Joel Sing <joel@sing.id.au>
2025-02-14cmd/dist: use slices.Indexqiulaidongfeng
Change-Id: Ifcab176faa2ac55e60576cf6acd96a18d0e860ab Reviewed-on: https://go-review.googlesource.com/c/go/+/648859 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ian Lance Taylor <iant@google.com>
2025-02-13cmd/dist: test GOFIPS140=latest rather than just the GODEBUGFilippo Valsorda
GOFIPS140=latest turns on the GODEBUG by default, and it's otherwise untested. Change-Id: I6a6a4656ff7ad313ce2c61ee4144ad2858bd148c Reviewed-on: https://go-review.googlesource.com/c/go/+/648819 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Filippo Valsorda <filippo@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Daniel McCarney <daniel@binaryparadox.net> Reviewed-by: Roland Shoemaker <roland@golang.org>
2025-02-12cmd/dist: correct gccheckmark test nameCherry Mui
The test actually runs with gccheckmark=1, not gcstoptheworld=2. Make the name match. Change-Id: If38822a3f1ef65bc92fe47b375381df49a684c1d Reviewed-on: https://go-review.googlesource.com/c/go/+/648755 Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-02-03all: use slices.Contains to simplify codecuishuang
Change-Id: I9ef075bbb0e3c65f3c2a9d49e599ef50b18aa9be Reviewed-on: https://go-review.googlesource.com/c/go/+/639535 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
2025-02-03runtime: fix GODEBUG=gccheckmark=1 and add smoke testMichael Anthony Knyszek
This change fixes GODEBUG=gccheckmark=1 which seems to have bit-rotted. Because the root jobs weren't being reset, it wasn't doing anything. Then, it turned out that checkmark mode would queue up noscan objects in workbufs, which caused it to fail. Then it turned out checkmark mode was broken with user arenas, since their heap arenas are not registered anywhere. Then, it turned out that checkmark mode could just not run properly if the goroutine's preemption flag was set (since sched.gcwaiting is true during the STW). And lastly, it turned out that async preemption could cause erroneous checkmark failures. This change fixes all these issues and adds a simple smoke test to dist to run the runtime tests under gccheckmark, which exercises all of these issues. Fixes #69074. Fixes #69377. Fixes #69376. Change-Id: Iaa0bb7b9e63ed4ba34d222b47510d6292ce168bc Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/608915 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Knyszek <mknyszek@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org>
2025-01-03crypto/internal/fips140: mark OpenBSD unsupportedFilippo Valsorda
Since OpenBSD 7.3, external linking uses -fexecute-only, which breaks the integrity check. Since we are not validating on OpenBSD anyway, mark it as unsupported at least for now. Fixes #70880 Change-Id: I6a6a4656b6c7a97c0962b4158d920f9e6b19678e Reviewed-on: https://go-review.googlesource.com/c/go/+/639337 Auto-Submit: Filippo Valsorda <filippo@golang.org> Reviewed-by: Daniel McCarney <daniel@binaryparadox.net> Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Joel Sing <joel@sing.id.au> Reviewed-by: صادق <sadq04724@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-01-03crypto/internal/fips140: add SupportedFilippo Valsorda
Move the logic duplicated in multiple places to a central function. Change-Id: I6a6a4656469c91dd62b0be716ec8367358f4a3e1 Reviewed-on: https://go-review.googlesource.com/c/go/+/639336 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Filippo Valsorda <filippo@golang.org> Reviewed-by: Daniel McCarney <daniel@binaryparadox.net> Reviewed-by: Roland Shoemaker <roland@golang.org>
2024-12-18cmd/dist: skip fips140test in exe mode on AndroidCherry Mui
Android does not support non-PIE linking. Skip the test. Change-Id: I53071538c82f1e1f96eed1a2619f92eacd18d263 Reviewed-on: https://go-review.googlesource.com/c/go/+/637495 Run-TryBot: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
2024-11-22cmd/dist: don't test FIPS when ASAN is onDmitri Shuralyov
CL 627603 added a clear error that FIPS+ASAN doesn't work, and disabled a test in check_test.go. The :gofips140 test variants in cmd/dist need to be disabled as well. Remove a return after testing.T.Skipf since it's unreachable. For #70321. Fixes #70496. Change-Id: Ia53830db1260a817aff1a82cbd91b725e0791437 Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-asan-clang15 Reviewed-on: https://go-review.googlesource.com/c/go/+/631095 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2024-11-22crypto/tls: test with FIPS 140-3 TLS modeDaniel McCarney
For tests that are interested in testing the difference between TLS in FIPS 140-3 required mode or otherwise two new helpers are introduced, runWithFIPSEnabled and runWithFIPSDisabled. They take care of forcing the correct TLS FIPS 140-3 state regardless of the overal GODEBUG=fips state, and restoring it afterwards. For the tests that use features or test data not appropriate for TLS in FIPS 140-3 required mode we add skips. For some tests we can make them appropriate for both TLS FIPS 140-3 required or not by tweaking some parameters that weren't important to the subject under test, but would otherwise preclude TLS FIPS 140-3 required mode (e.g. because they used TLS 1.0 when the test could use TLS 1.2 instead). For others, switching test certificates to a RSA 2048 hierarchy is sufficient. We avoid regenerating the existing RSA 1024 certs as 2048 since it would invalidate recorded static flow data. Tests that rely on static message flows (primarily the client and server handshake) tests are skipped due to FIPS mode being non-deterministic and inappropriate for this style of testing. Change-Id: I311f3828dac890bb3ff8ebda6ed73d50f0797110 Reviewed-on: https://go-review.googlesource.com/c/go/+/629736 Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-by: Filippo Valsorda <filippo@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-11-21cmd/dist: skip FIPS 140-3 testingDaniel McCarney
This will be re-enabled by an in-progress CR. For now, ignore this test process to prevent build breakage. Change-Id: Ica1cb1c4f9844164ab32767ce2a499021d40b997 Reviewed-on: https://go-review.googlesource.com/c/go/+/630237 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Filippo Valsorda <filippo@golang.org> Auto-Submit: Filippo Valsorda <filippo@golang.org>
2024-11-21cmd/go: fix -changed don`t print when GOFIPS140 is non-defaultqiulaidongfeng
See https://github.com/golang/go/issues/70200#issuecomment-2468562595, GOFIPS140 value when building the toolchain (off when not set) is the default value for GOFIPS140, it is buildcfg.defaultGOFIPS140, export as buildcfg.DefaultGOFIPS140 that can be used in the cmd/go. For #70200 Change-Id: I5a4873a718eeefda8e65bfab51d9d3d5ad2c21b6 Reviewed-on: https://go-review.googlesource.com/c/go/+/629996 Reviewed-by: Michael Matloob <matloob@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Filippo Valsorda <filippo@golang.org>
2024-11-21cmd/dist: vet non-test packages in short modeRuss Cox
Pass all packages to go test, even if they don't have test files, so that go test can still run vet. I just got burned by a vet error in a package without a test showing up when I added an (unrelated) test. There are not enough packages without tests to be worth the "savings" of not letting the go command vet those packages. For #60463. Change-Id: Ib9258655151144dce6a51deeae73d651aa46cb2c Reviewed-on: https://go-review.googlesource.com/c/go/+/630015 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-11-21cmd/dist: adjust FIPS 140 testsRuss Cox
An earlier CL moved the actual test from crypto/internal/fips/check to crypto/internal/fipstest (now crypto/internal/fips140test), so this cmd/dist check has been doing nothing for a little while. Fix it to do what it intends. Also run the actual crypto package tests in FIPS mode in long mode. Change-Id: Iea8113376b95ec068a459cb8f3d0e77d3e2340f6 Reviewed-on: https://go-review.googlesource.com/c/go/+/630116 Reviewed-by: Filippo Valsorda <filippo@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-11-20all: rename crypto/internal/fips to crypto/internal/fips140Russ Cox
Sometimes we've used the 140 suffix (GOFIPS140, crypto/fips140) and sometimes not (crypto/internal/fips, cmd/go/internal/fips). Use it always, to avoid having to remember which is which. Also, there are other FIPS standards, like AES (FIPS 197), SHA-2 (FIPS 180), and so on, which have nothing to do with FIPS 140. Best to be clear. For #70123. Change-Id: I33b29dabd9e8b2703d2af25e428f88bc81c7c307 Reviewed-on: https://go-review.googlesource.com/c/go/+/630115 Reviewed-by: Filippo Valsorda <filippo@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Russ Cox <rsc@golang.org> Reviewed-by: Roland Shoemaker <roland@golang.org>
2024-11-19cmd/dist: add FIPS snapshot build testsRuss Cox
Check that all the FIPS zips build. Change-Id: Iec22d9295178f95862060e57a8ac9ed657f69943 Reviewed-on: https://go-review.googlesource.com/c/go/+/629197 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Matloob <matloob@golang.org>
2024-11-19cmd/dist: add GOFIPS140 settingRuss Cox
GOFIPS140 will be used to control whether to build binaries that run in FIPS-140 mode by default, as well as which version of crypto/internal/fips is used during a given build. It is a target configuration variable analogous to GOOS, GOARCH, CGO_ENABLED, and the like, so the default value is recorded in the toolchain during make.bash. This CL adds the GOFIPS140 setting to the build process and records the default for use by cmd/go. For #70200. Change-Id: Iafcb5a4207f00fae8bcd93e0184a63c72526abea Reviewed-on: https://go-review.googlesource.com/c/go/+/629196 Reviewed-by: Michael Matloob <matloob@golang.org> Auto-Submit: Russ Cox <rsc@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-11-14internal/exportdata: introduce shared library for exportdataTim King
Deduplicates FindPkg and FindExportData which were shared by go/internal/gcimporter and cmd/compile/internal/importer into a new package internal/exportdata. This change only moves code. Change-Id: I1daf24dd79fafbe9014b2b15671dcde46b54711e Reviewed-on: https://go-review.googlesource.com/c/go/+/626700 Commit-Queue: Tim King <taking@google.com> Reviewed-by: Robert Griesemer <gri@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-11-14cmd/go: print not-defaults arch-envqiulaidongfeng
Fixes #67492 For #34208 Change-Id: Idcddf88aad8e18b0274ce8e2ff8a83d57db603a6 GitHub-Last-Rev: 8ef7cf59d0fd6d2d99177277c8a4237e7a86f895 GitHub-Pull-Request: golang/go#67493 Reviewed-on: https://go-review.googlesource.com/c/go/+/586241 Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Michael Matloob <matloob@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-11-13cmd/dist: add more pie tests, fips testsRuss Cox
Check the various pie combinations with the new FIPS code. For #69536. Change-Id: I8fc771eab465c4af46a0ec8154d550c1bf95f7d4 Reviewed-on: https://go-review.googlesource.com/c/go/+/625999 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2024-11-02cmd/dist, internal/syslist: update UnixOS commentsIan Lance Taylor
Update the comments about the list of Unix systems after CL 601357, which moved one copy and eliminated another. Change-Id: I12f5b14a53ce6f8b3a41c9a10f947465c291e2b6 Reviewed-on: https://go-review.googlesource.com/c/go/+/623035 Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Commit-Queue: Ian Lance Taylor <iant@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-10-28all: skip and fix various tests with -asan and -msanMichael Anthony Knyszek
First, skip all the allocation count tests. In some cases this aligns with existing skips for -race, but in others we've got new issues. These are debug modes, so some performance loss is expected, and this is clearly no worse than today where the tests fail. Next, skip internal linking and static linking tests for msan and asan. With asan we get an explicit failure that neither are supported by the C and/or Go compilers. With msan, we only get the Go compiler telling us internal linking is unavailable. With static linking, we segfault instead. Filed #70080 to track that. Next, skip some malloc tests with asan that don't quite work because of the redzone. This is because of some sizeclass assumptions that get broken with the redzone and the fact that the tiny allocator is effectively disabled (again, due to the redzone). Next, skip some runtime/pprof tests with asan, because of extra allocations. Next, skip some malloc tests with asan that also fail because of extra allocations. Next, fix up memstats accounting for arenas when asan is enabled. There is a bug where more is added to the stats than subtracted. This also simplifies the accounting a little. Next, skip race tests with msan or asan enabled; they're mutually incompatible. Fixes #70054. Fixes #64256. Fixes #64257. For #70079. For #70080. Change-Id: I99c02a0b9d621e44f1f918b307aa4a4944c3ec60 Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-asan-clang15,gotip-linux-amd64-msan-clang15 Reviewed-on: https://go-review.googlesource.com/c/go/+/622855 Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Bypass: Michael Knyszek <mknyszek@google.com>
2024-10-21cmd/internal/macho: new package for handling mach-o files in toolchainCherry Mui
Currently the linker has some code handling and manipulating Mach-O files. Specifically, it augments the debug/macho package with file offset and length, so the content can be handled or updated easily with the file. Move this code to an internal package, so it can be used by other part of the toolchain, e.g. buildid computation. For #68678. Cq-Include-Trybots: luci.golang.try:gotip-darwin-amd64_14,gotip-darwin-arm64_13 Change-Id: I2311af0a06441b7fd887ca5c6ed9e6fc44670a16 Reviewed-on: https://go-review.googlesource.com/c/go/+/618596 Reviewed-by: Than McIntosh <thanm@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-09-26cmd/dist: enforce the lowest bootstrap versionqiulaidongfeng
The go1.24 release notes say that go1.22.6 is the minimum bootstraps required, the go team also use go1.22.6 bootstraps in testing, so if there's a problem with using an older version, automated testing won't uncover it. Now enforce this in dist to avoid release notes that do not match reality, which can be confusing. For #64751 Change-Id: Icd2f8a47b2bbb2d7c3dab9be9a228f43b9630063 GitHub-Last-Rev: 425cd7f03c09ca5e4017d5a70a71fe8cf56d63e5 GitHub-Pull-Request: golang/go#69168 Reviewed-on: https://go-review.googlesource.com/c/go/+/609762 Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-09-11runtime: add asm_riscv64.hMark D Ryan
asm_riscv64.h will be used to define macros for each riscv64 extension that is not part of the rva20u64 base profile but that the _riscv64.s assembly files are allowed to use because the user has specified a more capable profile in the GORISCV64 variable. This will allow us, for example, to test for the hasZba macro in those assembly files instead of the GORISCV64_rva22u64 macro before using a Zba instruction. This is important as it means that in the future when we add support for new profiles that support Zba, e.g., rva23u64, we only need to update asm_riscv64.h to indicate rva23u64 supports Zba. We will not need to update every assembly language file that already uses Zba instructions. Updates #61476 Change-Id: I83abfeb20d08a87ac8ea88f4d8a93437f0631353 Reviewed-on: https://go-review.googlesource.com/c/go/+/608255 Auto-Submit: Tim King <taking@google.com> Reviewed-by: Tim King <taking@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com> Reviewed-by: Joel Sing <joel@sing.id.au> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-09-04cmd: remove notsha256 packageCuong Manh Le
All of its usages were removed in CL 610596. Updates #51940 Updates #64751 Change-Id: I72a0ea4bd44a2f671e032bffa1facf84822a90f2 Reviewed-on: https://go-review.googlesource.com/c/go/+/610599 Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com>
2024-09-04cmd: do not use notsha256Cuong Manh Le
CL 402595 used notsha256 to prevent the compiler from depending on cgo-based implementations of sha1 and sha256. However, since CL 454836, cmd is built with CGO_ENABLED=0, which will disable boringcrypto. Thus all usages of notsha256 is not necessary anymore. Updates #51940 Updates #64751 Change-Id: I503090f7a2efb5723e8a79523b143dc7cdb4edd0 Reviewed-on: https://go-review.googlesource.com/c/go/+/610596 Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Keith Randall <khr@golang.org>
2024-09-03cmd: use built-in min/max instead of bespoke versionsKeith Randall
Now that we're bootstrapping from a toolchain that has min/max builtins. Update #64751 Change-Id: I63eedf3cca00f56f62ca092949cb2dc61db03361 Reviewed-on: https://go-review.googlesource.com/c/go/+/610355 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2024-08-30cmd/dist: do not rewrite "any" -> "interface{}"Cuong Manh Le
Since go1.22, generic can now be used when building bootstrap toolchain. Updates #54265 Updates #64751 Change-Id: I93209fc23c92114d37ef36787ea2b520de3ed89d Reviewed-on: https://go-review.googlesource.com/c/go/+/609915 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
2024-08-27cmd/dist: update tryDirs list to match make scriptsDmitri Shuralyov
The $HOME/sdk/go1.17 and $HOME/go1.17 paths were initially added as places to look for a bootstrap toolchain to make.{bash,bat,rc} scripts and in cmd/dist (CL 370274). Those two go1.17 directories have since been updated in the make scripts to go1.20.6 (CL 512275) and later on to go1.22.6 (CL 606156), but the same list in cmd/dist was missed. Fix the inconsistency now. But maybe cmd/dist doesn't need to maintain this logic, if it's required to be invoked via one of the make scripts, since they're responsible for setting GOROOT_BOOTSTRAP? For #64751. Change-Id: I0988005c559014791363138f2f722cc1f9a78bcf Reviewed-on: https://go-review.googlesource.com/c/go/+/607821 Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2024-08-22cmd/dist: set go version in bootstrap go.mod fileMichael Matloob
The commands to build the bootstrap toolchains and go commands are run from modules created by two bootstrap go.mod files: one is used when building toolchain1 and go_bootstrap, and the other is used for toolchain2 and toolchain3, and the final build. Currently the first has a go directive specifying go 1.20, and the second one does not have a go directive at all. This affects the default GODEBUG setting when building the final toolchain: the default GODEBUG value is based on the go version of the go.mod file, and when the go.mod file does not have a version it defaults to go1.16. We should set the go directive on the bootstrap used for the second half of the builds to use the current go verison from the std's go.mod file (which is the same as the version on cmd's go.mod file). The go.mod file used for the initial bootstrap should have a go directive with the minimum version of the toolchain required for bootstrapping. That version is the current version - 2 rounded down to an even number. For #64751 Fixes #68797 Change-Id: Ibdddf4bc36dc963291979d603c4f3fc55264f65b Reviewed-on: https://go-review.googlesource.com/c/go/+/604799 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-08-20cmd/dist: require Go 1.22.6 as minimum bootstrap toolchainDmitri Shuralyov
This is a minimal change to start to require the new minimum bootstrap. Taking advantage of the newer bootstap to simplify and improve code is left to be done in separate CLs. For #64751. Change-Id: I1d4f883fae3026354a199174d51e79a36cd2dc53 Reviewed-on: https://go-review.googlesource.com/c/go/+/606156 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
2024-08-14cmd/dist, internal/platform: mark windows/arm (32-bit ARM) brokenDmitri Shuralyov
The port is reportedly broken, and there isn't a builder testing it. For #68552. For #67308. Change-Id: Iababa17cdf855b675aaf85642a667e8081ef5dfe Reviewed-on: https://go-review.googlesource.com/c/go/+/601777 Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2024-08-13cmd/link, runtime: support library mode on wasip1Cherry Mui
This CL adds support of "library", i.e. c-shared, build mode on wasip1. When -buildmode=c-shared is set, it builds a Wasm module that is intended to be used as a library, instead of an executable. It does not have the _start function. Instead, it has an _initialize function, which initializes the runtime, but not call the main function. This is similar to the c-shared build mode on other platforms. One difference is that unlike cgo callbacks, where Ms are created on- demand, on Wasm we have only one M, so we just keep the M (and the G) for callbacks. For #65199. Change-Id: Ieb21da96b25c1a9f3989d945cddc964c26f9085b Reviewed-on: https://go-review.googlesource.com/c/go/+/604316 Reviewed-by: Achille Roussel <achille.roussel@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-07-23runtime,internal: move runtime/internal/sys to internal/runtime/sysDavid Chase
Cleanup and friction reduction For #65355. Change-Id: Ia14c9dc584a529a35b97801dd3e95b9acc99a511 Reviewed-on: https://go-review.googlesource.com/c/go/+/600436 Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org>
2024-07-07cmd/dist: remove iter,slices,maps test on GOEXPERIMENT=rangefuncqiulaidongfeng
In go1.23, don't need use GOEXPERIMENT=rangefunc enable range-over-func. Change-Id: I88b799c4b38c8fbeed8d9f912a0c3c6c45c80e9d GitHub-Last-Rev: 64fd4524f1d2f66049fdce1f68912742c98fb8d9 GitHub-Pull-Request: golang/go#68325 Reviewed-on: https://go-review.googlesource.com/c/go/+/596517 Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Than McIntosh <thanm@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>