diff --git a/.pi/skills/yellowjacket-dev/references/android-tier.md b/.pi/skills/yellowjacket-dev/references/android-tier.md index 1c7a8a0..3bc4780 100644 --- a/.pi/skills/yellowjacket-dev/references/android-tier.md +++ b/.pi/skills/yellowjacket-dev/references/android-tier.md @@ -118,10 +118,22 @@ Android permits. `grep -c SYS_LSTAT ccgo_linux_arm64.go` is 0. Go's own `syscall` package already uses `fstatat` on both architectures, which is why this is *only* the modernc path. -So: **verify on arm64, not on the default emulator.** Use an -`arm64-v8a` system image (slow on an x86_64 host — it is full software -emulation) or a real device. `make android-smoke` on an x86_64 AVD will -report a `SIGSYS` tombstone that says nothing about your change. +So: **verify on arm64, and on this machine that means a real device.** +`make android-smoke` on an x86_64 AVD reports a `SIGSYS` tombstone that +says nothing about your change. + +**Do not reach for an arm64 system image — it will not run here, and +finding that out costs a 3.8 GB download.** Emulator 37 refuses +outright: + +``` +FATAL | Avd's CPU Architecture 'arm64' is not supported by the QEMU2 + emulator on x86_64 host. System image must match the host + architecture. +``` + +Google dropped cross-architecture emulation; there is no flag. The +options are an arm64 host, a physical device, or `adb connect` to one. Two consequences worth holding onto. The x86_64 half of the fat APK is *only* useful for emulators, and cannot work on any Android until diff --git a/.planning/NOTES.md b/.planning/NOTES.md index 65f6ffd..198fa6c 100644 --- a/.planning/NOTES.md +++ b/.planning/NOTES.md @@ -2643,3 +2643,19 @@ Three consequences: Worth knowing for anything else that reaches for a pure-Go C library: this class of bug is invisible to every build and every desktop test, and appears only under a platform's syscall filter. + +### …and the arm64 emulator is not an option on an x86_64 host + +Emulator 37.1.11 refuses outright, after the 3.8 GB image download: + +``` +FATAL | Avd's CPU Architecture 'arm64' is not supported by the QEMU2 + emulator on x86_64 host. System image must match the host + architecture. +``` + +Google dropped cross-architecture emulation and there is no flag for +it. So the arm64 claim above rests on reading modernc's two code paths, +not on having run it: verifying the shipped ABI needs an arm64 host, a +physical device, or `adb connect` to one. The image was deleted again; +do not re-download it.