| ... | @@ -569,19 +569,6 @@ pub fn growAllocSection(self: *Elf, shdr_index: u32, needed_size: u64, min_align | ... | @@ -569,19 +569,6 @@ pub fn growAllocSection(self: *Elf, shdr_index: u32, needed_size: u64, min_align |
| 569 | if (maybe_phdr) |phdr| phdr.p_filesz = needed_size; | 569 | if (maybe_phdr) |phdr| phdr.p_filesz = needed_size; |
| 570 | } | 570 | } |
| 571 | shdr.sh_size = needed_size; | 571 | shdr.sh_size = needed_size; |
| 572 | | | |
| 573 | if (maybe_phdr) |phdr| { | | |
| 574 | const mem_capacity = self.allocatedVirtualSize(phdr.p_vaddr); | | |
| 575 | if (needed_size > mem_capacity) { | | |
| 576 | var err = try self.base.addErrorWithNotes(2); | | |
| 577 | try err.addMsg("fatal linker error: cannot expand load segment phdr({d}) in virtual memory", .{phndx.?}); | | |
| 578 | try err.addNote("TODO: emit relocations to memory locations in self-hosted backends", .{}); | | |
| 579 | try err.addNote("as a workaround, try increasing pre-allocated virtual memory of each segment", .{}); | | |
| 580 | } | | |
| 581 | | | |
| 582 | phdr.p_memsz = needed_size; | | |
| 583 | } | | |
| 584 | | | |
| 585 | self.markDirty(shdr_index); | 572 | self.markDirty(shdr_index); |
| 586 | } | 573 | } |
| 587 | | 574 | |