fix relocation size

This commit is contained in:
Folkert 2023-09-15 17:32:29 +02:00
parent 9e3fe7b405
commit bcfab8d09e
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
2 changed files with 33 additions and 16 deletions

View file

@ -275,17 +275,17 @@ fn generate_wrapper<'a, B: Backend<'a>>(
};
output.add_symbol(symbol);
if let Some(sym_id) = output.symbol_id(name) {
let encoding = match backend.target_info().architecture {
let (encoding, size) = match backend.target_info().architecture {
roc_target::Architecture::Aarch32 => todo!(),
roc_target::Architecture::Aarch64 => RelocationEncoding::AArch64Call,
roc_target::Architecture::Aarch64 => (RelocationEncoding::AArch64Call, 26),
roc_target::Architecture::Wasm32 => todo!(),
roc_target::Architecture::X86_32 => todo!(),
roc_target::Architecture::X86_64 => RelocationEncoding::X86Branch,
roc_target::Architecture::X86_64 => (RelocationEncoding::X86Branch, 32),
};
let reloc = write::Relocation {
offset: offset + proc_offset,
size: 32,
size,
kind: RelocationKind::PltRelative,
encoding,
symbol: sym_id,
@ -891,17 +891,17 @@ fn build_proc<'a, B: Backend<'a>>(
}
if let Some(sym_id) = output.symbol_id(name.as_bytes()) {
let encoding = match target_info.architecture {
let (encoding, size) = match target_info.architecture {
roc_target::Architecture::Aarch32 => todo!(),
roc_target::Architecture::Aarch64 => RelocationEncoding::AArch64Call,
roc_target::Architecture::Aarch64 => (RelocationEncoding::AArch64Call, 26),
roc_target::Architecture::Wasm32 => todo!(),
roc_target::Architecture::X86_32 => todo!(),
roc_target::Architecture::X86_64 => RelocationEncoding::X86Branch,
roc_target::Architecture::X86_64 => (RelocationEncoding::X86Branch, 32),
};
write::Relocation {
offset: offset + proc_offset,
size: 32,
size,
kind: RelocationKind::PltRelative,
encoding,
symbol: sym_id,