zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit c71a79f618abcc547f327edcdb45f01768200dca (tree)
parent 17635e4f2ae78e358a7a997b161e64de71a01191
Author: Jakub Konka <kubkon@jakubkonka.com>
Date:   Sun, 15 Oct 2023 09:08:14 +0200

elf: make .zig.rodata writeable

Diffstat:
Msrc/link/Elf.zig | 1+
Msrc/link/Elf/Atom.zig | 3++-
2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/link/Elf.zig b/src/link/Elf.zig @@ -770,6 +770,7 @@ pub fn initMetadata(self: *Elf) !void { self.zig_rodata_section_index = try self.allocateAllocSection(.{ .name = ".zig.rodata", .phdr_index = self.phdr_zig_load_ro_index.?, + .flags = elf.SHF_ALLOC | elf.SHF_WRITE, // TODO rename this section to .data.rel.ro }); try self.last_atom_and_free_list_table.putNoClobber(gpa, self.zig_rodata_section_index.?, .{}); } diff --git a/src/link/Elf/Atom.zig b/src/link/Elf/Atom.zig @@ -757,12 +757,13 @@ pub fn resolveRelocsAlloc(self: Atom, elf_file: *Elf, code: []u8) !void { // Address of the dynamic thread pointer. const DTP = @as(i64, @intCast(elf_file.dtpAddress())); - relocs_log.debug(" {s}: {x}: [{x} => {x}] G({x}) ({s})", .{ + relocs_log.debug(" {s}: {x}: [{x} => {x}] G({x}) ZG({x}) ({s})\n", .{ fmtRelocType(r_type), r_offset, P, S + A, G + GOT + A, + ZIG_GOT + A, target.name(elf_file), });