aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2025-11-06 14:20:02 -0800
committerGopher Robot <gobot@golang.org>2025-11-12 09:58:02 -0800
commit6525f46707b1ca5b3a47e50e87cf6f8ff7b0f6e6 (patch)
tree65c06eb69c8003ae79a0369e7333d480ef505f24 /src/cmd/link
parentd3aeba1670e80095fdd6e313a776163f4c68dc6a (diff)
downloadgo-6525f46707b1ca5b3a47e50e87cf6f8ff7b0f6e6.tar.xz
cmd/link: change shdr and phdr from arrays to slices
Removes an arbitrary and unnecessary limit. Change-Id: Iba04568ed5e6b1a8f8f23369f51f068e830f1059 Reviewed-on: https://go-review.googlesource.com/c/go/+/718600 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Ian Lance Taylor <iant@golang.org> Reviewed-by: Junyang Shao <shaojunyang@google.com>
Diffstat (limited to 'src/cmd/link')
-rw-r--r--src/cmd/link/internal/ld/elf.go25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go
index 0e7d80e43f..62736ab94b 100644
--- a/src/cmd/link/internal/ld/elf.go
+++ b/src/cmd/link/internal/ld/elf.go
@@ -101,10 +101,6 @@ var elfstrdat, elfshstrdat []byte
// On FreeBSD, cannot be larger than a page.
const ELFRESERVE = 4096
-const (
- NSECT = 400
-)
-
var (
Nelfsym = 1
@@ -114,8 +110,8 @@ var (
elfRelType string
ehdr ElfEhdr
- phdr [NSECT]*ElfPhdr
- shdr [NSECT]*ElfShdr
+ phdr = make([]*ElfPhdr, 0, 8)
+ shdr = make([]*ElfShdr, 0, 64)
interp string
)
@@ -334,12 +330,8 @@ func elfwritephdrs(out *OutBuf) uint32 {
func newElfPhdr() *ElfPhdr {
e := new(ElfPhdr)
- if ehdr.Phnum >= NSECT {
- Errorf("too many phdrs")
- } else {
- phdr[ehdr.Phnum] = e
- ehdr.Phnum++
- }
+ phdr = append(phdr, e)
+ ehdr.Phnum++
if elf64 {
ehdr.Shoff += ELF64PHDRSIZE
} else {
@@ -352,13 +344,8 @@ func newElfShdr(name int64) *ElfShdr {
e := new(ElfShdr)
e.Name = uint32(name)
e.shnum = elf.SectionIndex(ehdr.Shnum)
- if ehdr.Shnum >= NSECT {
- Errorf("too many shdrs")
- } else {
- shdr[ehdr.Shnum] = e
- ehdr.Shnum++
- }
-
+ shdr = append(shdr, e)
+ ehdr.Shnum++
return e
}