authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-08-15 10:52:06+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-08-15 10:52:06+02:00
log79418fa0abe4b19a2fd2fb10cf3c1144b927d10f
tree90279b7e98da2b5495554d731272691af42392ee
parentc79290467f4908c1fc4833d82d397829e92cf838

riscv: remove redundant by-symbol-name check; just check for PIC and extern ptr


1 files changed, 2 insertions(+), 6 deletions(-)

src/arch/riscv64/Emit.zig+2-6
......@@ -49,12 +49,8 @@ pub fn emitMir(emit: *Emit) Error!void {
4949 const atom_ptr = zo.symbol(symbol.atom_index).atom(elf_file).?;
5050 const sym = zo.symbol(symbol.sym_index);
5151
52 if (sym.flags.is_extern_ptr) blk: {
53 const name = sym.name(elf_file);
54 if (mem.eql(u8, "__init_array_start", name) or mem.eql(u8, "__init_array_end", name) or
55 mem.eql(u8, "__fini_array_start", name) or mem.eql(u8, "__fini_array_end", name))
56 break :blk;
57 return emit.fail("emit GOT relocation for symbol '{s}'", .{name});
52 if (sym.flags.is_extern_ptr and emit.lower.pic) {
53 return emit.fail("emit GOT relocation for symbol '{s}'", .{sym.name(elf_file)});
5854 }
5955
6056 const hi_r_type: u32 = @intFromEnum(std.elf.R_RISCV.HI20);