Skip to content

Commit 8778ab8

Browse files
committed
Merge pull request #11899 from tamird:macos-golang
PiperOrigin-RevId: 787200804
2 parents 0dcd321 + d9a6493 commit 8778ab8

File tree

4 files changed

+188
-169
lines changed

4 files changed

+188
-169
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,16 @@ To run specific tests, you can specify the target:
102102
make test TARGETS="//runsc:version_test"
103103
```
104104

105+
Some packages support running tests directly on macOS. At the time of this
106+
writing, gVisor requires bazel 7, which you can install via homebrew:
107+
108+
```sh
109+
brew install bazel@7
110+
111+
# You can then run the tests, e.g.:
112+
$(brew --prefix bazel@7)/bin/bazel test --macos_sdk_version=$(xcrun --show-sdk-version) -- //tools/nogo/... //tools/check{aligned,const,escape,linkname,locks,unsafe}/...
113+
```
114+
105115
### Using `go get`
106116

107117
This project uses [bazel][bazel] to build and manage dependencies. A synthetic

WORKSPACE

Lines changed: 175 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
2626

2727
bazel_skylib_workspace()
2828

29+
# Allow CLT-only macOS builds.
30+
#
31+
# See https://github.com/bazelbuild/apple_support/commit/6e0fdb1ed90816e0aba1b6dd6d6700363c59842a.
32+
http_archive(
33+
name = "build_bazel_apple_support",
34+
urls = ["https://github.com/bazelbuild/apple_support/archive/refs/tags/1.18.0.zip"],
35+
strip_prefix = "apple_support-1.18.0",
36+
sha256 = "ebeb692bc1660a6189721d43c69185bf282339f79a756b2b9fd03fa671c3061e",
37+
)
38+
2939
# Load license rules.
3040
http_archive(
3141
name = "rules_license",
@@ -101,172 +111,172 @@ go_download_sdk(
101111
patch = "//tools:go_types_memoize.patch",
102112
patch_strip = 1,
103113
# To update this dictionary, run (after updating VERSION):
104-
# jq --arg VERSION "1.22.0" 'map(select(.version == "go" + $VERSION)).[0].files | map({(.os + "_" + .arch): [.filename, .sha256]}) | add' < <(curl 'https://go.dev/dl/?mode=json&include=all')
114+
# jq --arg VERSION "1.24.1" ' map(select(.version == "go" + $VERSION)) | map(.files[]) | flatten | map(select(.filename | endswith(".tar.gz") or endswith(".msi"))) | map({(.os + "_" + .arch): [.filename, .sha256]}) | add' < <(curl -s 'https://go.dev/dl/?mode=json&include=all')
105115
sdks = {
106-
"_": [
107-
"go1.24.1.src.tar.gz",
108-
"8244ebf46c65607db10222b5806aeb31c1fcf8979c1b6b12f60c677e9a3c0656"
109-
],
110-
"aix_ppc64": [
111-
"go1.24.1.aix-ppc64.tar.gz",
112-
"8d627dc163a4bffa2b1887112ad6194af175dce108d606ed1714a089fb806033"
113-
],
114-
"darwin_amd64": [
115-
"go1.24.1.darwin-amd64.pkg",
116-
"58d529334561cff11087cd4ab18fe0b46d8d5aad88f45c02b9645f847e014512"
117-
],
118-
"darwin_arm64": [
119-
"go1.24.1.darwin-arm64.pkg",
120-
"78b0fc8ddc344eb499f1a952c687cb84cbd28ba2b739cfa0d4eb042f07e44e82"
121-
],
122-
"dragonfly_amd64": [
123-
"go1.24.1.dragonfly-amd64.tar.gz",
124-
"e70053f56f7eb93806d80cbd5726f78509a0a467602f7bea0e2c4ee8ed7c3968"
125-
],
126-
"freebsd_386": [
127-
"go1.24.1.freebsd-386.tar.gz",
128-
"3595e2674ed8fe72e604ca59c964d3e5277aafb08475c2b1aaca2d2fd69c24fc"
129-
],
130-
"freebsd_amd64": [
131-
"go1.24.1.freebsd-amd64.tar.gz",
132-
"47d7de8bb64d5c3ee7b6723aa62d5ecb11e3568ef2249bbe1d4bbd432d37c00c"
133-
],
134-
"freebsd_arm": [
135-
"go1.24.1.freebsd-arm.tar.gz",
136-
"04eec3bcfaa14c1370cdf98e8307fac7e4853496c3045afb9c3124a29cbca205"
137-
],
138-
"freebsd_arm64": [
139-
"go1.24.1.freebsd-arm64.tar.gz",
140-
"51aa70146e40cfdc20927424083dc86e6223f85dc08089913a1651973b55665b"
141-
],
142-
"freebsd_riscv64": [
143-
"go1.24.1.freebsd-riscv64.tar.gz",
144-
"3c131d8e3fc285a1340f87813153e24226d3ddbd6e54f3facbd6e4c46a84655e"
145-
],
146-
"illumos_amd64": [
147-
"go1.24.1.illumos-amd64.tar.gz",
148-
"201d09da737ba39d5367f87d4e8b31edaeeb3dc9b9c407cb8cfb40f90c5a727a"
149-
],
150-
"linux_386": [
151-
"go1.24.1.linux-386.tar.gz",
152-
"8c530ecedbc17e42ce10177bea07ccc96a3e77c792ea1ea72173a9675d16ffa5"
153-
],
154-
"linux_amd64": [
155-
"go1.24.1.linux-amd64.tar.gz",
156-
"cb2396bae64183cdccf81a9a6df0aea3bce9511fc21469fb89a0c00470088073"
157-
],
158-
"linux_arm64": [
159-
"go1.24.1.linux-arm64.tar.gz",
160-
"8df5750ffc0281017fb6070fba450f5d22b600a02081dceef47966ffaf36a3af"
161-
],
162-
"linux_armv6l": [
163-
"go1.24.1.linux-armv6l.tar.gz",
164-
"6d95f8d7884bfe2364644c837f080f2b585903d0b771eb5b06044e226a4f120a"
165-
],
166-
"linux_loong64": [
167-
"go1.24.1.linux-loong64.tar.gz",
168-
"19304a4a56e46d04604547d2d83235dc4f9b192c79832560ce337d26cc7b835a"
169-
],
170-
"linux_mips": [
171-
"go1.24.1.linux-mips.tar.gz",
172-
"6347be77fa5359c12a5308c8ab87147c1fc4717b0c216493d1706c3b9fcde22d"
173-
],
174-
"linux_mips64": [
175-
"go1.24.1.linux-mips64.tar.gz",
176-
"1647df415f7030b82d4105670192aa7e8910e18563bb0d505192d72800cc2d21"
177-
],
178-
"linux_mips64le": [
179-
"go1.24.1.linux-mips64le.tar.gz",
180-
"762da594e4ec0f9cf6defae6ef971f5f7901203ee6a2d979e317adec96657317"
181-
],
182-
"linux_mipsle": [
183-
"go1.24.1.linux-mipsle.tar.gz",
184-
"9d8133c7b23a557399fab870b5cf464079c2b623a43b214a7567cf11c254a444"
185-
],
186-
"linux_ppc64": [
187-
"go1.24.1.linux-ppc64.tar.gz",
188-
"132f10999abbaccbada47fa85462db30c423955913b14d6c692de25f4636c766"
189-
],
190-
"linux_ppc64le": [
191-
"go1.24.1.linux-ppc64le.tar.gz",
192-
"0fb522efcefabae6e37e69bdc444094e75bfe824ea6d4cc3cbc70c7ae1b16858"
193-
],
194-
"linux_riscv64": [
195-
"go1.24.1.linux-riscv64.tar.gz",
196-
"eaef4323d5467ff97fb1979c8491764060dade19f02f3275a9313f9a0da3b9c0"
197-
],
198-
"linux_s390x": [
199-
"go1.24.1.linux-s390x.tar.gz",
200-
"6c05e14d8f11094cb56a1c50f390b6b658bed8a7cbd8d1a57e926581b7eabfce"
201-
],
202-
"netbsd_386": [
203-
"go1.24.1.netbsd-386.tar.gz",
204-
"5dbb287d343ea00d58a70b11629f32ee716dc50a6875c459ea2018df0f294cd8"
205-
],
206-
"netbsd_amd64": [
207-
"go1.24.1.netbsd-amd64.tar.gz",
208-
"617aa3faee50ce84c343db0888e9a210c310a7203666b4ed620f31030c9fb32f"
209-
],
210-
"netbsd_arm": [
211-
"go1.24.1.netbsd-arm.tar.gz",
212-
"59a928b7080c4a6ac985946274b7c65ce1cecc0b468ecd992d17b7c12fab9296"
213-
],
214-
"netbsd_arm64": [
215-
"go1.24.1.netbsd-arm64.tar.gz",
216-
"28daa8d0feb4aef2af60cefa3305bb9314de7e8a05cbca41ac548964cdfe89b7"
217-
],
218-
"openbsd_386": [
219-
"go1.24.1.openbsd-386.tar.gz",
220-
"b7382b2f5d99813aeac14db482faa3bfbd47a68880b607fa2a7e669e26bab9cd"
221-
],
222-
"openbsd_amd64": [
223-
"go1.24.1.openbsd-amd64.tar.gz",
224-
"2513b6537c45deead5e641c7ce7502913e7d5e6f0b21c52542fb11f81578690f"
225-
],
226-
"openbsd_arm": [
227-
"go1.24.1.openbsd-arm.tar.gz",
228-
"853c1917d4fc7b144c55a02842aa48542d5cc798dde8db96dc0fdbc263200e04"
229-
],
230-
"openbsd_arm64": [
231-
"go1.24.1.openbsd-arm64.tar.gz",
232-
"6bc207b91e6f6ae3347fb54616a8fb2f5c11983713846a4cef111ff3f4f94d14"
233-
],
234-
"openbsd_ppc64": [
235-
"go1.24.1.openbsd-ppc64.tar.gz",
236-
"4279260e2f2b94ee94e81470d13db7367f4393b061fee60985528fa0fa430df4"
237-
],
238-
"openbsd_riscv64": [
239-
"go1.24.1.openbsd-riscv64.tar.gz",
240-
"6fc4023a0a339ee0778522364a127d94c78e62122288d47d820dba703f81dc07"
241-
],
242-
"plan9_386": [
243-
"go1.24.1.plan9-386.tar.gz",
244-
"b5eb9fafd77146e7e1f748acfd95559580ecc8d2f15abf432a20f58c929c7cd2"
245-
],
246-
"plan9_amd64": [
247-
"go1.24.1.plan9-amd64.tar.gz",
248-
"24dcad6361b141fc8cced15b092351e12a99d2e58d7013204a3013c50daf9fdd"
249-
],
250-
"plan9_arm": [
251-
"go1.24.1.plan9-arm.tar.gz",
252-
"a026ac3b55aa1e6fdc2aaab30207a117eafbe965ed81d3aa0676409f280ddc37"
253-
],
254-
"solaris_amd64": [
255-
"go1.24.1.solaris-amd64.tar.gz",
256-
"8e4f6a77388dc6e5aa481efd5abdb3b9f5c9463bb82f4db074494e04e5c84992"
257-
],
258-
"windows_386": [
259-
"go1.24.1.windows-386.msi",
260-
"db128981033ac82a64688a123f631e61297b6b8f52ca913145e57caa8ce94cc3"
261-
],
262-
"windows_amd64": [
263-
"go1.24.1.windows-amd64.msi",
264-
"5968e7adcf26e68a54f1cd41ad561275a670a8e2ca5263bc375b524638557dfb"
265-
],
266-
"windows_arm64": [
267-
"go1.24.1.windows-arm64.msi",
268-
"6d352c1f154a102a5b90c480cc64bab205ccf2681e34e78a3a4d3f1ddfbc81e4"
269-
]
116+
"_": [
117+
"go1.24.1.src.tar.gz",
118+
"8244ebf46c65607db10222b5806aeb31c1fcf8979c1b6b12f60c677e9a3c0656"
119+
],
120+
"aix_ppc64": [
121+
"go1.24.1.aix-ppc64.tar.gz",
122+
"8d627dc163a4bffa2b1887112ad6194af175dce108d606ed1714a089fb806033"
123+
],
124+
"darwin_amd64": [
125+
"go1.24.1.darwin-amd64.tar.gz",
126+
"addbfce2056744962e2d7436313ab93486660cf7a2e066d171b9d6f2da7c7abe"
127+
],
128+
"darwin_arm64": [
129+
"go1.24.1.darwin-arm64.tar.gz",
130+
"295581b5619acc92f5106e5bcb05c51869337eb19742fdfa6c8346c18e78ff88"
131+
],
132+
"dragonfly_amd64": [
133+
"go1.24.1.dragonfly-amd64.tar.gz",
134+
"e70053f56f7eb93806d80cbd5726f78509a0a467602f7bea0e2c4ee8ed7c3968"
135+
],
136+
"freebsd_386": [
137+
"go1.24.1.freebsd-386.tar.gz",
138+
"3595e2674ed8fe72e604ca59c964d3e5277aafb08475c2b1aaca2d2fd69c24fc"
139+
],
140+
"freebsd_amd64": [
141+
"go1.24.1.freebsd-amd64.tar.gz",
142+
"47d7de8bb64d5c3ee7b6723aa62d5ecb11e3568ef2249bbe1d4bbd432d37c00c"
143+
],
144+
"freebsd_arm": [
145+
"go1.24.1.freebsd-arm.tar.gz",
146+
"04eec3bcfaa14c1370cdf98e8307fac7e4853496c3045afb9c3124a29cbca205"
147+
],
148+
"freebsd_arm64": [
149+
"go1.24.1.freebsd-arm64.tar.gz",
150+
"51aa70146e40cfdc20927424083dc86e6223f85dc08089913a1651973b55665b"
151+
],
152+
"freebsd_riscv64": [
153+
"go1.24.1.freebsd-riscv64.tar.gz",
154+
"3c131d8e3fc285a1340f87813153e24226d3ddbd6e54f3facbd6e4c46a84655e"
155+
],
156+
"illumos_amd64": [
157+
"go1.24.1.illumos-amd64.tar.gz",
158+
"201d09da737ba39d5367f87d4e8b31edaeeb3dc9b9c407cb8cfb40f90c5a727a"
159+
],
160+
"linux_386": [
161+
"go1.24.1.linux-386.tar.gz",
162+
"8c530ecedbc17e42ce10177bea07ccc96a3e77c792ea1ea72173a9675d16ffa5"
163+
],
164+
"linux_amd64": [
165+
"go1.24.1.linux-amd64.tar.gz",
166+
"cb2396bae64183cdccf81a9a6df0aea3bce9511fc21469fb89a0c00470088073"
167+
],
168+
"linux_arm64": [
169+
"go1.24.1.linux-arm64.tar.gz",
170+
"8df5750ffc0281017fb6070fba450f5d22b600a02081dceef47966ffaf36a3af"
171+
],
172+
"linux_armv6l": [
173+
"go1.24.1.linux-armv6l.tar.gz",
174+
"6d95f8d7884bfe2364644c837f080f2b585903d0b771eb5b06044e226a4f120a"
175+
],
176+
"linux_loong64": [
177+
"go1.24.1.linux-loong64.tar.gz",
178+
"19304a4a56e46d04604547d2d83235dc4f9b192c79832560ce337d26cc7b835a"
179+
],
180+
"linux_mips": [
181+
"go1.24.1.linux-mips.tar.gz",
182+
"6347be77fa5359c12a5308c8ab87147c1fc4717b0c216493d1706c3b9fcde22d"
183+
],
184+
"linux_mips64": [
185+
"go1.24.1.linux-mips64.tar.gz",
186+
"1647df415f7030b82d4105670192aa7e8910e18563bb0d505192d72800cc2d21"
187+
],
188+
"linux_mips64le": [
189+
"go1.24.1.linux-mips64le.tar.gz",
190+
"762da594e4ec0f9cf6defae6ef971f5f7901203ee6a2d979e317adec96657317"
191+
],
192+
"linux_mipsle": [
193+
"go1.24.1.linux-mipsle.tar.gz",
194+
"9d8133c7b23a557399fab870b5cf464079c2b623a43b214a7567cf11c254a444"
195+
],
196+
"linux_ppc64": [
197+
"go1.24.1.linux-ppc64.tar.gz",
198+
"132f10999abbaccbada47fa85462db30c423955913b14d6c692de25f4636c766"
199+
],
200+
"linux_ppc64le": [
201+
"go1.24.1.linux-ppc64le.tar.gz",
202+
"0fb522efcefabae6e37e69bdc444094e75bfe824ea6d4cc3cbc70c7ae1b16858"
203+
],
204+
"linux_riscv64": [
205+
"go1.24.1.linux-riscv64.tar.gz",
206+
"eaef4323d5467ff97fb1979c8491764060dade19f02f3275a9313f9a0da3b9c0"
207+
],
208+
"linux_s390x": [
209+
"go1.24.1.linux-s390x.tar.gz",
210+
"6c05e14d8f11094cb56a1c50f390b6b658bed8a7cbd8d1a57e926581b7eabfce"
211+
],
212+
"netbsd_386": [
213+
"go1.24.1.netbsd-386.tar.gz",
214+
"5dbb287d343ea00d58a70b11629f32ee716dc50a6875c459ea2018df0f294cd8"
215+
],
216+
"netbsd_amd64": [
217+
"go1.24.1.netbsd-amd64.tar.gz",
218+
"617aa3faee50ce84c343db0888e9a210c310a7203666b4ed620f31030c9fb32f"
219+
],
220+
"netbsd_arm": [
221+
"go1.24.1.netbsd-arm.tar.gz",
222+
"59a928b7080c4a6ac985946274b7c65ce1cecc0b468ecd992d17b7c12fab9296"
223+
],
224+
"netbsd_arm64": [
225+
"go1.24.1.netbsd-arm64.tar.gz",
226+
"28daa8d0feb4aef2af60cefa3305bb9314de7e8a05cbca41ac548964cdfe89b7"
227+
],
228+
"openbsd_386": [
229+
"go1.24.1.openbsd-386.tar.gz",
230+
"b7382b2f5d99813aeac14db482faa3bfbd47a68880b607fa2a7e669e26bab9cd"
231+
],
232+
"openbsd_amd64": [
233+
"go1.24.1.openbsd-amd64.tar.gz",
234+
"2513b6537c45deead5e641c7ce7502913e7d5e6f0b21c52542fb11f81578690f"
235+
],
236+
"openbsd_arm": [
237+
"go1.24.1.openbsd-arm.tar.gz",
238+
"853c1917d4fc7b144c55a02842aa48542d5cc798dde8db96dc0fdbc263200e04"
239+
],
240+
"openbsd_arm64": [
241+
"go1.24.1.openbsd-arm64.tar.gz",
242+
"6bc207b91e6f6ae3347fb54616a8fb2f5c11983713846a4cef111ff3f4f94d14"
243+
],
244+
"openbsd_ppc64": [
245+
"go1.24.1.openbsd-ppc64.tar.gz",
246+
"4279260e2f2b94ee94e81470d13db7367f4393b061fee60985528fa0fa430df4"
247+
],
248+
"openbsd_riscv64": [
249+
"go1.24.1.openbsd-riscv64.tar.gz",
250+
"6fc4023a0a339ee0778522364a127d94c78e62122288d47d820dba703f81dc07"
251+
],
252+
"plan9_386": [
253+
"go1.24.1.plan9-386.tar.gz",
254+
"b5eb9fafd77146e7e1f748acfd95559580ecc8d2f15abf432a20f58c929c7cd2"
255+
],
256+
"plan9_amd64": [
257+
"go1.24.1.plan9-amd64.tar.gz",
258+
"24dcad6361b141fc8cced15b092351e12a99d2e58d7013204a3013c50daf9fdd"
259+
],
260+
"plan9_arm": [
261+
"go1.24.1.plan9-arm.tar.gz",
262+
"a026ac3b55aa1e6fdc2aaab30207a117eafbe965ed81d3aa0676409f280ddc37"
263+
],
264+
"solaris_amd64": [
265+
"go1.24.1.solaris-amd64.tar.gz",
266+
"8e4f6a77388dc6e5aa481efd5abdb3b9f5c9463bb82f4db074494e04e5c84992"
267+
],
268+
"windows_386": [
269+
"go1.24.1.windows-386.msi",
270+
"db128981033ac82a64688a123f631e61297b6b8f52ca913145e57caa8ce94cc3"
271+
],
272+
"windows_amd64": [
273+
"go1.24.1.windows-amd64.msi",
274+
"5968e7adcf26e68a54f1cd41ad561275a670a8e2ca5263bc375b524638557dfb"
275+
],
276+
"windows_arm64": [
277+
"go1.24.1.windows-arm64.msi",
278+
"6d352c1f154a102a5b90c480cc64bab205ccf2681e34e78a3a4d3f1ddfbc81e4"
279+
]
270280
},
271281
version = "1.24.1",
272282
)

tools/nogo/cli/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ go_library(
1717
"//tools/nogo/flags",
1818
"@com_github_google_subcommands//:go_default_library",
1919
"@in_gopkg_yaml_v2//:go_default_library",
20-
"@org_golang_x_sys//unix:go_default_library",
20+
"@org_golang_x_term//:go_default_library",
2121
],
2222
)

tools/nogo/cli/cli.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"path/filepath"
2525

2626
"github.com/google/subcommands"
27-
"golang.org/x/sys/unix"
27+
"golang.org/x/term"
2828
yaml "gopkg.in/yaml.v2"
2929
"gvisor.dev/gvisor/runsc/flag"
3030
"gvisor.dev/gvisor/tools/nogo/check"
@@ -72,8 +72,7 @@ func isTerminal(w io.Writer) bool {
7272
if !ok {
7373
return false
7474
}
75-
_, err := unix.IoctlGetTermios(int(f.Fd()), unix.TCGETS)
76-
return err == nil
75+
return term.IsTerminal(int(f.Fd()))
7776
}
7877

7978
// collectAllFiles collects all files from a directory tree.

0 commit comments

Comments
 (0)