1
0
mirror of https://github.com/golang/go synced 2024-11-19 04:54:41 -07:00

cmd/internal/ld: fix symbol visibility for external linking

The original C code is: (x->type & SHIDDEN) ? 2 : 0, however when
cleaning up the code for c2go, the ternary operator is rewritten in
the exact opposite way.

We need a test for this, and that's being tracked as #10070.

Fixes #10067.

Change-Id: I24a5e021597d8bc44218c6e75bab6446513b76cf
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/6730
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Shenghou Ma 2015-03-03 20:45:00 -05:00 committed by Minux Ma
parent 09d9520be9
commit 60b8908588

View File

@ -141,9 +141,9 @@ func putelfsym(x *LSym, s string, t int, addr int64, size int64, ver int, go_ *L
if Linkmode == LinkExternal {
addr -= int64((xo.Sect.(*Section)).Vaddr)
}
other := 2
other := STV_DEFAULT
if x.Type&SHIDDEN != 0 {
other = 0
other = STV_HIDDEN
}
putelfsyment(off, addr, size, bind<<4|type_&0xf, ((xo.Sect.(*Section)).Elfsect.(*ElfShdr)).shnum, other)
x.Elfsym = int32(numelfsym)