diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index ccf3adc075..f4a6befab8 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -315,8 +315,8 @@ void signal_trampoline_dummy() #endif } -extern "C" void asm_signal_trampoline(void) __attribute__((used)); -extern "C" void asm_signal_trampoline_end(void); +extern "C" char const asm_signal_trampoline[]; +extern "C" char const asm_signal_trampoline_end[]; void create_signal_trampoline() { @@ -324,12 +324,10 @@ void create_signal_trampoline() g_signal_trampoline_region = MM.allocate_kernel_region(PAGE_SIZE, "Signal trampolines", Region::Access::Read | Region::Access::Write).leak_ptr(); g_signal_trampoline_region->set_syscall_region(true); - u8* trampoline = (u8*)asm_signal_trampoline; - u8* trampoline_end = (u8*)asm_signal_trampoline_end; - size_t trampoline_size = trampoline_end - trampoline; + size_t trampoline_size = asm_signal_trampoline_end - asm_signal_trampoline; u8* code_ptr = (u8*)g_signal_trampoline_region->vaddr().as_ptr(); - memcpy(code_ptr, trampoline, trampoline_size); + memcpy(code_ptr, asm_signal_trampoline, trampoline_size); g_signal_trampoline_region->set_writable(false); g_signal_trampoline_region->remap();