From 60a8f9b989d64bb6dfbb9e85cd0dd4e1b41750e1 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Wed, 21 Feb 2024 20:58:43 +0100 Subject: elf: make GOT arch aware when resolving relocs --- src/link/Elf.zig | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/link/Elf.zig') 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]; -- cgit v1.2.3