Thank you very much, Ian, for your insight.
Unfortunately, after several more hours of fiddling, I still can't convince it to work. I assume it's something to do with our (admittedly somewhat complicated) build environment/toolchain rather than a core Go problem, but I can't figure out what/how. (Yocto SDK foisted on us by the hardware vendor....)
I still get various undefined tsan symbols. Presumably those are supposed to be resolved by the arm64 runtime? (If it makes any difference, we're cross-compiling on amd64 for arm64 by setting GOARCH, CC, CGO_CFLAGS et al. Unfortunately, it's not entirely trivial to build and run a native toolchain and Go distro on the hardware in question.)
I've made a rudimentary stab at hunting through the tmp build space to figure it out using `go build -race -work -a`, but it's slow going for a beginner.... FWIW I don't see any obvious signs of any tsan symbol defs in there. (But of course, that may be entirely expected if the runtime module is handled specially/magically.... And, also, I may simply have missed them. Or be barking up entirely the wrong tree. In the wrong forest.)
Regards,
Neil