Commit 60b89085 authored by Shenghou Ma's avatar Shenghou Ma Committed by Minux Ma

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: default avatarShenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/6730Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 09d9520b
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment