fairly straightforward:
#[global_allocator]
static GLOBAL: StupidAlloc = StupidAlloc;
#[no_mangle]
pub unsafe extern "C" fn stupid_malloc(size: usize) -> *mut u8 {
let layout = Layout::from_size_align(size, 1).unwrap();
GLOBAL.alloc(layout)
}
#[no_mangle]
pub unsafe extern "C" fn stupid_free(ptr: *mut u8) {
let layout = Layout::from_size_align(1, 1).unwrap();
GLOBAL.dealloc(ptr, layout)
}
then build with --crate-type cdylib, giving you a .so you can link