diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-12-21 10:00:23 -0800 |
---|---|---|
committer | Carlos Amedee <carlos@golang.org> | 2022-01-05 18:14:31 +0000 |
commit | a845a562a0f2abd96c448a1ab3effe65d154353a (patch) | |
tree | f17ae77e7f5d491183662368c55d5a0be092af0a /src/cmd/link/internal/ld/elf.go | |
parent | 169be8e5b123007a02adf3f742b2a200bd8f9e67 (diff) | |
download | go-a845a562a0f2abd96c448a1ab3effe65d154353a.tar.gz go-a845a562a0f2abd96c448a1ab3effe65d154353a.zip |
[release-branch.go1.16] cmd/link: use SHT_INIT_ARRAY for .init_array section
For #50295
Fixes #50296
Change-Id: If55ebcd5f2af724da7c9c744458a56d21a7ddde7
Reviewed-on: https://go-review.googlesource.com/c/go/+/373734
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
(cherry picked from commit cfb0cc355233d4367b188b23a3bc143985a28b8c)
Reviewed-on: https://go-review.googlesource.com/c/go/+/374234
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/cmd/link/internal/ld/elf.go')
-rw-r--r-- | src/cmd/link/internal/ld/elf.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go index f5823a8fbf..0f2ef0df43 100644 --- a/src/cmd/link/internal/ld/elf.go +++ b/src/cmd/link/internal/ld/elf.go @@ -993,7 +993,12 @@ func elfshbits(linkmode LinkMode, sect *sym.Section) *ElfShdr { } if sect.Vaddr < sect.Seg.Vaddr+sect.Seg.Filelen { - sh.Type = uint32(elf.SHT_PROGBITS) + switch sect.Name { + case ".init_array": + sh.Type = uint32(elf.SHT_INIT_ARRAY) + default: + sh.Type = uint32(elf.SHT_PROGBITS) + } } else { sh.Type = uint32(elf.SHT_NOBITS) } |