authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-11-09 19:41:50+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-11-09 19:41:50+01:00
log6e797d864871575e6c1c4bec37f1e9eea4c79678
tree88bd9c56457f49fc6118e0093e82d0bc92dbad29
parent27970bab0739232ff7331887f16ec1ee9bc8a9eb

elf: add SHF_INFO_LINK flag to any emitted SHT_RELA section


2 files changed, 5 insertions(+), 5 deletions(-)

src/link/Elf.zig+4-5
......@@ -4307,7 +4307,6 @@ fn updateComdatGroupsSizes(self: *Elf) void {
43074307 shdr.sh_link = self.symtab_section_index.?;
43084308
43094309 const sym = self.symbol(cg.symbol(self));
4310 std.debug.print("{s}\n", .{sym.name(self)});
43114310 shdr.sh_info = sym.outputSymtabIndex(self) orelse
43124311 self.sectionSymbolOutputSymtabIndex(sym.outputShndx().?);
43134312 }
......@@ -6131,7 +6130,7 @@ fn formatShdr(
61316130 });
61326131}
61336132
6134fn fmtShdrFlags(sh_flags: u64) std.fmt.Formatter(formatShdrFlags) {
6133pub fn fmtShdrFlags(sh_flags: u64) std.fmt.Formatter(formatShdrFlags) {
61356134 return .{ .data = sh_flags };
61366135}
61376136
......@@ -6288,12 +6287,12 @@ fn fmtDumpState(
62886287
62896288 try writer.writeAll("Output COMDAT groups\n");
62906289 for (self.comdat_group_sections.items) |cg| {
6291 try writer.print("shdr({d}) : COMDAT({d})\n", .{ cg.shndx, cg.cg_index });
6290 try writer.print(" shdr({d}) : COMDAT({d})\n", .{ cg.shndx, cg.cg_index });
62926291 }
62936292
62946293 try writer.writeAll("\nOutput shdrs\n");
62956294 for (self.shdrs.items, 0..) |shdr, shndx| {
6296 try writer.print("shdr({d}) : phdr({?d}) : {}\n", .{
6295 try writer.print(" shdr({d}) : phdr({?d}) : {}\n", .{
62976296 shndx,
62986297 self.phdr_to_shdr_table.get(@intCast(shndx)),
62996298 self.fmtShdr(shdr),
......@@ -6301,7 +6300,7 @@ fn fmtDumpState(
63016300 }
63026301 try writer.writeAll("\nOutput phdrs\n");
63036302 for (self.phdrs.items, 0..) |phdr, phndx| {
6304 try writer.print("phdr{d} : {}\n", .{ phndx, self.fmtPhdr(phdr) });
6303 try writer.print(" phdr{d} : {}\n", .{ phndx, self.fmtPhdr(phdr) });
63056304 }
63066305}
63076306
src/link/Elf/Object.zig+1
......@@ -687,6 +687,7 @@ pub fn initRelaSections(self: Object, elf_file: *Elf) !void {
687687 const out_shdr = &elf_file.shdrs.items[out_shndx];
688688 out_shdr.sh_addralign = @alignOf(elf.Elf64_Rela);
689689 out_shdr.sh_entsize = @sizeOf(elf.Elf64_Rela);
690 out_shdr.sh_flags |= elf.SHF_INFO_LINK;
690691 }
691692}
692693