aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/ld/elf.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/link/internal/ld/elf.go')
-rw-r--r--src/cmd/link/internal/ld/elf.go7
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)
}