- Tighten cleanup.go and resolve_addr.go build tags from !wasip1 to
windows so they don't break Linux/Darwin builds (CoffSection is only
defined under windows || wasip1)
- Defer freeShadowAllocations via closure so shadow memory is released
on all exit paths, not just the success return
Extract the only varying behavior (address resolution) into a 3-line
resolveHostAddr function behind build tags, eliminating ~50 lines of
duplicated relocation logic between reloc.go and reloc_wasip1.go.
Also removes the unnecessary symbolRefAddress alias.
Extract processRelocation into build-tagged variants (reloc.go / reloc_wasip1.go)
so the WASM path can use HostMemoryAddress for host-space relocation values. Add
freeShadowAllocations (cleanup.go / cleanup_wasip1.go) to release shadow memory
via VirtualFree after BOF execution. Rename _windows.go files and add
"windows || wasip1" build tags so the package compiles for both targets. Native
build behavior is unchanged.