diff --git a/crates/linker/src/elf.rs b/crates/linker/src/elf.rs index 29ac545944..a2762ad80a 100644 --- a/crates/linker/src/elf.rs +++ b/crates/linker/src/elf.rs @@ -20,6 +20,7 @@ use crate::metadata::{self, Metadata, VirtualOffset}; use crate::{ align_by_constraint, align_to_offset_by_constraint, load_struct_inplace, load_struct_inplace_mut, load_structs_inplace_mut, open_mmap, open_mmap_mut, + redirect_libc_functions, }; const MIN_SECTION_ALIGNMENT: usize = 0x40; @@ -77,12 +78,8 @@ fn collect_roc_definitions<'a>(object: &object::File<'a, &'a [u8]>) -> MutMap Option<&str> { + match name { + "memcpy" => Some("roc_memcpy"), + "memset" => Some("roc_memset"), + "memmove" => Some("roc_memmove"), + _ => None, + } +} + pub(crate) fn align_by_constraint(offset: usize, constraint: usize) -> usize { if offset % constraint == 0 { offset diff --git a/crates/linker/src/macho.rs b/crates/linker/src/macho.rs index 33e304120f..e192b5879c 100644 --- a/crates/linker/src/macho.rs +++ b/crates/linker/src/macho.rs @@ -18,7 +18,7 @@ use target_lexicon::Triple; use crate::{ align_by_constraint, align_to_offset_by_constraint, load_struct_inplace, load_struct_inplace_mut, load_structs_inplace, load_structs_inplace_mut, open_mmap, - open_mmap_mut, + open_mmap_mut, redirect_libc_functions, }; const MIN_SECTION_ALIGNMENT: usize = 0x40; @@ -70,10 +70,8 @@ fn collect_roc_definitions<'a>(object: &object::File<'a, &'a [u8]>) -> MutMap todo!(), }