aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2023-11-11 07:47:17 +0100
committerJacob Young <jacobly0@users.noreply.github.com>2023-11-12 18:12:41 -0500
commitb48baeeebbec2f5d06f8ffc5305d2994d8389a72 (patch)
treebec95d339f8fd6c36676d36eac414000a22133c5
parentaa0fbbcb3917ac988757263e064540e1be3402eb (diff)
downloadzig-b48baeeebbec2f5d06f8ffc5305d2994d8389a72.tar.gz
zig-b48baeeebbec2f5d06f8ffc5305d2994d8389a72.zip
elf: fix typo in initial section offsets
-rw-r--r--src/link/Elf.zig5
-rw-r--r--src/link/Elf/Object.zig2
-rw-r--r--src/link/Elf/ZigObject.zig4
3 files changed, 7 insertions, 4 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 3ddea985e0..3aa7708190 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -4531,7 +4531,10 @@ fn allocateAllocSectionsObject(self: *Elf) !void {
for (self.shdrs.items) |*shdr| {
if (shdr.sh_type == elf.SHT_NULL) continue;
if (shdr.sh_flags & elf.SHF_ALLOC == 0) continue;
- if (shdr.sh_type == elf.SHT_NOBITS) continue;
+ if (shdr.sh_type == elf.SHT_NOBITS) {
+ shdr.sh_offset = 0;
+ continue;
+ }
const needed_size = shdr.sh_size;
if (needed_size > self.allocatedSize(shdr.sh_offset)) {
shdr.sh_size = 0;
diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig
index 3e1e49407b..136beb4d52 100644
--- a/src/link/Elf/Object.zig
+++ b/src/link/Elf/Object.zig
@@ -251,7 +251,7 @@ fn initOutputSection(self: Object, elf_file: *Elf, shdr: ElfShdr) error{OutOfMem
.type = @"type",
.flags = flags,
.name = name,
- .offset = std.math.maxInt(u32),
+ .offset = std.math.maxInt(u64),
});
return out_shndx;
}
diff --git a/src/link/Elf/ZigObject.zig b/src/link/Elf/ZigObject.zig
index ed286be261..d79d3eff2c 100644
--- a/src/link/Elf/ZigObject.zig
+++ b/src/link/Elf/ZigObject.zig
@@ -749,14 +749,14 @@ fn getDeclShdrIndex(
.type = elf.SHT_NOBITS,
.flags = elf.SHF_ALLOC | elf.SHF_WRITE | elf.SHF_TLS,
.name = ".tbss",
- .offset = std.math.maxInt(u32),
+ .offset = std.math.maxInt(u64),
});
break :blk elf_file.sectionByName(".tdata") orelse try elf_file.addSection(.{
.type = elf.SHT_PROGBITS,
.flags = elf.SHF_ALLOC | elf.SHF_WRITE | elf.SHF_TLS,
.name = ".tdata",
- .offset = std.math.maxInt(u32),
+ .offset = std.math.maxInt(u64),
});
}
if (variable.is_const) break :blk elf_file.zig_data_rel_ro_section_index.?;