From: Shenghou Ma Date: Wed, 4 Mar 2015 01:45:00 +0000 (-0500) Subject: cmd/internal/ld: fix symbol visibility for external linking X-Git-Tag: go1.5beta1~1728 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=60b8908588eb60b7e0d2053e52d191987a868c74;p=gostls13.git 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 Reviewed-on: https://go-review.googlesource.com/6730 Reviewed-by: Ian Lance Taylor --- diff --git a/src/cmd/internal/ld/symtab.go b/src/cmd/internal/ld/symtab.go index 79c1bf6026..d6577ad231 100644 --- a/src/cmd/internal/ld/symtab.go +++ b/src/cmd/internal/ld/symtab.go @@ -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)