mirror of
https://github.com/ziglang/zig.git
synced 2026-01-12 02:15:12 +00:00
Merge pull request #22233 from jacobly0/fix-relocs
Elf.Atom: fix truncated dyn abs relocs
This commit is contained in:
commit
aa0377794d
@ -419,6 +419,7 @@ pub const Section = struct {
|
||||
} else {
|
||||
const shdr = &elf_file.sections.items(.shdr)[atom.output_section_index];
|
||||
shdr.sh_offset += len;
|
||||
shdr.sh_size -= len;
|
||||
atom.value = 0;
|
||||
}
|
||||
atom.size -= len;
|
||||
@ -428,7 +429,7 @@ pub const Section = struct {
|
||||
else
|
||||
&macho_file.sections.items(.header)[sec.index];
|
||||
header.offset += @intCast(len);
|
||||
header.size = sec.len;
|
||||
header.size -= len;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -726,7 +726,7 @@ fn resolveDynAbsReloc(
|
||||
.copyrel,
|
||||
.cplt,
|
||||
.none,
|
||||
=> try writer.writeInt(i32, @as(i32, @truncate(S + A)), .little),
|
||||
=> try writer.writeInt(i64, S + A, .little),
|
||||
|
||||
.dyn_copyrel => {
|
||||
if (is_writeable or elf_file.z_nocopyreloc) {
|
||||
@ -739,7 +739,7 @@ fn resolveDynAbsReloc(
|
||||
});
|
||||
try applyDynamicReloc(A, elf_file, writer);
|
||||
} else {
|
||||
try writer.writeInt(i32, @as(i32, @truncate(S + A)), .little);
|
||||
try writer.writeInt(i64, S + A, .little);
|
||||
}
|
||||
},
|
||||
|
||||
@ -754,7 +754,7 @@ fn resolveDynAbsReloc(
|
||||
});
|
||||
try applyDynamicReloc(A, elf_file, writer);
|
||||
} else {
|
||||
try writer.writeInt(i32, @as(i32, @truncate(S + A)), .little);
|
||||
try writer.writeInt(i64, S + A, .little);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user