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>
// On FreeBSD, cannot be larger than a page.
const ELFRESERVE = 4096
-const (
- NSECT = 400
-)
-
var (
Nelfsym = 1
elfRelType string
ehdr ElfEhdr
- phdr [NSECT]*ElfPhdr
- shdr [NSECT]*ElfShdr
+ phdr = make([]*ElfPhdr, 0, 8)
+ shdr = make([]*ElfShdr, 0, 64)
interp string
)
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 {
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
}