From: Shenghou Ma Date: Mon, 30 Jul 2012 22:44:48 +0000 (-0400) Subject: cmd/cgo: use 1 as last entry for __cgodebug_data X-Git-Tag: go1.1rc2~2736 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=dd62bb4753147ff832eb769af892054fb1562c7c;p=gostls13.git cmd/cgo: use 1 as last entry for __cgodebug_data LLVM-based gcc will place all-zero data in a zero-filled section, but our debug/macho can't handle that. Fixes #3821. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6444049 --- diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 93ecb3e3d0..18be64fc7c 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -508,7 +508,12 @@ func (p *Package) loadDWARF(f *File, names []*Name) { fmt.Fprintf(&b, "\t0,\n") } } - fmt.Fprintf(&b, "\t0\n") + // for the last entry, we can not use 0, otherwise + // in case all __cgodebug_data is zero initialized, + // LLVM-based gcc will place the it in the __DATA.__common + // zero-filled section (our debug/macho doesn't support + // this) + fmt.Fprintf(&b, "\t1\n") fmt.Fprintf(&b, "};\n") d, bo, debugData := p.gccDebug(b.Bytes())