diff options
| author | Ian Lance Taylor <iant@golang.org> | 2025-11-06 14:20:02 -0800 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2025-11-12 09:58:02 -0800 |
| commit | 6525f46707b1ca5b3a47e50e87cf6f8ff7b0f6e6 (patch) | |
| tree | 65c06eb69c8003ae79a0369e7333d480ef505f24 /src/cmd/link | |
| parent | d3aeba1670e80095fdd6e313a776163f4c68dc6a (diff) | |
| download | go-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.go | 25 |
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 } |
