diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2023-11-11 07:47:17 +0100 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2023-11-12 18:12:41 -0500 |
| commit | b48baeeebbec2f5d06f8ffc5305d2994d8389a72 (patch) | |
| tree | bec95d339f8fd6c36676d36eac414000a22133c5 | |
| parent | aa0fbbcb3917ac988757263e064540e1be3402eb (diff) | |
| download | zig-b48baeeebbec2f5d06f8ffc5305d2994d8389a72.tar.gz zig-b48baeeebbec2f5d06f8ffc5305d2994d8389a72.zip | |
elf: fix typo in initial section offsets
| -rw-r--r-- | src/link/Elf.zig | 5 | ||||
| -rw-r--r-- | src/link/Elf/Object.zig | 2 | ||||
| -rw-r--r-- | src/link/Elf/ZigObject.zig | 4 |
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.?; |
