Hmm, yeah, something's rotten in the state of FreeBSD. I rebuilt and retested my CLs on 9.1-RELEASE, and it still works on both amd64 and i386. Then, I pulled together an 8.3-RELEASE-p4 i386 system and got a segv:
% go test -ldflags -hostobj ../misc/cgo/test
SIGSEGV: segmentation violation
PC=0x28278219
goroutine 1 [chan receive]:
testing.RunTests(0x81410ac, 0x81b1ea0, 0x1a, 0x1a, 0x1, ...)
/home/s/go/src/pkg/testing/testing.go:427 +0x69c
testing.Main(0x81410ac, 0x81b1ea0, 0x1a, 0x1a, 0x81af200, ...)
/home/s/go/src/pkg/testing/testing.go:358 +0x66
main.main()
_/home/s/go/misc/cgo/test/_test/_testmain.go:95 +0x7e
goroutine 2 [syscall]:
goroutine 4 [runnable]:
testing.tRunner(0x38a660c0, 0x81b1ea0)
/home/s/go/src/pkg/testing/testing.go:329
created by testing.RunTests
/home/s/go/src/pkg/testing/testing.go:426 +0x681
eax 0xbf7fea4f
ebx 0x2830bdb8
ecx 0x281ef290
edx 0xc
edi 0x81bfe20
esi 0x81bfe20
ebp 0xbf7fe9f8
esp 0xbf7fe980
eip 0x28278219
eflags 0x10292
cs 0x33
fs 0x3b
gs 0x1b
FAIL _/home/s/go/misc/cgo/test 0.024s