Skip to content

Commit b2e1e03

Browse files
committed
docs: visionOS reuses the iOS V8 archives
Claimed visionOS was out of scope. It is not: arm64-xros and arm64-xrsimulator in the iOS runtime are byte-identical to arm64-iphoneos and arm64-iphonesimulator, tagged platform 2 in both. The platform tag on a static archive member is advisory -- only the linked image carries an LC_BUILD_VERSION, taken from the link invocation -- so a visionOS binary links the iOS archives directly. The five Apple variants are the complete set.
1 parent 645f0ff commit b2e1e03

1 file changed

Lines changed: 18 additions & 9 deletions

File tree

scripts/matrix/README.md

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,24 @@ not a return to one branch per arch.
3232
- Consequently the full set cannot be produced on any single machine, which is
3333
the main reason it belongs in CI rather than being assembled by hand.
3434

35-
### visionOS is not covered
36-
37-
`NativeScript/lib` contains `arm64-xros` and `arm64-xrsimulator`, but V8's build
38-
system has no visionOS support: `target_platform` accepts only `iphoneos` and
39-
`tvos`, and `target_environment` only `simulator`, `device` and `catalyst`.
40-
The iOS runtime's `build_v8_source.sh` lists `arm64-xrsimulator` in its arch
41-
array but produces no output directory for it. However those libraries are
42-
produced today, it is not through `target_environment`, so they are out of scope
43-
here until that is established.
35+
### visionOS needs no build of its own
36+
37+
V8's build system has no visionOS support -- `target_platform` accepts only
38+
`iphoneos` and `tvos`, `target_environment` only `simulator`, `device` and
39+
`catalyst` -- and it does not need one. The iOS runtime's `arm64-xros` and
40+
`arm64-xrsimulator` library directories are byte-identical copies of
41+
`arm64-iphoneos` and `arm64-iphonesimulator`, tagged `platform 2` (iOS) in both
42+
places.
43+
44+
That works because the platform tag on a member of a *static* archive is
45+
advisory: only the final linked image carries an `LC_BUILD_VERSION`, and the
46+
linker takes that from the link invocation. So a visionOS binary links the iOS
47+
V8 archives happily, and only the NativeScript framework itself is built per
48+
platform.
49+
50+
The five Apple variants here are therefore the complete set. Consumers map
51+
`ios-arm64-device` onto `arm64-xros` and `ios-arm64-simulator` onto
52+
`arm64-xrsimulator`.
4453

4554
## Releasing
4655

0 commit comments

Comments
 (0)