]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: specify correct size for dynamic symbols in 386 elf output
authorJoel Sing <joel@sing.id.au>
Sat, 7 May 2016 15:27:45 +0000 (01:27 +1000)
committerMinux Ma <minux@golang.org>
Sun, 8 May 2016 05:34:56 +0000 (05:34 +0000)
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/22912
Reviewed-by: Minux Ma <minux@golang.org>
Run-TryBot: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/link/internal/ld/elf.go

index e66de49f4133735977587ab37ad7d8cd2e438058..39d3609a291f04546a81135320c86a5ae06ec659 100644 (file)
@@ -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