aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/link/Elf.zig')
-rw-r--r--src/link/Elf.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 7356429312..cd795eb345 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -5550,6 +5550,15 @@ pub fn comdatGroupOwner(self: *Elf, index: ComdatGroupOwner.Index) *ComdatGroupO
return &self.comdat_groups_owners.items[index];
}
+pub fn gotAddress(self: *Elf) u64 {
+ const shndx = blk: {
+ if (self.getTarget().cpu.arch == .x86_64 and self.got_plt_section_index != null)
+ break :blk self.got_plt_section_index.?;
+ break :blk if (self.got_section_index) |shndx| shndx else null;
+ };
+ return if (shndx) |index| self.shdrs.items[index].sh_addr else 0;
+}
+
pub fn tpAddress(self: *Elf) u64 {
const index = self.phdr_tls_index orelse return 0;
const phdr = self.phdrs.items[index];