From 60b8908588eb60b7e0d2053e52d191987a868c74 Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Tue, 3 Mar 2015 20:45:00 -0500 Subject: [PATCH] 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 --- src/cmd/internal/ld/symtab.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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) -- 2.48.1