Commit 0b6e5e3d authored by Joel Sing's avatar Joel Sing Committed by Minux Ma

cmd/link: specify correct size for dynamic symbols in 386 elf output

Currently 386 ELF binaries are generated with dynamic symbols that have
a size of zero bytes, even though the symbol in the symbol table has
the correct size. Fix this by specifying the correct size when creating
dynamic symbols.

Issue found on OpenBSD -current, where ld.so is now producing link
warnings due to mismatched symbol sizes.

Fixes #15593.

Change-Id: Ib1a12b23ff9159c61ac980bf48a983b86f3df256
Reviewed-on: https://go-review.googlesource.com/22912Reviewed-by: 's avatarMinux Ma <minux@golang.org>
Run-TryBot: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 394ac818
......@@ -2665,8 +2665,8 @@ func Elfadddynsym(ctxt *Link, s *LSym) {
Addaddr(ctxt, d, s)
}
/* size */
Adduint32(ctxt, d, 0)
/* size of object */
Adduint32(ctxt, d, uint32(s.Size))
/* type */
t := STB_GLOBAL << 4
......
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