From 57e71ce18965bc6c846a4506819e71490adc14a2 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sat, 17 Feb 2024 19:19:49 +0100 Subject: [PATCH 1/2] elf: @"64" is equivalent to GLOB_DAT on riscv --- src/link/Elf/relocation.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/link/Elf/relocation.zig b/src/link/Elf/relocation.zig index a63187925f..7b0d42dc3d 100644 --- a/src/link/Elf/relocation.zig +++ b/src/link/Elf/relocation.zig @@ -55,11 +55,12 @@ const aarch64_relocs = Table(10, elf.R_AARCH64, .{ .{ .tlsdesc, .TLSDESC }, }); -const riscv64_relocs = Table(9, elf.R_RISCV, .{ +const riscv64_relocs = Table(10, elf.R_RISCV, .{ .{ .abs, .@"64" }, .{ .copy, .COPY }, .{ .rel, .RELATIVE }, .{ .irel, .IRELATIVE }, + .{ .glob_dat, .@"64" }, .{ .jump_slot, .JUMP_SLOT }, .{ .dtpmod, .TLS_DTPMOD64 }, .{ .dtpoff, .TLS_DTPREL64 }, From 99584906bbdf0b2fdc69386546fb8c6d96ab09f5 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sat, 17 Feb 2024 19:21:20 +0100 Subject: [PATCH 2/2] elf: fix typo in resolving @"32" and @"32S" relocs on x86_64 --- src/link/Elf/Atom.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/link/Elf/Atom.zig b/src/link/Elf/Atom.zig index 3064fd6f74..0de33aaf28 100644 --- a/src/link/Elf/Atom.zig +++ b/src/link/Elf/Atom.zig @@ -881,7 +881,7 @@ const x86_64 = struct { .@"32", .@"32S", => { - try atom.scanReloc(symbol, rel, dynAbsRelocAction(symbol, elf_file), elf_file); + try atom.scanReloc(symbol, rel, absRelocAction(symbol, elf_file), elf_file); }, .GOT32,