var BSS *int
DATA needs to have both a pointer and an int so that _some_ of it gets initialized at link time, so it is treated as DATA and not BSS. The pointer is deferred to init time.
var DATA = struct { P *int X int }{&NOPTRDATA, 3}
var NOPTRBSS int
var NOPTRDATA int = 1
The linkname here disables asan registration of this global, because asan gets mad about rodata globals.
var RODATA int32 // set to 2 in asm.s
func PtrStaticData() *uint32
func PtrStaticText() unsafe.Pointer
func TEXT()